Back
dot dot dot

Czym jest DevOps i jakich umiejętności potrzebuje DevOps Engineer?

2022-04-26 10:05:36

Jeśli chcesz odnieść sukces w 2022 roku, musisz działać szybko. Świat technologii stale się zmienia, a czasami sama liczba dostępnych rozwiązań przyprawia o zawrót głowy. 

Jedną ze strategii umożliwiających dostarczanie produktów w dużym tempie jest DevOps. Według raportu agencji Puppet na rok 2021, ponad 80% firm korzysta obecnie z tego podejścia,
aby umożliwić zwiększenie wartości wytwarzanej przez firmę poprzez oprogramowanie lepszej jakości, bezpieczniejsze systemy i kodyfikację zasad. 

Hasło DevOps spowszedniało, dlatego na pewno zdarzyło Ci się usłyszeć o roli „inżyniera DevOps” lub szerzej, o koncepcji „kultury DevOps”. Zastanawiało Cię jednak kiedykolwiek, co oznaczają te hasła?

Jako specjaliści od zagadnień technicznych często mamy trudności z wyjaśnieniem rodzinie i znajomym, czym właściwie się zajmujemy. Dlatego chciałbym rzucić nieco więcej światła na kwestię ról DevOps i umiejętności koniecznych do ich realizowania.       

Zanim jednak zacznę, wyjaśnijmy jedno podstawowe pojęcie. 

Czym jest DevOps?

DevOps (skrót od ang. Development and Operations) to zbiór narzędzi i praktyk przyspieszających dostarczanie oprogramowania poprzez połączenie i zautomatyzowanie pracy zespołów programistycznych i operacyjnych.

 

DevOps stanowi ucieleśnienie przemiany cyklu dostarczania oprogramowania, jaka dokonała się w ciągu ostatnich dwudziestu lat — od sporadycznych wydań obejmujących całą aplikację do cyklicznych, iteracyjnych wydań pojedynczych funkcji lub aktualizacji funkcjonalnych.

 

W DevOps chodzi przede wszystkim o zaspokojenie zapotrzebowania użytkowników na nowe funkcje o charakterze innowacyjnym dostarczane z dużą częstotliwością oraz o ciągłą wydajność. 

Jakich umiejętności potrzebuje inżynier DevOps?

Jak w przypadku każdej innej roli w sektorze technologicznym, tak i w DevOps konieczne jest nastawienie na uczenie się przez całe życie. 

Gdyby chcieć nadać zestawowi umiejętności DevOps metaforyczną formę wizualną, byłby to naszyjnik w kształcie symbolu nieskończoności, z wygrawerowanymi nazwami różnych obszarów wiedzy. 

Kształt ten nie jest przypadkowy, ponieważ dobrze ilustruje fakt, że jako inżynierowie często mamy bezcenną możliwość powtarzania określonych sekwencji zadań i doskonalenia ich z biegiem czasu. Z każdym projektem zdobywamy coraz większe doświadczenie i specjalizujemy się w poszczególnych dziedzinach.  

Jakie umiejętności i zagadnienia powinien zatem umieścić inżynier DevOps na swoim naszyjniku w kształcie symbolu nieskończoności?

1: Wiedza techniczna

Kompetencje techniczne zawsze stanowią podstawę realizacji innych funkcji. W DevOps wymagane umiejętności obejmują zazwyczaj teoretyczną i praktyczną znajomość systemów operacyjnych oraz umiejętność tworzenia skryptów, takich jak Linux Server, Windows Server, Chef, Ansible, GO i  Python. 

Aby odnieść sukces nie trzeba oczywiście znać ich wszystkich, jednak w środowisku DevOps często wykonujemy podobne sekwencje zadań. Dlatego też mamy wiele możliwości optymalizowania procesów i nabywania doświadczeń w zakresie innych technologii.  

2: Robocza znajomość narzędzi DevOps

Mnogość narzędzi w stosie inżyniera DevOps czasami odstrasza nowicjuszy. 

Stos zazwyczaj powiększa się w miarę, jak z miesiąca na miesiąc zespoły wprowadzają rozwiązania i aktualizacje oprogramowania lub dodają narzędzia do testowania, wydawania, monitorowania i analizowania aplikacji. Na początku stos DevOps może wydawać się plątaniną rozwiązań, ale można nad nim zapanować.

3: Ciągła integracja i ciągłe dostarczanie (CI/CD)

Prędzej czy później każdy inżynier DevOps natknie się procesy tworzenia i konfiguracji określane zbiorczo mianem „ciągłej integracji i ciągłego dostarczania”. 

W tym przypadku słowem kluczowym jest AUTOMATYZACJA. Ułatwia ona życie inżynierom DevOps, ponieważ eliminuje konieczność osobistego zaangażowania, błędy oraz zwiększa niezawodność wdrożeń. Automatyzacja procesów to stan idealny, do którego staramy się dążyć za każdym razem.

4: Infrastruktura jako kod (IaC)

Infrastruktura jako kod (IaC) to swego rodzaju magiczne zaklęcie, które inżynierowie DevOps słyszą od pierwszego dnia swojej pracy. Pomimo tajemniczej nazwy, zagadnienie jest niemal tak łatwe do opanowania, jak zaklęcie Wingardium Leviosa z Harry’ego Pottera. 

IaC to język wysokiego poziomu, który pozwala utrzymywać wymagany stan i umożliwia zarządzanie różnymi środowiskami — od testowego po produkcyjne. 

Odchodzi się od ręcznego zarządzania infrastrukturą ze względu na wysokie ryzyko błędu ludzkiego, a narzędzia IaC, takie jak Terraform, ułatwiają dokonanie takiej. 

5: Dryg biznesowy

Oprócz kompetencji twardych związanych z technologiami, bezpieczeństwem optymalizacją i audytami, dobry inżynier DevOps powinien również posiadać szereg umiejętności miękkich. Mam tu na myśli przede wszystkim właściwe podejście do klienta, współpracę z nim oraz podejmowanie właściwych decyzji. 

Po latach pracy w tej branży, mając za sobą doświadczenia w pracy z różnymi technologiami i zasadami działania, zaczynasz koncentrować się na rozwiązywaniu różnych wyzwań. Mierzysz się z różnymi pytaniami klientów, takimi jak: „Czy to środowisko jest bezpieczne? Czy możecie nam pomóc zoptymalizować stosunek kosztów do wydajności?”.

6: Bezpieczeństwo i przewidywalność

W DevOps wykorzystuje się wiele praktyk w celu zapewnienia odpowiedniego poziomu ochrony i odporności infrastruktury. Krótko mówiąc, robimy wszystko, aby było jak najmniej niespodzianek.

We wszystkich tych działaniach inżynierowie DevOps zwracają szczególną uwagę na koszty i wydajność. Posłużmy się przykładem z AWS: „Czy naprawdę potrzebujesz wysoce dostępnego, skalowalnego systemu Aurora r5.xlarge bazującego na wielu strefach dostępności do obsługi kilku zapytań w swoim środowisku programistycznym?”. 

7: Kompetencje komunikacyjne i zdolność do adaptacji

W każdym aspekcie swojej pracy specjalista DevOps musi poszukiwać złotego środka między wymaganiami rynku a wymaganiami projektu.    

Jak zatem zaprezentować klientowi taką hybrydową specjalizację? Moim zdaniem odpowiedź leży w kompetencjach miękkich, podejściu do klienta i zdolności adaptacji. 

Choć polegamy na automatyzacji, co samo w sobie może wydawać się przerażające i ekscytujące zarazem, jako inżynierowie DevOps pozostajemy ludźmi, mamy twórcze i kreatywne pomysły. Musimy się uczyć, podejmować decyzje, wdrażać, testować i rozmawiać, a to właśnie jest klucz do sukcesu każdego projektu prowadzonego przez specjalistę DevOps. 

Zamiast wniosków

Dyskutując o roli inżyniera DevOps, musimy zdawać sobie sprawę z jeszcze jednej rzeczy związanej ze wspomnianą wcześniej metaforą nieskończoności. 

 

W branży technologicznej wszystko, co dziś uznajemy za oczywiste, jutro może ulec zmianie, a zdolność do adaptacji jest dokładnie tym, czego wymaga od nas „podejście DevOps”. 

 

Postawmy zatem na współpracę, pracujmy w interdyscyplinarnych zespołach i  realizujmy coraz bardziej złożone oraz twórcze projekty. 

 

Dobrą ilustracją będzie cytat z jednego z naszych kultowych filmów: „Wiesz co robi ten miś? On odpowiada żywotnym potrzebom całego społeczeństwa. To jest miś na skalę naszych możliwości. Ty wiesz, co my robimy tym misiem? My otwieramy oczy niedowiarkom. Patrzcie – mówimy – to nasze, przez nas wykonane i to nie jest nasze ostatnie słowo.

Poszukujesz wsparcia DevOps dla swojej firmy? Skontaktuj się z nami i zacznijmy działać. 

 

O autorze: Mateusz Grządzielski, posiada prawie 10-letnie doświadczenie w branży IT. Pracował na wielu stanowiskach wsparcia technicznego – od specjalisty po team leadera.

W Tenesys kieruje zespołem Inżynierów DevOps, skupiając się na projektach klientów i dobrej atmosferze całego zespołu. Poza informatyką Mateusz studiuje na Uniwersytecie Ekonomicznym w Poznaniu i prowadzi własną firmę. 

previous next
scroll