Gdyby stworzyć ranking najpopularniejszych buzzwordów IT, hasło DevOps Engineer z pewnością znalazłoby się na podium. Mimo że ciągle rośnie zapotrzebowanie na te stanowiska w firmach, wciąż wiele osób nie do końca wie, czym zajmuje się inżynier DevOps.
Termin DevOps – powstały jako zbitka słów – Development i Operations jest nazwą określającą nowoczesne podejście do wytwarzania oprogramowania, którego istotą jest integracja zespołów deweloperskich z pozostałymi działami zaangażowanymi w rozwój oprogramowania – operatorami systemów, testerami, PM-ami.
Próżno szukać uniwersalnej definicji objaśniającej termin DevOps – raczej jest ich kilka i stosuje się taką, która najbardziej odpowiada specyfice i środowisku pracy danej firmy. Wspólne dla wszystkich definicji jest stwierdzenie, że praktyki DevOps mają na celu przyspieszenie rozwoju oprogramowania i poprawę jego jakości na drodze ścisłej integracji między zespołami. Za implementację tych usprawnień ma odpowiadać inżynier DevOps.
KIM JEST DEVOPS ENGINEER?
Ogólnie rzecz ujmując – jest to osoba znająca biegle cały cykl rozwoju oprogramowania oraz umiejącą go usprawnić, stosując szereg narzędzi do automatyzacji. Do najczęściej stosowanych narzędzi w pracy inżyniera DevOps należy zaliczyć:
- GIT – jak to w każdym projekcie software-owym, znajomość systemu kontroli wersji jest jedną z podstawowych umiejętności około technicznych.
- Kubernetes – narzędzie pomagające zarządzać, skalować i automatyzować tzw. Aplikacje kontenerowe.
- Jenkins – kluczowe narzędzie w procesie implementowania ciągłej integracji i ciągłego dostarczania.
- Selenium – znajomość najpopularniejszego narzędzia do automatyzacji testów oprogramowania to obowiązkowa umiejętność inżyniera.
- Puppet – popularny manager konfiguracji serwerów.
- JIRA – kto by jej nie znał.
To może Cię zainteresować: TOP 10 narzędzi DevOps
To tylko część stosowanych aplikacji, ale wystarcza, aby zobrazować wszechstronność pracy na stanowisku.
Do głównych zadań inżyniera DevOps należą:
- Automatyzacja środowiska pracy deweloperów, w taki sposób, aby mogli szybko zarządzać tworzonym kodem.
- Konfiguracja środowiska projektu, włączając w to ustawienia serwera, a także potrzebnych narzędzi do pracy nad oprogramowaniem.
- Wybór optymalnych rozwiązań technicznych dla realizacji projektu
- Nadzorowanie wydajności stosowanych rozwiązań zarówno pod kątem hardware, jak i software.
- Poprawa wydajności procesów.
PORZĄDANE CECHY i UMIEJĘTNOŚCI
ZNAJOMOŚĆ KTÓREGOŚ Z JĘZYKÓW SKRYPTOWYCH
Inżynier DevOps nie siedzi całymi dniami w kodzie, jednak automatyzacja procesów wymaga napisania skryptów, które będą wykonywać robotę za programistów i testerów. Stąd też znajomość Pythona, czy Perl’a będzie pożądana.
ZNAJOMOŚĆ INFRASTRUKTURY TECHNICZNEJ
Aby móc skutecznie zarządzać i kontrolować zaplecze techniczne projektu, należy dobrze znać wykorzystywaną infrastrukturę. Dobry DevOps musi być w stanie na bieżąco optymalizować stosowane rozwiązania i potrafić stwierdzić, które są odpowiednie w danej sytuacji.
UMIEJĘTNOŚĆ ZABEZPIECZENIA ŚRODOWISKA PRACY
Dbałość o bezpieczeństwo oprogramowania i technicznej strony aplikacji jest nieodzownym elementem konfiguracji przestrzeni roboczej. Wiadomo, że nie sztuką jest postawić serwer i przygotować niezbędne aplikacje. Ważne, by zrobić to w taki sposób, aby środowisko było bezpieczne.
ROZWINIĘTE CECHY INTERPERSONALNE
Jako że DevOps inżynier działa na styku kilku działów zaangażowanych w pracę nad rozwojem aplikacji, musi on pełnić funkcję łącznika. Tym samym musi posiadać wysokie zdolnośći komunikacyjne, aby współpracować z backendowcami dłubiącymi od rana do nocy w kodzie, PM-ami, designerami oraz testerami.
JAK ZOSTAĆ DEVOPSEM?
W zasadzie odpowiedź na to pytanie jest zawarta w kilku powyższych akapitach. Aby stać się dobrym DevOpsem, należy wszechstronnie rozwijać swoje techniczne umiejętności na kilku polach:
- programowanie
- cyberbezpieczeństwo infrastruktury
- działania systemów operacyjnych
- Technologie chmurowe
- Administracja serwerami
- Testowanie oprogramowania
Powyższa lista może trochę brzmieć jak przepis na zostanie Leonardo Da Vinci świata IT, ale prawda jest taka, że z uwagi na wszechstronność zadań i obowiązków, wiedza na stanowisku DevOpsa nie musi być na tak wysokim poziomie, jak w przypadku osób, które rozwijają się tylko w konkretnych dziedzinach. Przyszłość dla Development Operations Engineerów daje obiecujące perspektywy. Najlepiej to pokazuje stale rosnąca liczba ofert z pracą na tym stanowisku. Mając solidne zaplecze techniczne, warto zastanowić się nad tą ścieżką kariery, z pewnością do nudnych nie należy.
Zobacz też: DevOps, MLOps, DataOps – nadchodzi nowa moda?