Spis treści:
- Co to DevOps?
- Kim jest DevOps Engineer?
- Czym zajmuje się DevOps Engineer?
- DevOps Engineer – wymagania na stanowisku
- Zarobki inżynierów DevOps
- Różnice pomiędzy Junior DevOps Engineerem, a Senior DevOps Engineerem
DevOps Engineer to człowiek renesansu w świecie IT. Musi posiadać solidne zaplecze technologiczne, znać języki skryptowe i czuć się jak u siebie w domu wśród serwerów i w chmurze. Automatyzuje, wdraża, aktualizuje i utrzymuje – przyspiesza tworzenie kodu i dostarczanie rozwiązań. Dla IT jest na wagę złota. Dowiedz się więcej: czym zajmuje się DevOps Engineer, jakie są zarobki na tym stanowisku oraz co trzeba umieć, żeby nim zostać.
Co to DevOps?
Zanim jednak zaczniemy opisywać stanowisko, warto opisać na czym polega sama kultura DevOps. Nazwa DevOps pochodzi ze złożenia słów „development” i „operations”. DevOps łączy więc najlepsze praktyki produkcji oprogramowania i administracji. Nadrzędnym celem, jaki przyświeca kulturze DevOps jest automatyzacja administracji i holistyczne spojrzenie na zarządzanie oprogramowaniem. Historycznie oba te światy rzadko się przenikały, co prowadziło do incydentów bezpieczeństwa czy wycieków informacji.
Kim jest DevOps Engineer?
Dobry inżynier środowisk IT musi więc nie tylko znać infrastrukturę i wykorzystane technologie, ale i potrafić nimi zarządzać i optymalizować. Nie sztuką jest bowiem postawić serwer i zainstalować na nim odpowiednie aplikacje. Sztuka tkwi w zautomatyzowaniu ciągu zdarzeń od A do Z.
W idealnym świecie DevOps naciśnięcie jednego przycisku powinno rozpocząć proces, na który składa się stworzenie maszyny i doprowadzenie jej do stanu, który pozwala zaprosić użytkowników do korzystania. Ma to pomóc w skróceniu czasu potrzebnego na dostarczenie oprogramowania. A szybsze efekty, to również niższe koszty. Właśnie dlatego popyt na inżynierów DevOps w ostatnich latach poszybował w górę. Brakuje specjalistów z wielu dziedzin, więc automatyzacja pozwalająca na odciążenie pracowników jest na wagę złota.
Czym zajmuje się DevOps Engineer?
Świat IT rośnie na tyle szybko, że potencjału do automatyzacji nie zabraknie jeszcze długo. Zwłaszcza, że jednym z pryncypiów jest podejście ciągłej integracji, ciągłego wdrażania czy ciągłego dostarczania oprogramowania (z angielskiego „continuous integration”, „continuous delivery” i „continuous deployment”). Tworzy to zespół dobrych praktyk, który pozwala pogodzić częste zmiany w kodzie ze stabilnością pracy systemów.
DevOps Engineer wykorzystuje do tego m.in. ustandaryzowane konfiguracje, zautomatyzowane testy i restarty czy procedury cofania zmian. Choć nie spędza on większości czasu na programowaniu, musi być w stanie oskryptować powyższe akcje, ale i czytać kod, aby porozumieć się z backendowcami. Do tego pracuje również z testerami, projektantami czy biznesem, dostosowując poziom technicznego skomplikowania do odbiorcy. DevOps Engineer to więc człowiek-orkiestra, który łączy umiejętności miękkie z twardymi, programowanie z administracją i wydajność z oszczędnościami dla pracodawcy.
DevOps Engineer – wymagania na stanowisku
DevOps Engineer to wymagający zawód. Osoba aplikująca na to stanowisko powinna mieć w małym palcu:
- Działanie systemów operacyjnych: Linux lub Windows,
- Zarządzanie serwerami,
- Testowanie oprogramowania,
- Język skryptowy: Python, Perl, Bash, Go lub Ruby. Znajomość dodatkowych języków programowania, takich jak C, C++, Java, .NET lub PHP to duży plus na rynku pracy,
- Narzędzia do automatyzacji,
- Obsługę chmury obliczeniowej (AWS, Azure i GCP),
DevOps Engineer – narzędzia, które trzeba znać
DevOps Engineer powinien posługiwać się:
- Git – kontrola wersji,
- Kubernetes – zarządzanie zasobami, skalowanie, automatyzacja tworzenia środowisk,
- Jenkins – tworzenie zautomatyzowanych procesów,
- Selenium, Ansible – automatyzacja testów oprogramowania,
- Puppet – konfiguracja serwerów,
- Jira, Asana – zarządzanie projektami.
Zarobki inżynierów DevOps
Serwis Bulldogjob podkreśla, że statystycznie wysokość wynagrodzenia mocno zależy od formy współpracy. Doświadczeni specjaliści częściej niż osoby początkujące decydują się na założenie firmy. Wówczas na fakturze netto widzą blisko 20 tys. zł każdego miesiąca. Co innego na umowie o pracę, gdzie pensja na rękę wynosi średnio 8 tys. zł.
Bulldog Job
| NoFluffJobs
| Wynagrodzenia.pl | |||
UoP | B2B | UoP | B2B | ||
Junior | 4 297 | – | 4-5,7 tys. | 6-8,4 tys. | 4679 |
Mid | 6 349 | 12 839 | 6,3-9,2 tys. | 8,8-13,6 tys. | 7 095 |
Senior | 8 174 | 19 836 | 8,3-12 tys. | 12,2-18 tys. | 9746 |
Zarobki w PLN, UoP (netto), B2B (netto)
Różnice pomiędzy Junior DevOps Engineerem, a Senior DevOps Enigneerem
Droga od Juniora do Seniora nie polega jedynie na dogłębnym poznaniu firmowej infrastruktury, używanych narzędzi czy języków programowania. Różnicę widać najczęściej w innym podejściu do problemu. O ile Junior koncentruje się na rozwiązaniu, to Senior stara się zaadresować problem na poziomie całego przedsiębiorstwa, biorąc pod uwagę utrzymanie rozwiązania w przyszłości.
Tj Blogumas podaje w tym miejscu przykładowe wyzwanie, z którym zmagać się może DevOps. To instalacja oprogramowania monitorującego na setkach serwerów. Jego rozwiązanie wychodzące spod ręki Juniora może polegać na napisaniu skryptu do instalacji z podmienianiem nazwy maszyny i haseł. Skrypt mógłby dodatkowo wysyłać logi do późniejszej analizy – zwłaszcza, jeśli instalacja z jakiegoś powodu się nie powiedzie. Na pierwszy rzut oka – problem z głowy. Diabeł tkwi jednak szczegółach.
Senior zacznie od dogłębnej analizy problemu, aby ustandaryzować wersję oprogramowania, która może pracować na serwerach. Im mniej permutacji musi obsługiwać instalator, tym lepiej. A może oprogramowanie powinno być zainstalowane bezpośrednio na poziomie obrazu, używanego do tworzenia danej maszyny, co oszczędziłoby czas w przyszłości?
Podczas gdy Junior pisałby własny kod, Senior wykorzystałby zapewne narzędzia, takie jak Ansible to zarządzania automatyzacją i Git do kontroli wersji. Dedykowane rozwiązanie wygląda dobrze tylko na papierze. Później DevOpsi musieliby zajmować się jego wspieraniem. Senior patrzy więc na zarządzenia środowiskami w sposób holistyczny, wybierając łatwo skalujące się rozwiązania, które nie są uciążliwe w utrzymaniu.
Słowniczek pojęć jakie DevOps Engineer powinien znać:
Kanban – to metoda zarządzania projektami, skupiona na przepływie pracy. Tę wizualizuje się za pomocą kanbanowej tablicy, która często podzielona jest na obszary takie jak: „do zrobienia”, „w trakcie” i „zrobione”. Pozwala na szybką ocenę stanu projektu i zaplanowanie kolejnych kroków.
Agile – konkurencyjna metoda zarządzania projektami, w której duże części projektu rozbija się na mniejsze i grupuje w sprinty. Zadania z danego sprintu powinny być dostarczone w określonym czasie, a następnie zaopiniowane przez klienta. Sprawdza się świetnie w elastycznych środowiskach i z klientami, którzy chcą kontrolować postęp prac.
Waterfall – jeszcze inna i bardziej tradycyjna metoda zarządzania projektami. Zakłada wykonywanie działań jedno, po drugim w określonej kolejności. Nie skupia się na szybkim dowożeniu rezultatów, a raczej na metodycznym progresie – zgodnie z ustalonym planem i kosztami.
DevOps pipline – zestaw narzędzi i procesów, które umożliwiają budowę i przenoszenie kodu pomiędzy środowiskami. Jest to podstawa podejścia ciągłej integracji, ciągłego wdrażania czy ciągłego dostarczania, która wykorzystuje m.in. automatyczne testy.
System kontroli wersji – oprogramowanie śledzące zmiany w kodzie rozwiązania. Konieczne na skomplikowanych projektach, gdzie wiele osób pracuje nad częściami kodu w tym samym czasie. Bez tego systemu zarządzanie pracą byłoby o wiele trudniejsze.
Sprawdź najnowsze oferty pracy!