Kim jest inżynier DevOps, co robi, ile zarabia i jak nim zostać

Inżynierowie DevOps to wieloaspektowi specjaliści, którzy potrafią automatyzować procesy i rozumieją, jak działają programiści, QA i menedżerowie. Umieją programować, szybko przyswajają skomplikowane narzędzia i nie boją się nowych wyzwań. DevOps jest mało, ale oferują im 200–300 tysięcy rubli, mimo że nadal jest wiele ofert pracy.

Dmitrij Kuźmin opowiada o tym, czym dokładnie zajmuje się DevOps i czego należy się nauczyć, aby ubiegać się o taką posadę. Oto również ważne linki do książek, filmów, kanałów oraz profesjonalnej społeczności.

Czym zajmuje się inżynier DevOps

W kontekście DevOps ważne jest, aby nie mylić terminów. Rzecz w tym, że DevOps to nie konkretna dziedzina działalności, lecz filozofia zawodowa. To metodologia, która pomaga programistom, testerom i administratorom systemów pracować szybciej i efektywniej dzięki automatyzacji i bezszwowej integracji.

Zatem inżynier DevOps to specjalista, który wdraża tę metodologię w proces pracy:

  • Na etapie planowania inżynier DevOps pomaga określić, jaką architekturę będzie miała aplikacja, jak będzie się skalować oraz wybrać system orkiestracji.
  • Następnie ustawia serwery, konfiguruje automatyczne testy oraz przesyłanie kodu i sprawdzanie środowiska.
  • Potem automatyzuje testowanie i rozwiązuje problemy związane z wdrożeniem.
  • Po wydaniu ważne jest zbieranie opinii od użytkowników i wprowadzanie ulepszeń. DevOps dba o to, aby użytkownicy nie zauważali tych ulepszeń, a proces aktualizacji był nieprzerwany.
  • Równocześnie rozwiązuje dziesiątki problemów, które pomagają uporządkować system pracy programistów, QA, administratorów systemowych i menedżerów.

Wszystko, co napisano powyżej, dzieje się w projektach bliskich ideałowi. W prawdziwym świecie trzeba zacząć w projekcie, w którym pominięto planowanie, z architekturą, która jest błędna, a o automatyzacji zaczęto myśleć w momencie, gdy wszystkie projekty stanęły. Zrozumienie tych problemów, ich rozwiązanie oraz zorganizowanie pracy - to kluczowa umiejętność specjalisty DevOps.

Na rynku rekrutacyjnym panuje chaos. Czasami firmy poszukują inżynierów DevOps na stanowisko inżyniera systemowego, inżyniera buildu lub kogoś innego. Obowiązki zmieniają się w zależności od wielkości firmy i branży — w niektórych przypadkach szuka się konsultanta, w innych prosi się o automatyzację wszystkiego, a w jeszcze innych wymagane są rozszerzone funkcje administratora systemu z umiejętnościami programowania.

Co jest potrzebne, aby zacząć w zawodzie

Wejście do zawodu wymaga wcześniejszego przygotowania. Nie wystarczy przyjść na kursy od zera, nic nie rozumiejąc w IT, i nauczyć się do poziomu junior. Potrzebne jest techniczne zaplecze:

  • Idealnie, jeśli pracujesz co najmniej pół roku jako administrator systemu, specjalista ds. operacyjnych lub tester. Lub przynajmniej masz pojęcie o tym, jak uruchamiają się aplikacje, w jakim środowisku mogą się rozwijać i co robić, gdy widzisz błąd. Jeśli nie masz doświadczenia, przejdź dowolny kurs z administracji Linux, powtarzając to, co dzieje się na komputerze domowym.
  • Zrozum, jak działają technologie sieciowe — naucz się instalować, konfigurować i zarządzać sieciami lokalnymi i globalnymi.
  • Zobacz, jak i z czego składa się programowanie — napisz kilka skryptów w Pythonie lub Go, spróbuj zrozumieć zasady OOP (Programowanie obiektowe), poczytaj o ogólnym cyklu rozwoju produktu.
  • Przyda się znajomość technicznego języka angielskiego — nie jest konieczne swobodne komunikowanie się na różne tematy, wystarczy umieć czytać dokumentację i interfejsy.

Nie trzeba znać wszystkiego wyczerpująco, aby rozpocząć naukę DevOps wystarczy minimalny poziom przygotowania. Jeśli masz takie techniczne zaplecze, spróbuj zapisać się na kurs.

Co powinien wiedzieć DevOps

Dobry inżynier DevOps to wszechstronny specjalista z bardzo dużym horyzontem. Aby skutecznie pracować, musisz zrozumieć kilka dziedzin IT jednocześnie.

Rozwój

DevOps napisze skrypt, który pomoże deweloperom w instalacji kodu na serwerze. Stworzy program, który „na bieżąco” testuje responsywność baz danych. Napisze aplikację do kontroli wersji. W końcu po prostu zauważy potencjalny problem w rozwoju, który może się pojawić na serwerze.

Silny specjalista DevOps zna kilka języków, które nadają się do automatyzacji. Nie zna ich doskonale, ale szybko napisze prosty program lub przeczyta czyjś kod. Jeśli wcześniej nie miałeś do czynienia z programowaniem, zacznij od Pythona — ma prostą składnię, łatwo pracować z technologiami chmurowymi, a dostępnych jest wiele dokumentacji i bibliotek.

Systemy operacyjne

Nie da się poznać wszystkich możliwości każdej wersji każdej z systemów — nauka ta może zająć tysiące godzin, a nie będzie wielkiego efektu. Zamiast tego dobry DevOps rozumie ogólne zasady działania w każdym systemie operacyjnym. Choć, sądząc po ogłoszeniach o pracę, większość osób pracuje obecnie w Linuxie.

Dobry inżynier rozumie, w którym systemie najlepiej uruchomić projekt, jakich narzędzi użyć i jakie potencjalne błędy mogą wystąpić w procesie wdrożenia lub eksploatacji.

Chmury

Rynek technologii chmurowych rośnie średnio o 20-25% rocznie — taka infrastruktura pozwala automatyzować operacje testowania kodu, budowy aplikacji z komponentów oraz dostarczania aktualizacji do użytkowników. Dobry DevOps rozumie zarówno w pełni chmurowe, jak i hybrydowe rozwiązania.

W standardowych wymaganiach dla inżynierów zwykle wymieniane są GCP, AWS i Azure.

Można tutaj zaliczyć również znajomość narzędzi CI/CD. Zazwyczaj do ciągłej integracji używa się Jenkins, ale warto spróbować również analogów. Jest ich wiele, na przykład Buddy, TeamCity i Gitlab CI. Przydatne będzie także nauczenie się Terraform — to narzędzie deklaratywne, które pomaga zdalnie uruchamiać i konfigurować infrastrukturę w chmurach. A Packer, który jest potrzebny do automatycznego tworzenia obrazów systemów operacyjnych..

Systemy orkiestracji i mikroserwisy

Architektura mikroserwisów ma wiele zalet — stabilność, możliwość szybkiego skalowania, uproszczenie i ponowne wykorzystanie. DevOps rozumie, jak działają mikroserwisy i potrafi przewidzieć potencjalne problemy.

Doskonałe zna Docker i Kubernetes. Rozumie, jak działają kontenery, jak zbudować system tak, aby można było odłączać część z nich bez konsekwencji dla całego systemu. Na przykład potrafi zbudować klaster Kubernetes za pomocą Ansible.

Co jeszcze warto spróbować przyszłemu DevOps?

Można bez końca wymieniać narzędzia, które mogą się przydać inżynierowi DevOps. Niektórzy pracują nad orkiestracją projektów, inni w większości czasu zajmują się automatyzacją wdrażania i testowania, a jeszcze inni zwiększają efektywność w zarządzaniu konfiguracjami. W trakcie procesu okaże się, w którą stronę się kierować i jakie projekty mogą być pomocne.

Oto jeszcze minimalny zestaw, który pomoże na starcie:

  • Zapoznaj się z działaniem Gita i GitHuba, jeśli jeszcze z nimi nie pracowałeś. Zainstaluj GitLab na swoim serwerze.
  • Poznaj języki znaczników JSON i YAML.
  • Zainstaluj i spróbuj pracować z bazami danych — nie tylko MySQL, ale i NoSQL. Wypróbuj MongoDB.
  • Dowiedz się, jak zarządzać konfiguracją kilku serwerów jednocześnie. Na przykład za pomocą Ansible.
  • Od razu skonfiguruj monitoring obciążenia i logi. Spróbuj połączenia Prometheus, Grafana, Alertmanager.
  • Szukaj najlepszych rozwiązań do wdrożeń dla różnych języków — wystarczy się zapoznać, wdrażać będziesz na projekcie treningowym lub roboczym.

Dlaczego warto zacząć uczyć się DevOps teraz

Na rynku inżynierów DevOps panuje niedobór. To można potwierdzić ilością i jakością ofert pracy:

  • W Rosji na tylko HeadHunterze jest ciągle dostępnych ponad 2 tysiące miejsc pracy na to kluczowe słowo.
  • A tylko 1 900 osób zamieściło życiorys.

Biorąc pod uwagę, że zamieszczenie życiorysu nie oznacza aktywnego poszukiwania pracy, wychodzi na to, że na jednego specjalistę przypada dwie, a nawet trzy oferty — takiej sytuacji nie ma nawet na popularnym rynku web developmentu. Dodaj do tego oferty z Habr oraz kanałów Telegram — niedobór specjalistów jest ogromny.

Kim jest inżynier DevOps, co robi, ile zarabia i jak nim zostać
Zwróć uwagę na wymagania płacowe kandydatów

DevOps jest też bardzo poszukiwany na świecie — jeśli planujesz relokację do USA lub Europy, to tylko na portalu Glassdoor takich specjalistów poszukuje ponad 34 tysiące firm. Często wymagania obejmują doświadczenie 1–3 lata, umiejętność pracy w «chmurze» i chęć podjęcia funkcji doradczych.

Na freelansie ofert jest znacznie mniej — inżynierów DevOps w głównej mierze poszukuje się na etat.

Kim jest inżynier DevOps, co robi, ile zarabia i jak nim zostać
Znalezienie odpowiedniego projektu na freelansie jest trudne, ale możliwe

Przykładową ścieżkę kariery inżyniera DevOps można przedstawić mniej więcej tak:

  • Pracuje jako administrator systemów przez pół roku do roku w małej firmie IT. Równolegle uczy się języka odpowiedniego do automatyzacji.
  • Intensywnie uczy się na kursach, przez około pół roku.
  • Przechodzi do innej pracy – do firmy sprzedającej rozwiązania chmurowe, oddział dużej korporacji, współpracującej z programistami dużych projektów. Mówiąc wprost, tam, gdzie istnieje potrzeba ciągłej automatyzacji i wdrożeń. Na początku oferowane wynagrodzenie to około 100 tysięcy rubli.
  • Pracuje i uczy się aktywnie przez kilka lat, zwiększając dochód kilka razy.
  • Staje się ekspertem w społeczności zawodowej i przechodzi do konsultingu. Albo awansuje do roli architekta systemów lub dyrektora IT.

DevOps to skomplikowane zadanie. Należy połączyć w sobie umiejętności kilku zawodów jednocześnie. Stać się osobą, która jest gotowa zaproponować ulepszenia tam, gdzie inni specjaliści IT nawet nie myślą o czymś innym. Za to dobrze płacą, ale wymagana wiedza jest ogromna.

Ile zarabiają DevOps?

Średnie wynagrodzenie według danych z drugiego kwartału 2019 roku w przypadku DevOps waha się między 90 a 160 tysiącami rubli. Są oferty tańsze – głównie 60-70 tysięcy.

Ciągle pojawiają się oferty do 200 tysięcy, zdarzają się oferty z wynagrodzeniem do 330 tysięcy rubli.

Kim jest inżynier DevOps, co robi, ile zarabia i jak nim zostać
Specjaliści ds. eksploatacji DevOps są lepiej opłacani niż inni. Źródło: Habr.Kariera

DevOps inżynierowie, w tym także początkujący, są teraz potrzebni w dużych bankach, korporacjach, usługach chmurowych, systemach handlowych oraz innych organizacjach, które dbają o utrzymanie swoich rozwiązań IT.

Świetnym kandydatem na stanowisko juniora z wynagrodzeniem 60-90 tysięcy będzie początkujący administrator systemów z rocznym doświadczeniem i odpowiednim dyplomem.
 
Kim jest inżynier DevOps, co robi, ile zarabia i jak nim zostać
Nie ma takich statystyk, ale wydaje się, że osobom z doświadczeniem w Linuxie płacą więcej.

Co oglądać i czytać, aby rozwijać się w zawodzie

Aby zanurzyć się w świat DevOps, spróbuj kilku źródeł informacji:

  • Cloud Native Computing Foundation [YouTube, ENG] – wiele filmów z konferencji i szkoleń online.
  • DevOps Channel [YouTube, RUS] – filmy z prezentacji na profesjonalnej konferencji DevOps w Rosji.
  • The DevOps Handbook [książka, RUS] – jedna z najpopularniejszych książek o filozofii DevOps. Książka zawiera ogólne zasady metodologii, opisuje, na co zwracać uwagę w pierwszej kolejności przy pracy nad każdym projektem.
  • Thomas Limoncelli «The Practice of System and Network Administration» [ksiazka, RUS] — wiele teorii i zasad dotyczących tego, jak powinno wyglądać zarządzanie systemami.
  • Devops Weekly [ksiazka, ENG] — cotygodniowy przegląd wiadomości o tym, co dzieje się w DevOps na całym świecie.
  • Devops_deflope [Telegram, RUS] — wiadomości z branży, zapowiedzi konferencji, linki do nowych interesujących artykułów i książek.
  • Devops_ru [Telegram, RUS] — rosyjskojęzyczny czat, gdzie można zadać pytanie i poprosić o pomoc w sprawach konfiguracyjnych.
  • Devops.com — duża międzynarodowa strona z artykułami, webinarami, podcastami i kolumnami największych firm w branży.
  • Hangops_Ru — rosyjskojęzyczna społeczność inżynierów DevOps i ich zwolenników.
  • Najlepsze książki dotyczące języka, którego będziesz używać do programowania.

Gdzie uczyć się DevOps

Zdobycie usystematyzowanej wiedzy jest możliwe na kursie „DevOps-inżynier” w Netologii. Nauczysz się pełnego cyklu metodologii:

  • Dowiesz się, jak analizować kod i szybko korzystać z narzędzi kontroli wersji.
  • Poznasz najlepsze praktyki ciągłej integracji, testowania i kompilacji.
  • Nauczysz się zarządzać zmianami w aplikacjach i je automatyzować.
  • W praktyce poznasz narzędzia konfiguracji i zarządzania.
  • Przyzwyczaisz się od razu wybierać i konfigurować potrzebne usługi do monitorowania.

Dodatkowo zdobędziesz kurs programowania w Pythonie — rozwiązywanie zadań będzie jeszcze szybsze i łatwiejsze. Wszystko w praktyce — korzystamy z AWS, GCP lub Azure.
To wystarczy, aby przekształcić się z początkującego inżyniera lub administratora systemów w poszukiwanego DevOps i przyjemnie zwiększyć swoje stawki na rynku pracy.

Kim jest inżynier DevOps, co robi, ile zarabia i jak nim zostać

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster