Kim jest inżynier DevOps, cz. 1 – zadania i obowiązki

Świat technologii codziennie rozwija się na wielu różnych płaszczyznach. Jedną ze ścieżek rozwoju jest DevOps, czyli obecnie całkiem gorący temat. Zgodnie z niedawnym badaniem GlobeNewswire, wartość rynku DevOps do roku 2026 wyniesie ponad 14,9 miliarda dolarów. Wskazuje to, że rośnie on w zatrważająco szybkim tempie i zapotrzebowanie na jego przedstawicieli będzie ogromne.

Nie ma w tym nic dziwnego. Nie ulega wątpliwości, że ten obszar istotnie wpływa na przyspieszanie dostarczania wysokojakościowych usług i aplikacji klientom. Jest również źródłem automatyzacji, która “uwalnia” członków zespołu i pozwala im skupić się bardziej na projektach kreatywnych.

Po przeczytaniu tego artykułu dowiesz się, co robią inżynierzy DevOps, jak to robią, kim są i dlaczego mają aż tak duże znaczenie. Przedstawimy ich obowiązki oraz szczegóły wraz z  największymi zaletami, które przynosi praca ze specjalistami tej branży.

 

Czym jest DevOps?

DevOps to zbiór praktyk, podejść i narzędzi do zarządzania projektami IT. Bardziej szczegółowo, jest to strategia, która łączy automatyzację z ingerencją człowieka. Umożliwia to firmom regularnie uaktualniać ich wewnętrzne procedury oraz wprowadzać udogodnienia i możliwie najlepsze praktyki w branży.

W tradycyjnym tworzeniu oprogramowania programiści mają ograniczoną wiedzę na temat tego, jak aplikacja jest wdrażana i co tak naprawdę czyha pod jej maską. Z kolei osoby odpowiedzialne za dział Operations nie zawracają sobie głowy tym, jak wygląda proces tworzenia oprogramowania.

DevOps jest konceptem, którego celem jest wypełnienie luki pomiędzy tworzeniem oprogramowania a działem Operations. Inżynierzy DevOps (i zespoły DevOps) są umiejscowieni pomiędzy tworzeniem a wdrażaniem, skupiając się na cyklach wydawania oprogramowania, ulepszaniu narzędzi wspierających tworzenie oprogramowania w całym cyklu jego życia, automatyzowaniu procesów i pozbywaniu się zbędnych, czasochłonnych zadań. Ich pracą jest nadzorowanie współpracy i usuwanie wszystkich stojących na drodze przeszkód.

Kiedy próbujesz wdrożyć metodologię DevOps do swojego działu IT, wiele różnych obszarów rozwoju i technologii zaczyna lepiej ze sobą współpracować. Możesz także szybciej wydawać aktualizacje do stworzonych produktów oraz zautomatyzować masę wewnętrznych procesów, by “uwolnić” godziny, które mogą zostać spożytkowane w inny sposób.

Pomyślne wdrożenie DevOps wymaga jednak odpowiednich narzędzi, kultury, a zwłaszcza ludzi. Pomówmy teraz o znaczeniu inżynierów DevOps.

 

Kim jest inżynier DevOps?

Inżynier DevOps działa jako łącznik, który wspiera współpracę i komunikację pomiędzy różnymi działami zaangażowanymi w tworzenie oraz utrzymanie oprogramowania. Taka osoba wprowadza procesy, narzędzia i metodologie, które mają na celu zbalansowanie całego cyklu rozwijania oprogramowania.

Mówiąc prościej, są oni szczególnym typem profesjonalistów branży IT, którzy mają doświadczenie w procesie szybkiego i efektywnego wprowadzania zmian do oprogramowania. Działają przez tworzenie nowych procesów lub automatyzację tych, które już istnieją.

Najczęściej inżynierzy DevOps są specjalistami IT wspierającymi zespoły, które rozwijają biznesowe oprogramowanie. Mogą pracować w różnych rolach, jako że wspierają osoby zaangażowane w design, rozwój, testowanie i wdrażanie oprogramowania.

Są oni:

  • programistami z zainteresowaniami dotyczącymi inżynierii systemu i sieci lub
  • administratorami systemów komputerowych, którzy pasjonują się pisaniem skryptów i kodu, a także posiadają wiedzę w zakresie frameworków i postanowili przenieść się w stronę programowania, gdzie moją polepszyć swoje umiejętności związane z testowaniem zmian w kodzie oraz wdrażaniem.

Tylko połączenie wiedzy z tych różnych obszarów może dać początek solidnym podstawom dla stabilnego środowiska.

 

Jaka jest rola inżyniera DevOps?

Inżynierzy DevOps przyjmują różne role, w zależności od tego, jakie są indywidualne potrzeby projektu. Mogą one się zmieniać i ewoluować z biegiem czasu i kolejnymi etapami rozwoju. Możemy jednak wyróżnić kilka głównych ról w DevOpsie:

  • DevOps evangelist – jest to lider odpowiedzialny za skuteczne wdrażanie DevOpsu do firmy
  • release manager – zarządza bieżącymi aktualizacjami oprogramowania i udostępnianiem nowych funkcji, a także zapewnia stabilność projektu po jego wydaniu
  • software developer – pisze oraz testuje kod
  • quality assurance engineer – odpowiedzialny za weryfikację i testowanie nowego kodu
  • security engineer – monitoruje i zapewnia bezpieczeństwo oprogramowania w systemie
  • automation expert – odpowiedzialny za osiągnięcie automatyzacji i orkiestracji wszystkich narzędzi

Warto wspomnieć, że często role te będą się na siebie nakładały. Każdy inżynier DevOps zasadniczo wchodzi w nie wszystkie. Jak wspomnieliśmy, wszystko zależy od aktualnych potrzeb projektu.

Ponadto ciężko jest określić, kiedy ktoś skupia się bardziej na jednej z tych ról niż na pozostałych. Powoduje to, że rozróżnienie ich jest niezwykle trudne.

W większości przypadków wszystkimi tymi zadaniami zajmuje się jedna osoba, która łączy wszystkie powyższe cechy. W dużych organizacjach, które mają przed sobą ogromne projekty, może istnieć grupa pracowników zarządzających tymi konkretnymi trudnościami w pojedynkę i niezależnie.

 

Czym zajmuje się inżynier DevOps?

By pomóc Ci lepiej zrozumieć, jakie są zadania inżyniera DevOps, najpierw będziemy musieli zdradzić, czym jest Systems Development Life Cycle (SDLC).

SDLC składa się z sześciu faz rozwoju:

  1. planowanie – kiedy programiści określają zakres oraz wymagania projektu,
  2. analiza – kiedy członkowie zespołu badają i analizują wszystkie techniczne wymagania systemu,
  3. design – kiedy zespół planuje i buduje projekt,
  4. implementacja – kiedy zespół buduje system,
  5. testowanie – kiedy zespół testuje kod i naprawia bugi
  6. wdrożenie i utrzymanie – kiedy zespół wdraża, a następnie utrzymuje system, by ten działał tak płynnie, jak to tylko możliwe.

Do SDLC można podchodzić na kilka sposobów, ale my skupimy się na strategiach Waterfall i Agile. W metodologii Waterfall ludzie przechodzą przez wszystkie etapy po kolei, jeden po drugim. Natomiast przy wdrażaniu Agile’a jednocześnie i stale pracuje się nad wszystkimi fazami.

DevOps częściowo zbudowany jest właśnie na takim zręcznym podejściu do rozwoju. Inżynierowie DevOps implementują wersję SDLC, znaną jako DevOps Pipeline. Podobnie jak w przypadku Agile’a, składa się ona z następujących kroków

  1. planowanie
  2. budowanie
  3. CI/CD
  4. działanie
  5. ciągły feedback

Zatem odpowiedzią na pytanie, czym tak naprawdę zajmuje się inżynier DevOps, jest: inżynier DevOps pomaga organizacjom adaptować, osiągać oraz zautomatyzować rozwój oprogramowania.

Mówiąc konkretniej, współpracuje on z zespołami technicznymi w celu zaprojektowania odpowiednich narzędzi do ich projektu, a następnie testuje je, by zapewnić prawidłowe ich wykorzystanie i funkcjonowanie systemu jako całości.

Trudne zadanie?

Choć z jednej strony może to wyglądać dość skomplikowanie, podstawowym celem inżynierów DevOps jest zmniejszenie złożoności. Innymi słowy, muszą zamknąć lukę pomiędzy krokami potrzebnymi do szybkiego wprowadzenia zmian w aplikacji a zadaniami, które pozwoliłyby utrzymać jej niezawodność.

Jak już wspomnieliśmy wcześniej, zespoły programistów oraz IT Operations mają różne umiejętności i cele. Programiści chcą wprowadzać nowe funkcje do aplikacji, a w tym samym czasie dział IT Operations chce zapewnić jej stabilność po wdrożeniu.

Celem DevOps jest ujednolicenie oraz automatyzacja tych dwóch obszarów. Inżynierzy DevOps są niezbędni w połączeniu pisania kodu, utrzymywania aplikacji i jej zarządzania. Są oni w stanie sprostać wszystkim tym zadaniom, bo dokładnie rozumieją filozofię, techniki i technologie DevOps, a dodatkowo znają cykl rozwoju oprogramowania.

 

Jakie zadania i obowiązki ma inżynier DevOps?

Obowiązki każdego inżyniera DevOps w codziennej pracy różnią się. Jest tak dlatego, że każdy z nich pracuje nad unikatowymi projektami w różnych firmach, które nie zawsze tak samo podchodzą do DevOpsu. Dlatego też skala ich zadań jest bardzo szeroka. Mimo to, wielu inżynierów DevOps będzie dzielić kilka ważnych obowiązków. Są nimi:

Zarządzanie bezpieczeństwem systemu

Jednym z najważniejszych aspektów pracy DevOpsowej jest zapewnienie bezpieczeństwa oraz ochrony danych. Inżynierzy DevOps optymalizują bezpieczeństwo infrastruktury IT poprzez projektowanie bezpiecznych systemów oraz aktualizacji. Automatyzują oni środki bezpieczeństwa i upewniają się, że aktualizacje nie tworzą żadnych słabych punktów.

Mimo że wszyscy inżynierowie DevOps działają nad bezpieczeństwem w swojej codziennej pracy, niektórzy z nich (znani jako inżynierzy DevSecOps) skupiają się na bezpieczeństwie systemu w większym wymiarze czasu.

Ulepszanie infrastruktury IT

Jeśli infrastruktura IT opóźnia proces tworzenia oprogramowania, inżynier DevOps jest odpowiedzialny za odnalezienie sposobów radzenia sobie z tym problemem i zapewnienie, że zespoły mogą szybciej dostarczyć oprogramowanie na rynek.

Czasami będzie on musiał dostarczyć zasoby, wybrać odpowiedni model wdrażania, kontrolować release’y, a także monitorować ich wydajność. Zadania mogą także obejmować przygotowanie danych testowych, analizę wyników, rozwiązywanie problemów oraz komunikację z twórcami oprogramowania.

Automatyzacja powtarzalnych zadań

Inżynier DevOps będzie tym, który postara się zwiększyć produktywność twojego zespołu, jeśli doświadczasz opóźnień w releasach z powodu ważnych, ale powtarzalnych zadań. Pomoże on zespołom programistów we wprowadzeniu nowych narzędzi, które zautomatyzują ich powtarzalne zadania lub pomogą im wpasować się w szerszy CI/CD pipeline.

Inżynier DevOps może na przykład zautomatyzować i utrzymywać procesy big data lub implementować zautomatyzowane elementy zarządzania, takie jak monitorowanie wydajności, diagnostyka i failover. Wraz z oceną ryzyka związanego z każdą modyfikacją, będzie on również utrzymywać wysoką dostępność środowiska.

Optymalizacja cykli wydań

Inżynierzy DevOps optymalizują cykl wydawania systemu, redukując czas oraz zasoby potrzebne do projektów lub aktualizacji. Potrafią oni przyspieszyć cykle wydania na kilka różnych sposobów, na przykład poprzez usunięcie niektórych pożeraczy czasu, nadanie priorytetu najważniejszym elementom każdego wydania lub wprowadzenie nowego oprogramowania i narzędzi.

Śledzenie i raportowanie błędów

Inżynierzy DevOps uważnie obserwują oprogramowanie oraz systemy, aby od razu rozwiązywać wszystkie problemy. Niektórzy z nich będą chcieli rozwiązać je ręcznie, natomiast inni zostawią je full-stack developerom.

Pisanie oraz edytowanie kodu

Inżynierzy DevOps rzadko programują od zera, ale muszą rozumieć podstawy języków programowania i znać narzędzia programistyczne używane do tworzenia nowego kodu lub aktualizacji już istniejącego.

Niektórzy inżynierzy DevOps w pełni zlecają pisanie kodu programistom, ale muszą oni być biegli w językach programowania, by móc udzielać przydatnych porad przy problemach związanych z przepływem pracy,

Administracja serwerów

Aby monitorować oraz usprawniać sieci i serwery, na których znajduje się oprogramowanie firmy, inżynierzy DevOps biorą czynny udział w administracji serwerów. Zakładają konta użytkowników, nadają uprawnienia, a przede wszystkim gwarantują, że dane z serwerów są bezpieczne oraz regularnie backupowane. Przeglądają również logi systemowe, aby identyfikować glitche oraz ewentualne błędy ludzkie.

Testowanie oprogramowania QA

Inżynierzy DevOps prowadzą testy skuteczności i wydajności różnych narzędzi programistycznych. Oceniają skuteczność technik programistycznych w odniesieniu do wykonywanego zadania.

Ułatwienie zarządzania projektami

Inżynierzy DevOps odgrywają kluczową rolę w tworzeniu strategicznego planu realizacji celów. Oceniają ryzyko, analizują koszty i benefity, ustalają operacyjne oczekiwania i prognozują przyszłe projekty, aby móc stworzyć linię czasu.

Wprowadzanie DevOps

Wprowadzanie DevOps jest często niedoceniane, ale należy do najważniejszych ról inżyniera DevOps. Niektóre zespoły mogą uznać przejście do kultury DevOps za niezrozumiałe, dlatego to właśnie on jako ekspert w tej dziedzinie będzie musiał wytłumaczyć z czym tak w ogóle je się DevOps.

 

Część druga już wkrótce

Dziękujemy za lekturę. Mamy nadzieję, że teraz już wiesz, czym jest DevOps oraz jakie zadania należą do osób będących częścią zespołu DevOpsowego. Już wkrótce opublikujemy drugą część poradnika. Z niej dowiesz się, jakimi umiejętnościami, zarówno twardymi, jak i miękkimi, powinien władać inżynier DevOps. Przedstawimy też listę narzędzi, które mogą mu się przydać w codziennej pracy, a także zbierzemy wszystkie zalety, jakie może przynieść z nim współpraca.

Autorką tekstu w języku angielskim jest Paulina Kajzer.

Przeczytaj również

Najciekawsze w Bez kategorii

Workation – dlaczego warto wybrać się na wyjazd z zespołem?

Praca to miejsce, w którym spędzamy wiele godzin, i często wiąże się to z wieloma wyrzeczeniami. Dlatego też czasami warto wyrwać się z codziennej rutyny, a świetną okazją ku temu jest zespołowe workation, które ostatnimi laty znacznie zyskuje na popularności. Workation to nic innego jak wspólne spędzanie czasu na pracy, odpoczynku oraz integracji razem z […]

Jak zostać Data Engineering Specialist?

Data Engineering to istotna część nauki o danych. Obejmuje gromadzenie, przechowywanie, przetwarzanie i zarządzanie danymi, aby uczynić je zrozumiałymi i użytecznymi dla osób zajmujących się nimi naukowo i innych – członków projektu czy klientów. W miarę jak nauka o danych zyskuje na znaczeniu w różnych branżach, rośnie również zapotrzebowanie na wykwalifikowanych inżynierów i inżynierki danych […]

Jak stworzyć projekt w Django? Jakie popularne aplikacje korzystają z tego frameworka?

Witaj w drugiej części tutoriala do Django. Dowiesz się z niej, jak stworzyć prosty projekt przy użyciu tego frameworka, a także zobaczysz, jakie popularne aplikacje, z których korzystasz na co dzień, są na nim oparte. Jeśli natomiast obce jest Ci pojęcie Django, odsyłamy do poprzedniej części poradnika. Jak skonfigurować podstawowy projekt lub aplikację Django Zanim […]

Czytaj więcej

Kontakt

Masz pytania?