Grupa docelowa
Jesteś programistą, który chciałby skierować swoją karierę w stronę bardziej zaawansowanego modelu DevOps? Jesteś klasycznym inżynierem operacyjnym i chciałbyś zrozumieć, co oznacza DevOps? A może nie jesteś ani jednym, ani drugim i po pewnym czasie pracy w technologii IT chcesz zmienić pracę, nie wiedząc, od czego zacząć?
Jeśli tak, to czytaj dalej, aby dowiedzieć się, jak stać się inżynierem DevOps średniego szczebla w ciągu sześciu miesięcy! W końcu, jeśli od wielu lat zajmujesz się DevOps, wciąż możesz czerpać wiele przydatnych informacji z tego cyklu artykułów oraz dowiedzieć się, gdzie obecnie znajduje się branża integracji i automatyzacji oraz w jakim kierunku zmierza.

Czym to w ogóle jest?
Po pierwsze, czym jest DevOps? Możesz poszukać definicji w Internecie i przebrnąć przez te wszystkie słowne bzdury, ale wiedz, że większość z definicji to po prostu zlepek słów ujętych w gładką formę. Dlatego przedstawię ci streszczenie tych wszystkich definicji: DevOps to sposób dostarczania oprogramowania, w którym ból i odpowiedzialność są dzielone przez wszystkich zaangażowanych. I to wszystko.
Dobrze, ale co oznacza ten skrót? Oznacza, że tradycyjnie programiści (twórcy oprogramowania) w swojej pracy kierowali się bodźcami, które znacznie różniły się od bodźców operacyjnych (osób zarządzających oprogramowaniem). Na przykład, jako programista chcę jak najszybciej stworzyć jak najwięcej nowych funkcji. W końcu to moja praca i tego oczekują klienci! Jednak jeśli jestem osobą z działu operacyjnego, to chciałbym jak najmniej nowych funkcji, ponieważ każda nowa funkcja to zmiana, a każda zmiana wiąże się z ryzykiem usterkami. W rezultacie tego nieporozumienia bodźców narodził się DevOps.
DevOps stara się połączyć rozwój i operacje (integrację i automatyzację) w jedną grupę. Idea polega na tym, że teraz jedna grupa będzie dzielić zarówno ból, jak i odpowiedzialność (i prawdopodobnie nagrody) za tworzenie, wdrażanie i uzyskiwanie dochodu z oprogramowania ukierunkowanego na klienta.
Purysta powiedzą, że nie ma czegoś takiego jak "inżynier DevOps". „DevOps to kultura, a nie rola”, powiedzą. Oczywiście, z technicznego punktu widzenia mają rację, ale jak to często bywa, termin ten wyszedł poza swoje pierwotne znaczenie. Tak więc, inżynier DevOps to coś w rodzaju „inżyniera systemowego 2.0”. Innymi słowy, to osoba, która rozumie cykl życia rozwoju oprogramowania i tworzy narzędzia oraz procesy rozwoju oprogramowania w celu rozwiązania klasycznych problemów operacyjnych.

DevOps w końcu oznacza tworzenie cyfrowych potoków, które biorą kod z laptopa programisty i przekształcają go w przychody z użytkowania gotowego produktu, o to w tym wszystkim chodzi. Zauważ, że wybór kariery DevOps jest stosunkowo dobrze opłacany, a prawie każda firma albo „wdraża DevOps”, albo udaje, że to robi. Niezależnie od tego, gdzie te firmy się znajdują, ogólne możliwości zatrudnienia w roli DevOps są dość wysokie i obejmują „fajną” oraz znaczącą pracę na długie lata.
Jednak bądź ostrożny wobec firm zatrudniających "zespół DevOps" lub "dział DevOps". Ścisłe rzecz biorąc, takie rzeczy nie powinny istnieć, ponieważ w końcu DevOps to nadal kultura i sposób dostarczania oprogramowania, a nie kompletowanie nowego zespołu czy tworzenie działu z modną nazwą.
Informacja prawna
A teraz na chwilę odstawmy szklankę „Cool-Aid” i pomyślmy o jednej rzeczy. Słyszałeś starą maksymę, że „nie ma młodszych inżynierów DevOps”? Jeśli nie, to wiedz, że to popularny trop na Reddit i StackOverflow. Ale co to znaczy?
Mówiąc prosto, fraza ta oznacza, że potrzebne są lata doświadczenia połączone z solidnym zrozumieniem narzędzi, aby ostatecznie stać się naprawdę efektywnym praktykiem Senior DevOps. I niestety, nie ma tutaj skróconej drogi do celu. Nie próbujmy więc oszukiwać systemu — nie sądzę, że można udawać starszego inżyniera DevOps z zaledwie kilkumiesięcznym doświadczeniem w tej branży. Osiągnięcie jasnego zrozumienia szybko zmieniających się narzędzi i metodologii wymaga wielu lat doświadczenia, i tego nie da się uniknąć. Istnieje jednak niemalże uzgodnione (modne, jeśli chcesz) menu narzędzi i koncepcji, które wykorzystuje większość firm, i o tym właśnie będzie mowa.
Ponownie, narzędzia różnią się od umiejętności, więc podczas nauki narzędzi upewnij się, że nie zaniedbujesz swoich umiejętności (wywiady, budowanie sieci, komunikacja pisemna, rozwiązywanie problemów itp.). Najważniejsze, aby nie stracić z oczu tego, czego chcemy osiągnąć – sposób stworzenia w pełni zautomatyzowanego cyfrowego procesu, który przekształca pomysły w przynoszące dochód fragmenty kodu. To jedyny i najważniejszy wniosek z całego tego artykułu!
Dość gadania, kiedy mogę zacząć?
Poniżej znajduje się mapa drogowa „Podstawowe wiedza DevOps”. Opanuj wszystko, co tam przedstawiono, a śmiało i uczciwie możesz nazwać siebie inżynierem DevOps! Lub inżynierem chmurowym, jeśli nie podoba ci się miano „DevOps”.

Ta mapa odzwierciedla moje (a prawdopodobnie większości osób pracujących w tej dziedzinie) zrozumienie tego, co powinien wiedzieć kompetentny inżynier DevOps. Niemniej jednak, to tylko opinia, i oczywiście będą tacy, którzy się z nią nie zgodzą. To w porządku! Nie dążymy tu do doskonałości, dążymy do solidnych podstaw, na których można naprawdę budować.
Musisz przejść tę drogę stopniowo, warstwa po warstwie. Zacznij (i kontynuuj!) od podstaw, zaczynając od elementów oznaczonych na niebiesko — Linux, Python i AWS. Następnie, jeśli czas pozwoli lub będzie zapotrzebowanie na rynku pracy, zajmij się fioletowymi rzeczami — Golang i Google Cloud.
Szczerze mówiąc, podstawowy poziom to coś, co będziesz musiał studiować w nieskończoność. OS Linux jest bardzo skomplikowany, a jego opanowanie zajmuje lata. Python wymaga ciągłej praktyki, aby być na bieżąco. AWS rozwija się tak szybko, że to, co dziś wiesz, za rok będzie stanowić tylko część ogólnego zestawu wiedzy. Gdy już opanujesz podstawy, przejdź do rzeczywistego zestawu umiejętności. Zwróć uwagę, że istnieje 6 niebieskich kolumn (Konfiguracja, Wersja, Pakowanie, Wdrażanie, Uruchamianie, Monitorowanie), po jednej na miesiąc nauki.

Na pewno zauważyłeś brak w naszym sześciomiesięcznym harmonogramie ważnego etapu – testowania. Celowo nie uwzględniłem go w roadmapie, ponieważ pisanie modułu, integracja i testy odbiorcze są trudne i tradycyjnie leżą na barkach programistów. Pominięcie etapu "testowanie" wynika z tego, że celem tej drogi jest jak najszybsze opanowanie podstawowych umiejętności i narzędzi. Brak doświadczenia w testowaniu, moim zdaniem, jest jedynie niewielką przeszkodą w prawidłowym wykorzystaniu DevOps.
Ponadto pamiętaj, że nie uczymy się tutaj całej masy niepowiązanych technicznych bzdur, ale dążymy do zrozumienia narzędzi, które w spójnej całości tworzą zrozumiałą historię. Ta historia to koncepcyjna automatyzacja procesów – cyfrowa taśma, która przesuwa bity jak linia montażowa. Nie chcesz przecież uczyć się mnóstwa narzędzi i ciągle się zatrzymywać! Narzędzia DevOps szybko się zmieniają, a pojęcia znacznie rzadziej. Dlatego powinieneś dążyć do wykorzystania narzędzi jako edukacyjnych pośredników dla wyższych koncepcji.
Dobrze, zanurzmy się trochę głębiej!
Podstawowa wiedza
Pod górnym stopniem z napisem Foundation widzicie umiejętności, które każdy inżynier DevOps powinien opanować. Umiejętności te to pewne posługiwanie się trzema „filarem” branży, którymi są: system operacyjny, język programowania oraz chmura publiczna. Te rzeczy nie są czymś, co można szybko poznać i iść dalej. Umiejętności te należy nieustannie doskonalić i szlifować, aby być na czołowej pozycji w branży i aktualizować otaczające was środowisko zawodowe. Przyjrzyjmy się im po kolei.
Linux to miejsce, gdzie wszystko działa. Czy możecie być znakomitym praktykiem DevOps, pozostając całkowicie w ekosystemie Microsoft? Oczywiście, że tak! Nie ma takiego prawa, które nakazywałoby używać wyłącznie Linuxa. Jednak pamiętajcie – mimo że wszystko, co można zrobić w Linuxie, może być wykonane również w Windows, dokonuje się tego znacznie trudniej i z mniejszymi możliwościami funkcjonalnymi. W tej chwili można śmiało założyć, że bez znajomości Linuxa niemożliwe jest stawanie się prawdziwym profesjonalistą DevOps, dlatego Linux to coś, czego powinniście się uczyć i zgłębiać.
Szczerze mówiąc, najlepszym sposobem na to jest po prostu zainstalowanie Linuxa (Fedora lub Ubuntu) w domu i korzystanie z niego tak często, jak to możliwe. Oczywiście, podejrzycie wiele rzeczy, utkniecie w procesach roboczych, będziecie musieli wszystko naprawiać, ale dzięki temu poznacie Linuxa!

Zresztą, w Ameryce Północnej bardziej popularne są wersje RedHat, więc warto zacząć od Fedory lub CentOS. Jeśli zastanawiacie się, czy powinniście zakupić edycję KDE czy Gnome, wybierzcie KDE. To jest to, z czego korzysta sam Linus Torvalds.
Python jest obecnie dominującym językiem backendowym. Łatwo jest zacząć pracę, jest szeroko stosowany. Python jest bardzo popularny w dziedzinie sztucznej inteligencji i uczenia maszynowego, więc jeśli kiedykolwiek zechcecie przejść do jeszcze jednej gorącej branży, będziecie do tego w pełni gotowi.

Amazon Web Services: ponownie, niemożliwe jest stawanie się doświadczonym profesjonalistą DevOps bez solidnego zrozumienia, jak działa chmura publiczna. A jeśli chcecie dowiedzieć się o tym jak najwięcej, zapoznajcie się z Amazon Web Services. Jest to wiodący gracz w tej dziedzinie usług, oferujący najszerszy zestaw narzędzi roboczych.
Czy można zacząć od Google Cloud lub Azure zamiast tego? Oczywiście, że można! Ale biorąc pod uwagę ostatni kryzys finansowy, należy pamiętać, że AWS to najbezpieczniejsza opcja, przynajmniej w 2018 roku, ponieważ pozwala na darmową rejestrację konta i rozpoczęcie poznawania możliwości usług chmurowych. Co więcej, konsola AWS oferuje użytkownikowi proste i zrozumiałe menu do wyboru. Dobrą wiadomością jest to, że nie musisz znać wszystkich technologii Amazon.

Rozpocznij od następujących rzeczy: VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing ukryty pod EC2) i Security Group. To wystarczy, aby zacząć, a każda współczesna firma chmurowa używa tych narzędzi dość aktywnie. Własna strona edukacyjna AWS to dobre miejsce na start.
Polecam poświęcać codziennie 20-30 minut na naukę i praktykę z językiem Python, systemem operacyjnym Linux i usługą chmurową AWS, w dodatku do innych rzeczy, które będziesz musiał poznać. Ogólnie uważam, że poświęcanie godziny dziennie pięć razy w tygodniu to wystarczająco dużo, aby zrozumieć procesy zachodzące w branży DevOps w ciągu 6 miesięcy lub nawet krócej. W sumie jest 6 głównych składników, z których każdy odpowiada miesięcznemu okresowi nauki. To wszystko, co potrzebujesz, aby zdobyć podstawową wiedzę.
W kolejnych artykułach przyjrzymy się wyższemu poziomowi trudności: jak w pełni zautomatyzować konfigurację, wersjonowanie, pakowanie, wdrażanie, uruchamianie i monitorowanie oprogramowania.
Ciąg dalszy wkrótce…
Trochę reklamy 🙂
Dziękujemy, że jesteś z nami. Podobają Ci się nasze artykuły? Chcesz zobaczyć więcej interesujących materiałów? Wspieraj nas składając zamówienie lub polecając nas znajomym, , unikatowy odpowiednik serwerów entry-level, który został stworzony przez nas dla Ciebie: (dostępne opcje z RAID1 i RAID10, do 24 rdzeni i do 40GB DDR4).
Dell R730xd dwa razy tańszy w centrum danych Equinix Tier IV w Amsterdamie? Tylko u nas w Holandii! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — od 99 dolarów! Czytaj o tym
Źródło: habr.com
