Tj Blogumas
Tj BlogumasArchitekt DevOps @ Federal Reserve Bank of Kansas City

Jak zostać DevOpsem w 2020 roku

Sprawdź, co należy wiedzieć i jakie umiejętności trzeba nabyć, aby zostać inżynierem DevOps w 2020 roku.
26.05.20204 min
Jak zostać DevOpsem w 2020 roku

Metodyka DevOps pojawiła się w 2009 roku. Od tamtego momentu DevOpsi zdążyli już zająć teren i nie wygląda na to, żeby się gdzieś wybierali. Chcesz zostać inżynierem DevOps? Oto pięć rzeczy, które musisz zrobić, aby sprawdzić się jako DevOps:

  1. Myśl jak programista. Będziesz zarządzał czymś w rodzaju kodu, więc musisz spojrzeć na wyzwania i problemy z perspektywy programisty. Używaj Gita i napisz kod, który można utrzymywać przez wiele lat.
  2. Zdobądź podstawowe informacje z zakresu inżynierii systemów. Poznaj trójwarstwową architekturę aplikacji. Bądź w stanie wyjaśnić podstawowe zadania związane z administrowaniem (i jak je zautomatyzować) oraz naucz się podstaw Linuxa.
  3. Bądź w stanie rozmawiać o chmurze. Prawie każda firma stosuje w tym momencie chmurę. Daje to również możliwość udowodnienia swojego doświadczenia z configuration-as-code.
  4. Naucz się czegoś o kontenerach. Nie potrzebujesz doświadczenia w Kubernetesie, ale musisz wiedzieć, czym jest kontener. Skoncentruj się na użyciu kontenerów w procesie CI.
  5. Umiejętności miękkie też są ważne. DevOps to nie tylko praca z narzędziami i technologią, ale także kultura. Aby odnieść sukces jako inżynier DevOps, musisz mieć możliwość nawiązywania przyjaźni i wpływania na ludzi.


Źródło: https://www.techrepublic.com/

Myśl jak programista

Nie trzeba umieć programować w Javie albo w .NET, aby zostać DevOpsem. Podczas przeprowadzania wywiadów z potencjalnymi DevOpsami, zauważyłem, że wielu z nich czuje się niepewnie przy wyjaśnianiu zagadnień programistycznych, takich jak Git, pull request, czy SDLC. Bądź po prostu w stanie odpowiedzieć na podstawowe pytania dotyczące tych rzeczy.

Pamiętaj też, że kiedy piszesz skrypty lub używasz narzędzi takich jak Ansible, Chef lub Terraform, to w rzeczywistości piszesz kod. Pisanie testów jest więc konieczne, bo inaczej nie przekonasz się, czy Twój kod działa.


Utrzymywanie

Różnicą między kimś uczącym się na DevOpsa a kimś, kto już praktykuje, jest umiejętność użycia jakiegokolwiek narzędzia do napisania kodu, tak, aby dało się go utrzymać. Wiedz, jak możesz napisać swój kod (oraz używać zmiennych), aby można go było ponownie wykorzystać i refaktoryzować bez konieczności ponownego pisania.


Źródło: https://ops.fhwa.dot.gov/plan4ops/sys_engineering.htm 

Inżynieria systemów

Dotyczy to głównie programistów zainteresowanych poznaniem strony operacyjnej. Warto jest zdobyć doświadczenie i zrozumieć, w jaki sposób systemy operacyjne działają z oprogramowaniem pośredniczącym oraz wiedzieć co należy skonfigurować w jednym i drugim. W jaki sposób ruch sieciowy przepływa z przeglądarki do serwera aplikacji? Czym jest trójwarstwowa architektura aplikacji?

Kiedy zrozumiesz, co należy skonfigurować w systemie, to dopiero wtedy możesz zacząć spisywać konfigurację jako kod. Wiedząc, które rzeczy mogą się często zmieniać lub które rzeczy mogą się różnić w różnych aplikacjach, możesz decydować, co należy eksponować jako zmienne w kodzie, a co na stałe.


Źródło: https://timesofcloud.com/cloud-tutorial/history-and-vision-of-cloud-computing/

Chmura

Mam nadzieję, że większość tych, którzy czytają ten artykuł, wiedzą, o czym mówię. Większość przedsiębiorstw używa Azure, czy AWS jako swojego dostawcę usług w chmurze. Nie zatrudniłbym inżyniera DevOps, który nie ma co najmniej minimalnego doświadczenia w chmurze. Jeśli nie korzystasz obecnie z żadnej z tych firm, utwórz własne konto i zacznij się bawić niektórymi usługami. 

Nie musisz rozumieć każdej dostępnej usługi AWS, ale wypada przynajmniej posiadać wiedzę podstawową, na przykład, na temat tego, co robią i dlaczego są ważne. Co więcej, porozmawiaj o swoich doświadczeniach z korzystania z takich narzędzi infrastructure-as-code, jak Terraform, czy CloudFormation. Konfiguracja środowisk chmurowych jako kodu bardzo pomaga.


Źródło: https://www.docker.com/resources/what-container

Kontenery

Korzystanie z kontenerów rywalizuje ostatnio z aplikacjami serverless. Jednakże, w przypadku większości przedsiębiorstw nie każda aplikacja jest dobrym kandydatem do migracji na serverless. Nie musisz być mistrzem Kubernetesa, żeby zostać DevOpsem. Dla większości przedsiębiorstw pełna adopcja K8s to wyzwanie na kilka lat.

Wiele osób obecnie walczy o możliwość instalowania Dockera i uruchamiania kontenerów w środowisku korporacyjnym. Ponieważ kontenery dają programistom możliwość lokalnego uruchamiania całego stosu aplikacji, umiejętność budowania kontenerów dla aplikacji i korzystania z nich jest niezbędna, aby być naprawdę pomocnym DevOpsem.

Warto przyspieszyć proces CI poprzez użycie kontenerów do budowania kolejnych wersji. Po co zarządzać wersjami Java i łatać je w maszynie wirtualnej do budowania plików .jar, skoro można po prostu użyć kontenera? Co więcej, warto jest też umieć korzystać z tych kontenerów w wybranym narzędziu CI (Jenkins, Gitlab itp.).

Źródło: https://www.wikijob.co.uk/content/interview-advice/competencies/soft-skills

Umiejętności miękkie

To może być najtrudniejszy zestaw umiejętności do opanowania, często też niestety pomijany. DevOps jest jeszcze dla wielu organizacji nowością, także jest tutaj spore pole do szkoleń. Jedynym sposobem na odniesienie sukcesu jest umiejętność skutecznej komunikacji, pracy w silosach biznesowych oraz nawiązywania partnerstwa z różnymi osobami w organizacji.

Na własnej skórze odczułem, że tupnięcie nogą i podejmowanie decyzji za wszystkich innych nie przekona ich do zmiany. W rzeczywistości stworzysz więcej barier, niż coś osiągniesz. Słuchaj i staraj się zrozumieć innych. Nie czuj też potrzeby rozwiązywania każdego problemu. Najskuteczniejszy DevOps może wpływać na innych, w taki sposób, aby sami radzili sobie ze swoimi problemami. 

Dodatkowe materiały szkoleniowe

<p>Loading...</p>