
Technologie i narzędzia, które inżynier DevOps musi opanować.
DevOps to rosnący trend w IT, a popularność i zapotrzebowanie na ten zawód stopniowo rośnie. W GeekBrains niedawno otworzył się , który kształci specjalistów w danej dziedzinie. Swoją drogą, zawód devopsa często mylony jest z pokrewnymi — programowaniem, administracją systemów itp.
Aby wyjaśnić, czym właściwie jest DevOps i po co potrzebni są przedstawiciele tego zawodu, porozmawialiśmy z Nikołajem Butenko, architektem . Brał udział w opracowywaniu programu kursu wydziału DevOps i jednocześnie naucza studentów trzeciego semestru.
Czego właściwie powinien wiedzieć i umieć dobry DevOps?
Najpierw warto powiedzieć, czego nie powinien umieć. Istnieje mit, że przedstawiciel tego zawodu to człowiek orkiestra, który potrafi napisać doskonały kod, następnie go przetestować, a w wolnym czasie naprawia drukarki kolegów. Może jeszcze pomaga w magazynie i zastępuje baristę.
Aby wiedzieć, czego powinien umieć specjalista DevOps, wróćmy do definicji samego pojęcia. DevOps to optymalizacja czasu od momentu rozwoju produktu do jego wprowadzenia na rynek. W związku z tym specjalista optymalizuje proces pomiędzy rozwojem a eksploatacją, mówi ich językiem i buduje poprawny pipeline.
Co trzeba wiedzieć i umieć? Oto kilka ważnych elementów:
- Potrzebne są dobre umiejętności interpersonalne, ponieważ wymagane jest jednoczesne współdziałanie z wieloma działami wewnątrz jednej firmy.
- Analityczne, strukturalne myślenie, aby móc spojrzeć na procesy z góry i zrozumieć, jak je zoptymalizować.
- Należy samodzielnie ogarniać wszystkie procesy rozwoju i eksploatacji. Tylko wtedy można je zoptymalizować.
- Potrzebne są również doskonałe umiejętności planowania, analizy i projektowania w celu stworzenia zharmonizowanego procesu produkcji.
Czy wszyscy przedstawiciele DevOps są tacy sami, czy istnieją różnice w tej profesji?
W ostatnim czasie pojawiło się kilka gałęzi w obrębie jednej specjalności. Jednak w ogólnym pojęciu DevOps włączone są głównie trzy kierunki: SRE (administrator), Developer (programista), Manager (odpowiada za interakcję z biznesem). Specjalista DevOps rozumie potrzeby biznesu i organizuje skuteczną współpracę poprzez stworzenie ujednoliconego procesu.
Dobrze zna również wszystkie procesy cyklu rozwoju produktu, architekturę, rozumie bezpieczeństwo informacji na poziomie pozwalającym oceniać ryzyko. Ponadto DevOps zna i rozumie podejścia oraz narzędzia automatyzacji, a także wsparcie pre- i post-release dla programów i usług. Ogólnie rzecz biorąc, zadaniem DevOps jest widzieć cały system jako całość, kierować i zarządzać procesami, które przyczyniają się do rozwoju tego systemu.

Niestety, zarówno w Rosji, jak i za granicą, pracodawcy nie zawsze rozumieją istotę DevOps. Przeglądając publikowane oferty pracy, można zauważyć, że nazywając ofertę DevOps, firmy poszukują to administratorów systemów, to administratorów Kubernetes, a czasem w ogóle testerów. Szczególnie uderza w oczy bardzo różnorodny zestaw umiejętności i wiedzy w ofertach pracy DevOps na HH.ru i LinkedIn.
Warto zauważyć, że DevOps to nie tylko specjalność, to przede wszystkim metodologia traktowania infrastruktury jako kodu. W wyniku wdrożenia tej metodologii wszyscy uczestnicy zespołu deweloperskiego widzą i rozumieją nie tylko swoją część pracy, ale mają wizję działania całego systemu.
W jaki sposób DevOps może pomóc firmie, w której pracuje?
Jedną z najważniejszych metryk dla biznesu jest Time-to-Market (TTM). To czas wprowadzenia produktu na rynek, czyli okres, w którym następuje przejście od pomysłu stworzenia produktu do wprowadzenia go do sprzedaży. TTM jest szczególnie istotne w branżach, w których produkty szybko się dezaktualizują.
Dzięki DevOps wiele znanych detalistów w Rosji i za granicą zaczęło rozwijać nowe kierunki. Firmy te masowo przechodzą do trybu online, całkowicie lub częściowo rezygnując z platform offline. W tych warunkach potrzebny jest szybki rozwój aplikacji i usług, co jest niemożliwe bez wykorzystania narzędzi DevOps.

W rezultacie niektórzy detalisti zdołali przyspieszyć proces wypuszczania niezbędnych aplikacji i usług dosłownie w ciągu jednego dnia. A to jest kluczowy czynnik konkurencji w warunkach współczesnego rynku.
Kto może zostać DevOps?
Oczywiście, przedstawicielom specjalności technicznych będzie tu łatwiej: programistom, testerom, administratorom systemów. Osoba, która chce zająć się tą dziedziną bez odpowiedniego wykształcenia, musi być gotowa na naukę podstaw programowania, testowania, zarządzania procesami i administracji systemami. Dopiero po opanowaniu tego wszystkiego można przystąpić do nauki koncepcji DevOps jako całości.
Aby lepiej zrozumieć koncepcję i uzyskać wyobrażenie o niezbędnych wiedzy i umiejętnościach, warto przeczytać „Podręcznik DevOps”, zapoznać się z „Projektem Feniks”, a także metodologią . Inną doskonałą książką jest .
Najlepiej DevOps udaje się ludziom posiadającym analityczny sposób myślenia i zdolnym do wykorzystania podejścia systemowego. Trudno powiedzieć, ile czasu zajmie nowicjuszowi, aby stać się świetnym DevOps. Wszystko zależy od początkowej bazy oraz od środowiska i zadań, które trzeba rozwiązać, a także od skali firmy. Wśród firm, które potrzebują DevOpsów, jest wiele gigantów technologicznych: Amazon, Netflix, Adobe, Etsy, Facebook i Walmart.
Można stwierdzić, że ponad połowa ogłoszeń o pracę na stanowisko DevOps tak naprawdę jest przeznaczona dla doświadczonych administratorów systemów. Niemniej jednak zapotrzebowanie na DevOps stopniowo rośnie i obecnie bardzo brakuje kompetentnych specjalistów w tej dziedzinie.
Aby stać się takim specjalistą, należy uczyć się nowych technologii, narzędzi, stosować systemowe podejście podczas pracy i umiejętnie wykorzystywać automatyzację. Bez niej bardzo trudno, a wręcz niemożliwe, jest rzetelne zorganizowanie DevOps.
Źródło: habr.com
