Rola DevOps Engineera oczami Stażysty i Seniora

Kim jest DevOps Engineer?

Jest to osoba odpowiedzialna za metodykę DevOps w zespole. Sama metodyka nie ma jednej, ściśle określonej definicji. Nie ma czegoś w rodzaju “Manifestu DevOps”, który mówiłby czym to jest, a czym nie jest. U podstaw DevOps stoi wspieranie aplikacji przez cały jej cykl życia, od zbudowania do “wypuszczenia w świat”, wszystko przy użyciu różnych metod automatyzacji.

Jaką rolę pełni DevOps Engineer w projekcie?

DevOps Engineer w projekcie pełni rolę pomiędzy administratorem a developerem. Cześć metod używanych do pisania kodu jest stosowana do zarządzania infrastrukturą. Efektem takiego mieszania jest np. Infrastructure as a Code, idea, w myśl której powinniśmy wszystkie operacje na naszych środowiskach mieć zapisane w skryptach, znajdujących się w systemie kontroli wersji. Dzięki temu w przypadku awarii jesteśmy w stanie łatwo odtworzyć daną maszynę.

Z kim ściśle współpracujesz w projekcie?

Właściwie z każdą osobą biorącą udział w tworzeniu oprogramowania. Developer przykładowo może mieć problem z uruchomieniem środowiska z konkretną wersja aplikacji z konkretnymi zależnościami. Tester może mięć problem z odtworzeniem całego kontekstu systemu, w którym występuje błąd, dlatego DevOps Engineer jest często w kontakcie ze wszystkimi osobami w projekcie.

Na jakich przedmiotach na studiach skupić się najbardziej, aby zostać w przyszłości DevOps Engineerem?

Najwięcej wiedzy przydatnej w codziennej pracy wyniosłem z przedmiotów związanych z sieciami komputerowymi oraz aplikacjami internetowymi. Nieocenioną jest wiedza o działaniu systemów operacyjnych. Kluczowe jest zrozumienie jak właściwie działają różne systemy “pod spodem”, ponieważ pozwala to na lepszą automatyzację i integrację z innymi usługami.

Moje największe wyzwania.

Moje największe wyzwanie polegało na zmianie mentalności z projektu prowadzonego na studiach, a prowadzonego w pracy. Na studiach ważne jest jak najlepsze wykonanie zadania, zaś w pracy dochodzi dodatkowy element. Stworzony przez nas np. kod prawdopodobnie będzie później zmieniany. Poświęcenie chwili na zastanowienie się jak mogą zmienić się wymagania w stosunku do naszego dzieła, może oszczędzić nam bardzo dużo czasu w przyszłości.

Od Stażysty do Senior DevOps Engineer- ścieżka rozwoju.

Jak w przypadku większości ról w projekcie, również pracę jako DevOps Engineer można rozpocząć bez doświadczenia komercyjnego. Przez takie osoby rozumiemy przede wszystkim absolwentów oraz  studentów ostatnich lat informatyki, ale również te, które zamierzają zmienić lub poszerzyć swój obszar kompetencji. W zespole DevOps jesteśmy w stanie wykorzystać umiejętności i cechy, każdego kto jest nastawiony na rozwój. Czujesz się dobrym programistą? Zdecydowanie znajdziesz miejsce przy konfiguracji i zarządzaniu cyklem budowania aplikacji. Interesujesz się zagadnieniami związanymi z architekturą rozwiązań? Zapraszamy do obszaru integracji aplikacji. Znasz się na sieciach czy administracji systemów? Maszyny wirtualne na Windowsach też mamy 😉. Można tak wymieniać w nieskończoność.

Załóżmy, że masz doświadczenie w jednym z wymienionych obszarów. Zaczynasz więc pracę jako stażysta lub praktykant. Tu rozpoczyna się Twoja przygoda i wyzwania. Spokojnie, to nic strasznego, ponieważ zanim otrzymasz uprawnienia, aby „popsuć” 😊 klientowi środowisko produkcyjne, najpierw oswoimy Cię z używanymi technologiami i narzędziami oraz nabierzesz wprawy pod okiem doświadczonego mentora. Najczęściej będzie to trochę z boku głównego projektu, aby wszystkim zapewnić przyjemny start. Takie miejsce w projektach nazywamy Sandboxem. Kiedy zaczniesz czuć się pewnie w tym co robisz, a zadania stawiane przed Tobą będą  już trochę nudne – zapraszamy do głównego projektu jako Junior System Engineer. Brzmi nieźle, prawda? Od tego momentu zaczynasz realizować wymagania projektowe na podstawie opisów technicznych przygotowanych przez bardziej doświadczonych kolegów. Przede wszystkim rozwijasz to, w czym jesteś najlepszy, aby nie zmarnować twojego potencjału. Nie bez znaczenia jest umiejętność pracy w zespole, którą będziesz stale rozwijać.

Następnym krokiem w Twojej karierze jest rola System Engineer. Tu odpowiedzialność jest już nieco większa, ale też i wyzwania stawiane przed Tobą stają się coraz ciekawsze. Poza ciągłym rozwijaniem systemu i swoich umiejętności, zaczniesz stanowić istotne wsparcie w procesie projektowania rozwiązania. To również jest dobry moment na poszerzanie swoich horyzontów. Zauważysz, że znając projekt i bardziej rozumiejąc zależności pomiędzy różnymi zagadnieniami coraz łatwiej jest Ci poznawać obszary spoza głównego nurtu Twoich zainteresowań.

System Engineer, to nie koniec rozwoju w obszarze DevOps. Dla doświadczonego DevOpsa automatyzacja zdefiniowanych procesów, czy zarządzanie działającym systemem nie jest już wyzwaniem. Dlatego taka osoba jest już zaangażowana w opracowywanie architektury rozwiązania pod kątem wymagań klienta, bezpieczeństwo systemu oraz jest autorem wielu rozwiązań technicznych, stając się Senior System Engineerem. Jest odpowiedzialna za dostarczanie kolejnych wersji systemu w określonym terminie, co oznacza częściowe zarządzanie pracą kolegów z zespołu oraz bezpośrednią komunikację z klientem.

Rola DevOps w projekcie (na każdym poziomie doświadczenia) jest więc niezwykle szeroka i daje mnóstwo możliwości rozwoju oraz specjalizacji, sprawiając że System Engineer jest jedną z najbardziej wszechstronnych osób zaangażowanych w projekt informatyczny.

Plusy i minusy pracy na tym stanowisku.

Plusy:

+ DevOps to najbardziej interdyscyplinarna rola w projekcie jaką znam. Pozwala wziąć udział w rozwoju każdego elementu systemu informatycznego. Kod aplikacji, bazy danych, czy serwery wraz z systemami operacyjnymi to nasza codzienność.

 + Bierzemy udział w każdej fazie cyklu życia oprogramowania. Zaczynamy od uczestnictwa w określaniu wymagań. Potem uczestniczymy w jego wytwarzaniu i testowaniu, a następnie dbamy o to, by zostało zainstalowane i poprawnie działało, czasem pełniąc rolę linii wsparcia.

+ Rosnące wymagania na rynku powodują rozwój narzędzi i technologii, a idea DevOps jest jednym z najbardziej dynamicznych obszarów świata IT.

Minusy:

Poprzez szeroki zakres obowiązków nie zawsze możliwe jest dorównanie poziomem umiejętności osobom specjalizujących się w węższym obszarze, więc niejednokrotnie DevOps musi polegać na wiedzy programistów, czy specjalistów od baz danych. Ale od czego ma się kolegów w zespole?

– Czasami zdarza się, że zespół DevOps pełni również rolę wsparcia dla działającego systemu, co nie każdemu może odpowiadać. Jest to jednak kolejna specjalizacja, stwarzająca nowe możliwości rozwoju.

Gdybym mógł cofnąć czas, czy dalej zostałbym DevOpsem?

Oczywiście. Podsumowując ostatnie lata mojej kariery zawodowej, z całą pewnością mogę stwierdzić, że decyzja o obraniu tego kierunku była jedną z tych bardziej udanych. Mój rozwój jako DevOps Engineer’a można z łatwością opisać słowami jednej z reklam sieci restauracji:

„…Do McDonald’s wpadłem dosłownie na chwilę. Chwilę potem zostałem na dłużej. No a teraz mówią do mnie Panie Kierowniku.”

Swoją karierę rozpocząłem klasycznie, od programowania. Kiedy byłem już doświadczony w tym co robię i nieco znudzony pisaniem kolejnego CRUDa, pojawiła się możliwość rozwinięcia kompetencji w ramach obszaru DevOps, pozostając jednocześnie w tym samym projekcie – układ idealny. Początkowo miało to być tylko na pewien czas, aby wesprzeć obecny zespół. Po kilku miesiącach okazało się, że cały czas odkrywam zupełnie nowe zagadnienia, a projekt zacząłem postrzegać z zupełnie innej perspektywy, dużo szerszej. Zostałem więc na dłużej. Z czasem nabrałem doświadczenia i pewności w tym co robię, a dobry kontakt z klientem był niezbędny w realizacji celów projektowych. Z tego powodu zaproponowano mi przewodzenie niedużym zespołem oraz rolę Senior System Engineera. Oznaczało to nie tylko odpowiedzialność za architekturę i wykonanie części projektu, ale także zarządzanie pracą zespołu. Od tego czasu koledzy zaczęli żartobliwie nazywać mnie „Kierownikiem”. W reklamie jest to ostatni etap, ale ja mam apetyt na więcej, więc cały czas ciężko nad tym pracuję.

Autorzy: Paweł Dobkowski
oraz Patryk Piętka