Inżynier DevOps, SRE i platform engineer
Inżynier DevOps (DevOps engineer) tworzy i obsługuje infrastrukturę, która przenosi kod z laptopa programisty do środowiska produkcyjnego: potoki CI/CD, infrastrukturę chmurową, kontenery i systemy monitorowania. Z tym zestawem narzędzi mają do czynienia również dwie pokrewne role: SRE (Site Reliability Engineer) oraz platform engineer, czyli inżynier platformy. Żadna z tych ról nie jest typową pierwszą pracą w branży IT, a większość ofert obejmuje dyżury na wezwanie.
Czym właściwie zajmuje się inżynier DevOps?
DevOps początkowo był sposobem pracy: programiści i pracownicy działu operacyjnego dzielili się odpowiedzialnością za oprogramowanie, zamiast przerzucać je „przez mur”. Z czasem stało się to stanowiskiem. Polskie firmy używają tego terminu w odniesieniu do osoby, która sprawia, że wdrożenia stają się nudne, przewidywalne i zautomatyzowane. W ogłoszeniach w języku polskim pojawiają się zarówno nazwy „DevOps Engineer”, jak i inżynier DevOps, a czasem po prostu „DevOps”.
Codzienna praca, sądząc po tym, co pracodawcy wymieniają w ogłoszeniach o pracę, dzieli się na kilka obszarów:
- Pipeline’y: tworzenie i utrzymywanie CI/CD w GitLab CI, GitHub Actions, Jenkins lub Azure DevOps, tak aby każde zatwierdzenie (commit) było kompilowane, testowane i wdrażane w ten sam sposób.
- Infrastruktura jako kod: opisywanie serwerów, sieci i zasobów chmury w Terraform lub Ansible, weryfikowane poprzez pull requesty tak jak każdy inny kod.
- Kontenery i orkiestracja: obrazy Docker, klastry Kubernetes, wykresy Helm, aktualizacje i planowanie wydajności.
- Obserwowalność: wskaźniki w Prometheusie i Grafanie, logi w ELK lub OpenSearch, śledzenie za pomocą OpenTelemetry oraz alerty, które powiadamiają właściwą osobę.
- Incydenty: rozwiązywanie problemów w środowisku produkcyjnym, a następnie sporządzenie analizy przyczyn źródłowych (RCA) oraz instrukcji postępowania, aby następna osoba mogła je szybciej naprawić.
- Koszty i bezpieczeństwo: porządkowanie nieużywanych zasobów chmury (często nazywane FinOps), zarządzanie sekretami i uprawnieniami IAM.
W rzeczywistości w ciągu tygodnia wszystko to się miesza: wdrożenie, które nie powiodło się z powodu zmienionego obrazu bazowego, przegląd modułu Terraform kolegi, aktualizacja Kubernetes w środowisku testowym, analiza po nocnym alertie oraz raport wyjaśniający, dlaczego wzrosły koszty chmury. W tej pracy nie chodzi tyle o konkretne narzędzie, co o zrozumienie, w jaki sposób poszczególne elementy ulegają awarii.
Inżynier DevOps, SRE czy inżynier platformy: czym różnią się te role?
Polskie portale z ofertami pracy używają trzech nazw dla osób pracujących na tej samej warstwie infrastruktury, a wiele ogłoszeń łączy je: „DevOps/SRE”, „DevOps / Platform Engineer”. Narzędzia pokrywają się niemal całkowicie: Kubernetes, Terraform, chmura, CI/CD i obserwowalność. Różnica polega na celu, według którego ocenia się każdą z tych ról.
Inżynier DevOps: płynne wdrażanie
Inżyniera DevOps ocenia się na podstawie tego, jak płynnie kod trafia do środowiska produkcyjnego: szybkie, powtarzalne procesy, spójne ze sobą środowiska oraz wdrożenia, których nikt się nie obawia. W mniejszych firmach ta sama osoba dba również o niezawodność i tworzy narzędzia dla programistów, dlatego jest to najczęściej spotykany z tych trzech tytułów.
Inżynier ds. niezawodności serwisu (SRE): niezawodność w liczbach
Inżynieria niezawodności serwisu traktuje niezawodność jako coś, co można zmierzyć i zaplanować w budżecie. Polskie ogłoszenia o pracę dla SRE wymagają zdefiniowania wskaźników SLI (wskaźników poziomu usług, takich jak odsetek pomyślnych żądań) oraz SLO (docelowych wartości dla tych wskaźników), śledzenia budżetu błędów, czyli tego, ile awarii może wystąpić w usłudze, zanim spowolnią się nowe wydania, oraz raportowania niezawodności kierownictwu. SRE zazwyczaj uczestniczy w dyżurach jako osoba odpowiedzialna za eskalację awarii infrastruktury oraz przewodniczy bezosobowym przeglądom po incydentach.
Innym powracającym tematem jest żmudna praca: powtarzalne, ręczne czynności, które SRE ma zautomatyzować. Ogłoszenia o pracę dla SRE kładą większy nacisk na programowanie niż te dotyczące DevOps. Oprócz Kubernetes i Terraform wymienia się w nich Python, Go lub Java, a w jednym polskim ogłoszeniu wymagano co najmniej roku doświadczenia jako inżynier oprogramowania oprócz doświadczenia w SRE lub DevOps. Typowi pracodawcy obsługują systemy, które nie mogą się zatrzymać: systemy płatności, duże platformy e-commerce, serwisy streamingowe oraz oprogramowanie do obsługi połączeń alarmowych.
Platform engineer: infrastruktura jako produkt wewnętrzny
Inżynier platformowy tworzy wewnętrzną platformę programistyczną (IDP): narzędzia samoobsługowe, które pozwalają zespołom produktowym tworzyć usługi, konfigurować potoki i wdrażać je w Kubernetes bez konieczności zgłaszania zgłoszenia do zespołu infrastruktury. Gotowe, wstępnie zatwierdzone szablony do takich rutynowych zadań nazywane są „złotymi ścieżkami”. Polskie ogłoszenia o pracę dla inżynierów platformy wymagają doświadczenia w tworzeniu IDP, pisaniu operatorów lub kontrolerów Kubernetes oraz prowadzeniu portali dla programistów, takich jak Backstage, często z wykorzystaniem TypeScript lub Go.
Sposób myślenia różni się od klasycznego podejścia DevOps: platforma jest produktem, a programiści są jej użytkownikami. Sukces mierzy się stopniem przyjęcia rozwiązania, na przykład tym, ile zespołów korzysta ze „złotych ścieżek” zamiast własnych konfiguracji oraz jak szybko nowy inżynier wprowadza pierwszą zmianę do środowiska produkcyjnego. Stanowiska te pojawiają się głównie w większych organizacjach z wieloma zespołami programistycznymi.
Czy inżynier DevOps jest oficjalnym zawodem?
W KZiS (Klasyfikacji Zawodów i Specjalności) nie ma oddzielnej pozycji o nazwie „inżynier DevOps”. Rządowa baza danych zawodów InfoDoradca+ wymienia „inżynier DevOps” jako jedną z powszechnych nazw dla kodu 251201, specjalista ds. doskonalenia i rozwoju aplikacji, i jest to kod najczęściej stosowany dla tej roli. Pracodawcy potrzebują go podczas rejestracji pracownika w ZUS, więc jeśli w umowie widnieje inny kod IT, warto sprawdzić, który został wybrany i dlaczego.
Zawód ten nie podlega regulacjom. Nie ma licencji, egzaminu państwowego ani wymaganego wykształcenia, co jest jednym z powodów, dla których ogłoszenia o pracę zawierają tak szczegółowe wymagania dotyczące narzędzi i stażu pracy: zastępują one formalne kwalifikacje jako kryterium selekcji.
KZiS nie posiada również oddzielnych kodów dla inżynierów SRE ani inżynierów platformowych. Opis InfoDoradca+ dla kodu 251201 obejmuje automatyzację dostarczania aplikacji i zarządzanie infrastrukturą oraz analizę wydajności, bezpieczeństwa i niezawodności oprogramowania, co odpowiada wszystkim trzem rolom.
Dlaczego DevOps rzadko jest pierwszą pracą w branży IT
Polskie ogłoszenia o pracę w zakresie DevOps wymagają doświadczenia w środowisku produkcyjnym, często co najmniej trzech do czterech lat, a w przypadku stanowisk wyższego szczebla – pięciu lub sześciu. Niektóre ogłoszenia wymagają nawet wykształcenia na poziomie szkoły średniej, a następnie wieloletniego doświadczenia w pracy z systemem Linux, językiem Python i narzędziem Terraform. Przesłanie jest jasne: pracodawcy zwracają uwagę na to, co faktycznie robiłeś, a nie na to, co studiowałeś.
Większość inżynierów DevOps trafia do tej branży jedną z dwóch dróg. Pierwsza prowadzi przez administrację systemową: pomoc techniczną lub wsparcie IT, następnie stanowisko administratora systemów Linux lub Windows, a potem coraz większą automatyzację tych zadań, aż skrypty przekształcają się w potoki. Jeśli jesteś na początku tej drogi, rola administratora systemu jest najczęstszym punktem wyjścia. Druga ścieżka prowadzi przez tworzenie oprogramowania, gdzie programista backendowy przejmuje proces kompilacji zespołu, pliki Docker i wdrażanie, a następnie stopniowo staje się osobą odpowiedzialną za infrastrukturę.
Pomocne jest wykształcenie techniczne. Absolwenci technikum z kwalifikacjami technik informatyk lub technik programista, a także absolwenci kierunków informatycznych lub telekomunikacyjnych, mają przewagę w zakresie sieci i systemów operacyjnych. Ogłoszenia o pracy dla juniorów DevOps istnieją, ale na rynku IT, gdzie stanowiska dla juniorów stanowią mniej więcej jedną dwudziestą wszystkich ogłoszeń, należą one do najrzadszych. Próba pominięcia etapu administratora lub programisty zazwyczaj oznacza miesiące bez odpowiedzi na aplikacje.
Zestaw umiejętności inżyniera DevOps w polskich ogłoszeniach o pracę
Listy narzędzi w ogłoszeniach wydają się długie, ale mają stały wzór. Typowe ogłoszenie na stanowisko regularne lub seniorowe wymaga:
- Linux na poziomie zaawansowanym: procesy, systemy plików, uprawnienia, systemd, debugowanie z wiersza poleceń.
- Sieci: DNS, równoważenie obciążenia, zapory sieciowe, certyfikaty TLS oraz sposób, w jaki ruch dociera do kontenera.
- Docker i Kubernetes, w tym Helm lub operatory, rejestry obrazów i limity zasobów.
- Terraform, często w połączeniu z Ansible, czasami z narzędziami specyficznymi dla chmury, takimi jak Bicep lub CloudFormation.
- Co najmniej jedna chmura publiczna: AWS, Azure lub Google Cloud, wraz z IAM, sieciami i usługami zarządzanymi.
- Skryptowanie w Bash i Pythonie na potrzeby automatyzacji.
- Język angielski na poziomie B2 lub wyższym, ponieważ dokumentacja, dostawcy i wiele zespołów posługuje się językiem angielskim.
To, co odróżnia silnego kandydata od kolekcjonera narzędzi, to dogłębna znajomość podstaw. Rekruterzy regularnie spotykają osoby, które wymieniają dwadzieścia technologii, ale nie potrafią wyjaśnić, dlaczego usługa jest niedostępna z wnętrza klastra. Wiedza o tym, jak sieć i system operacyjny zachowują się pod obciążeniem, jest warta więcej niż kolejne logo w CV.
Pipeline łączą cię z pozostałymi członkami zespołu. Zautomatyzowane testy napisane przez testera oprogramowania działają jako etapy w procesie CI, a gdy zaczynają działać wolno lub niestabilnie, to często inżynier DevOps jest proszony o naprawienie pipeline, a nie samych testów.
Jakie certyfikaty są pomocne dla inżyniera DevOps?
Prawo nie wymaga posiadania certyfikatu, a wielu doświadczonych inżynierów go nie posiada. Certyfikaty są jednak pomocne w dwóch sytuacjach: gdy zmieniasz specjalizację i potrzebujesz potwierdzenia nowych umiejętności oraz gdy ubiegasz się o pracę w firmach konsultingowych i outsourcingowych, których status partnerski z dostawcami usług chmurowych zależy częściowo od liczby zatrudnionych certyfikowanych inżynierów. Firmy takie często pokrywają koszty egzaminów w ramach świadczeń pracowniczych.
| Certyfikat | Wydany przez | Co pokazuje pracodawcom |
|---|---|---|
| Certified Kubernetes Administrator (CKA) | CNCF / Linux Foundation | Praktyczna administracja klastrami; egzamin odbywa się w terminalu na żywo |
| Terraform Associate | HashiCorp | Podstawy infrastruktury jako kodu (Infrastructure as Code) oraz przepływ pracy w Terraform |
| AWS Certified DevOps Engineer (Professional) | Amazon Web Services | Automatyzacja i operacje w AWS |
| Azure DevOps Engineer Expert (AZ-400) | Microsoft | Pipeline i zarządzanie wydaniami w ekosystemie Azure |
| Professional Cloud DevOps Engineer | Google Cloud | Niezawodność i dostarczanie w Google Cloud |
Wybierz certyfikat, który odpowiada chmurze wykorzystywanej przez potencjalnych pracodawców. Firma intensywnie korzystająca z GCP nie będzie przywiązywać dużej wagi do certyfikatu Azure.
Dyżury, incydenty i stres, o którym nikt nie wspomina w nazwie stanowiska
Wiele ofert pracy w obszarze DevOps obejmuje dyżury telefoniczne, a niektóre z nich mówią o tym wprost: obowiązkowe dyżury 24 godziny na dobę, 7 dni w tygodniu, trwające od kilku do kilkunastu tygodni w roku. W praktyce oznacza to, że telefon może zadzwonić o 3 nad ranem, gdy przestały przechodzić płatności lub gdy w klastrze produkcyjnym pojawi się alert. Praca ta przez większość czasu przebiega spokojnie, ale w krótkich okresach bywa bardzo intensywna.
Jeśli jesteś zatrudniony na podstawie umowy o pracę, dyżury reguluje Kodeks pracy. Czas spędzony na dyżurze liczy się jako czas pracy tylko wtedy, gdy faktycznie pracujesz, a zgodnie z kodeksem dyżur spędzony w domu sam w sobie nie uprawnia do czasu wolnego ani dodatkowego wynagrodzenia. Ponieważ dyżury w DevOps prawie zawsze odbywają się z domu, wynagrodzenie zależy od zasad obowiązujących w firmie, dlatego podczas rekrutacji zapytaj o dodatki za dyżury. W przypadku umów B2B wszystko zależy od tego, co wynegocjujesz.
Wypalenie zawodowe w DevOps wynika zazwyczaj ze zmęczenia alertami: zbyt wiele hałaśliwych alertów, zbyt mało osób w systemie dyżurów oraz powtarzające się incydenty, ponieważ nikt nie ma czasu, by usunąć ich przyczynę. Zdrowe zespoły przeprowadzają analizy po incydentach bez obwiniania, ograniczają częstotliwość dyżurów jednej osoby i traktują uciążliwe alerty jak błędy. Zapytaj o te praktyki podczas rozmowy kwalifikacyjnej; odpowiedzi powiedzą Ci więcej o tej pracy niż stos technologiczny.
Ile zarabia inżynier DevOps?
Ponieważ stanowisko w DevOps rzadko jest stanowiskiem dla początkujących, wynagrodzenie zaczyna się powyżej średniej krajowej dla osób przechodzących z administracji lub programowania. Zwykli inżynierowie zarabiają znacznie powyżej średniej, a starsi specjaliści ds. Kubernetes i platform chmurowych należą do najlepiej opłacanych osób w polskiej branży IT, zarabiając kilkakrotnie więcej niż wynosi średnia krajowa.
Co wpływa na wysokość wynagrodzenia na tym stanowisku:
- Rodzaj umowy: na portalach z ofertami pracy dla DevOps dominują umowy B2B, a wiele ofert podaje stawki netto godzinowe lub miesięczne. Jeśli porównujesz ofertę B2B z umową o pracę, przed podjęciem decyzji sprawdź obie opcje za pomocą naszego kalkulatora wynagrodzeń, ponieważ składki na ZUS, podatki i urlop bezpłatny zmieniają obraz sytuacji.
- Dyżury: dodatki za dyżury i wynagrodzenie za pracę w sytuacjach awaryjnych mogą stanowić znaczną kwotę lub nie wnosić nic, w zależności od firmy.
- Znajomość chmury i Kubernetes: starsi specjaliści GCP, AWS lub Azure zarabiają więcej niż generalisty.
- Klient: praca zdalna dla zagranicznych firm, często wynagradzana w euro lub dolarach, powoduje, że stawki są wyższe niż w lokalnych firmach programistycznych.
- Branża: fintech, energetyka i duże platformy płacą więcej niż małe agencje lub wewnętrzne działy IT w firmach niezwiązanych z technologią.
Kolejne kroki inżynierów DevOps: SRE, platforma, bezpieczeństwo i architektura
Po kilku latach inżynierowie DevOps zazwyczaj wybierają specjalizację. Najbardziej naturalnym kierunkiem jest przejście do SRE, jeśli lubisz zajmować się incydentami i mierzalną niezawodnością, lub do inżynierii platformowej, jeśli wolisz tworzyć narzędzia dla innych inżynierów. DevSecOps wzbogaca procesy o skanowanie bezpieczeństwa, politykę jako kod oraz zarządzanie sekretami. Architekci chmury projektują całe środowiska i częściej komunikują się z interesariuszami biznesowymi niż z terminalami.
Niektórzy inżynierowie kierują się w stronę danych i ściśle współpracują z administratorami baz danych nad automatycznymi kopiami zapasowymi, replikacją i migracjami bez przestojów. Inni zostają kierownikami zespołów lub szefami działu infrastruktury.
Jak wygląda proces rekrutacji w DevOps
Spodziewaj się rozmowy technicznej, a nie testu teoretycznego. Osoby przeprowadzające rozmowę często opisują awarię, na przykład pod restartujący się w pętli lub wdrożenie, które działa w środowisku testowym, ale nie w produkcyjnym, i proszą o omówienie, w jaki sposób przeprowadziłbyś analizę. Możesz zostać poproszony o zaprojektowanie potoku dla przykładowej aplikacji lub wyjaśnienie, jak skonfigurowałbyś Terraform dla kilku środowisk.
Często zlecane są zadania domowe: napisanie pliku Dockerfile, prostego potoku oraz kodu infrastruktury do uruchomienia niewielkiej usługi. Przygotuj jeden lub dwa rzeczywiste przypadki, z którymi miałeś do czynienia, opisując, co poszło nie tak, co zrobiłeś i jakie zmiany wprowadziłeś później. Taka historia przekonuje osoby przeprowadzające rozmowę bardziej niż jakikolwiek certyfikat.
Najczęściej zadawane pytania dotyczące inżynierów DevOps
Czy można rozpocząć karierę w branży IT jako inżynier DevOps?
Jest to możliwe, ale rzadkie. Polskie ogłoszenia o pracę na stanowiska DevOps zazwyczaj wymagają kilku lat doświadczenia w środowisku produkcyjnym, a ofert dla początkujących jest bardzo niewiele. Typową ścieżką kariery jest rozpoczęcie pracy jako administrator systemu, specjalista ds. wsparcia IT lub programista, zautomatyzowanie jak największej części tych zadań, a następnie przejście do DevOps, gdy już będzie można wykazać się rzeczywistą infrastrukturą, którą się zbudowało i utrzymywało.
Czym zajmuje się inżynier platformy?
Inżynier platformy buduje wewnętrzną platformę dla programistów: szablony, potoki i narzędzia samoobsługowe, które pozwalają zespołom produktowym samodzielnie tworzyć i wdrażać usługi. W pracy wykorzystuje ten sam stos technologiczny co DevOps, głównie Kubernetes, Terraform i CI/CD, a także portale dla programistów, takie jak Backstage. Sukces mierzy się liczbą zespołów, które faktycznie wdrożyły platformę.
Czy inżynierowie DevOps piszą kod?
Tak, ale zazwyczaj nie są to funkcje aplikacji. Inżynier DevOps pisze kod infrastruktury w Terraform, konfigurację w Ansible lub YAML, definicje potoków i skrypty automatyzacji w Bash lub Pythonie. Niektóre zespoły oczekują również tworzenia niewielkich narzędzi lub operatorów Kubernetes. Musisz wystarczająco dobrze rozumieć kod aplikacji, aby zorientować się w błędach kompilacji, ale rzadko odpowiadasz za logikę biznesową.
Jaka jest różnica między DevOps a SRE?
DevOps obejmuje cały łańcuch dostarczania: potoki, infrastrukturę i automatyzację wdrażania. SRE, czyli inżynieria niezawodności serwisu, skupia się na zapewnieniu niezawodności usług po ich uruchomieniu, wykorzystując cele poziomu usług, budżety błędów oraz analizę incydentów. W mniejszych polskich firmach często jedna osoba zajmuje się obydwoma obszarami, podczas gdy duże platformy utrzymują oddzielne zespoły SRE.
Czy inżynier DevOps musi posiadać wykształcenie wyższe?
Nie. Zawód ten nie jest regulowany, a pracodawcy zwracają uwagę przede wszystkim na doświadczenie w zakresie systemu Linux, chmury, kontenerów i automatyzacji. Dyplom z informatyki lub technikum w zakresie IT pomaga w opanowaniu podstaw, zwłaszcza sieci, ale wielu inżynierów DevOps pochodzi ze środowiska administracji lub programowania i nie posiada odpowiedniego wykształcenia.
Czy praca w DevOps jest stresująca?
Może być, głównie ze względu na dyżury i incydenty produkcyjne. Większość dni to zaplanowana praca projektowa, ale awarie są pilne i widoczne. Poziom stresu zależy w dużej mierze od zespołu: wielkości rotacji, jakości alertów oraz tego, czy analizy po incydentach prowadzą do rzeczywistych poprawek. Zapytaj o to podczas rekrutacji, zanim przyjmiesz ofertę.