W internetowych ofertach o pracę aż roi się od stanowisk DevOps engineer lub DevOps specialist. Postanowiliśmy więc nieco przyjrzeć się tej specjalizacji. Temat jest na tyle obszerny, że podzieliliśmy artykuł na dwie części. Dziś publikujemy pierwszą z nich, dzięki której dowiesz się, co tak naprawdę oznacza skrót DevOps, kim jest DevOps engineer oraz czym się zajmuje.
Przede wszystkim musimy zacząć od wyjaśnienia samego słowa DevOps, które jest szerszym zjawiskiem. I choć bardzo często osoby zajmujące stanowisko DevOps engineer same siebie nazywają w skrócie DevOpsami, to nie możemy między tymi dwoma terminami postawić znaku równości.
Czym jest DevOps?
Słowo DevOps powstało z połączenia skrótów dwóch angielskich zwrotów: „development” oraz „software operations”. Zwykle występują one właśnie w takiej obcojęzycznej formie bez tłumaczenia ich na język polski. Jeśli jednak bardzo byśmy chcieli to zrobić, to możemy powiedzieć, że chodzi o czynności związane z utrzymaniem rozwoju oprogramowania.
Zwykle jednak słowo DevOps rozumiane jest znacznie szerzej, jako zjawisko, które nie jest ani technologią, ani standardem, a raczej kulturą, która kładzie nacisk na organizację, komunikację i usprawnienie tworzenia oprogramowania.
Według Gartner Glossary, DevOps reprezentuje zmianę w kulturze IT, skupiając się na szybkim dostarczaniu usług (rozumianych jako oprogramowanie) poprzez przejęcie i stosowanie zwinnych praktyk. Fundamentem kultury DevOps jest metodyka Agile, a jej założenia powstawały stopniowo i ewoluują do dziś. Do najważniejszych możemy zaliczyć:
- współpracę – duży nacisk na poprawę współpracy między zespołami, bliski kontakt z klientem, managerem produktu, programistami, testerami, a także innymi osobami zaangażowanymi w dany projekt;
- automatyzację – wdrożenie narzędzi, które wykonują powtarzalne czynności, a tym samym ułatwiają i przyspieszają proces produkcji;
- ciągłą integrację – nieustanne i zorganizowane łączenie kodu źródłowego, które zapobiega powstawaniu konfliktów w projekcie, pomaga dostrzec błędy, a także zwiększa świadomość zespołu na temat postępu prac; jest możliwe głównie dzięki narzędziom do kontroli wersji takim jak Git;
- ciągłe testowanie – regularne sprawdzanie, czy wszystko działa tak, jak powinno w celu wyeliminowania błędów na wczesnym etapie;
- ciągłe dostarczanie – jego celem jest tworzenie, testowanie i udostępnianie klientowi wartości szybciej i częściej;
- ciągły monitoring – potrzeba sprawnego oraz stałego monitorowania ewentualnych alertów o niepowodzeniach, błędach krytycznych bądź przeciążeniach; ich odpowiednio wczesna analiza pozwala na poprawę jakości projektu przed jego finalizacją.
Celem stosowania w zespole kultury DevOps jest zintegrowanie wszystkich zaangażowanych w projekt jednostek i stworzenie jednego, zautomatyzowanego toku pracy w celu sprawnego dostarczenia produktu z zachowaniem jakości, bezpieczeństwa i wymagań biznesowych z gwarancją stabilności systemu.
Mówiąc prościej, produkt ma powstawać szybciej i lepiej bez uszczerbku na jego jakości. Nad tym wszystkim czuwa nie kto inny jak DevOps engineer lub, tłumacząc na język polski, inżynier DevOps.
Co robi DevOps engineer?
Kwintesencję tego stanowiska świetnie obrazuje poniższa grafika przedstawiająca cykl życia produktu:
- po lewej stronie mamy planowanie, tworzenie, sprawdzanie i przygotowanie pakietu oprogramowania (czyli czynności związane z częścią development),
- a po prawej wprowadzanie na rynek produktu, konfigurowanie i monitorowanie ewentualnych problemów (czyli czynności związane z częścią software operations).
DevOps engineer jest odpowiedzialny za produkt na wszystkich etapach jego powstawania — od momentu planowania, poprzez rozwój, testowanie, aż do wdrażania i monitorowania, gdy oprogramowanie jest już uruchmione produkcyjnie.
Co więcej, DevOps ma zapewnić płynność pracy w każdym z wymienionych momentów. Jest to więc stanowisko wielozadaniowe i złożone — można powiedzieć, że DevOps engineer to trochę człowiek renesansu w świecie IT.
Na jego szereg obowiązków składają się m.in.:
- administrowanie systemem operacyjnym,
- nadzorowanie procesów związanych z tworzeniem oprogramowania,
- przygotowanie środowisk pracy dla deweloperów i testerów oraz współpraca z nimi,
- konfigurowanie wdrażanych rozwiązań zgodnie z procesami bezpieczeństwa systemu,
- monitoring infrastruktury i reagowanie na incydenty,
- odpowiednie utrzymywanie systemów informatycznych oraz środowisk deweloperskich.
Osoby zajmujące stanowisko DevOps engineera są fundamentem wprowadzania do firm kultury DeevOps i pełnią kluczową rolę w tej transformacji. Wymaga to zwykle szeregu zmian, wprowadzenia nowych zasad zarządzania, wykorzystwania narzędzi technologicznych oraz… czasu. Zatrudnianie ekspertów DevOps jest gwarancją pełnego wykorzystania potencjału tej kultury.
O tym, co powinien umieć DevOps engineer, jak rozpocząć pracę na tym stanowisku oraz na jakie zarobki można liczyć przeczytacie w drugiej części artykułu.