Aby lepiej zrozumieć kim jest DevOps należy dobrze rozumieć jak wytwarzane są współczesne aplikacje. Na przestrzeni lat proces ich wytwarzania bardzo się zmienił. Wraz z rozwojem działów IT i technologii jaką dysponują, proces ewoluował i cały czas jest optymalizowany, przy okazji zmieniając podejście do tworzenia oprogramowania. Celem jest jak najszybsze i bezbłędne wypuszczanie nowych wersji aplikacji.
Dzisiejsze programy to nie tylko to, co widzi użytkownik końcowy. To także dziesiątki małych aplikacji połączonych w jedną, środowiska testowe, środowiska produkcyjne oraz serwery, na których to wszystko jest utrzymywane. Programista tworząc nową funkcję buduje ją na swojej lokalnej wersji aplikacji, aby następnie przesłać ją do wersji, na której się testuje i – finalnie – na wersję produkcyjną, którą widzi użytkownik końcowy. To oznacza, że jeden programista może pracować na zupełnie innej wersji aplikacji niż jego kolega obok. Taki programista może także co dwa tygodnie zmieniać projekt, a co za tym idzie zmieniać aplikację, na której pracuje.
Przygotowanie takiego środowiska jest bardzo czasochłonne i aż się prosi, aby ten proces zautomatyzować – w zależności od tego, jak rozbudowany jest dział IT i sama aplikacja, nad którą pracują programiści. Ten proces może być znacznie bardziej rozbudowany. Wspomniałem już o tym, że dana aplikacja to tak naprawdę dziesiątki (a niekiedy setki) mniejszych aplikacji? Podobny proces zachodzi w każdej z nich. Takie mini aplikacje tworzone były zazwyczaj w różnym czasie i wymagają różnych wersji oprogramowania, z którego korzystają. Im większa firma, tym bardziej rozbudowany i czasochłonny proces. Zbyt czasochłonny aby programiści mogli się tym zajmować w przerwach pisania kodu. I tu właśnie wkracza DevOps.
Kim jest DevOps Engineer?
DevOps to skrót od Development and Operations. W skrócie jest to osoba, która zajmuje się procesem wytwarzania oprogramowania oraz jego późniejszym rozwojem i deploymentem (deploy – ang. wdrażać). Zarządza i utrzymuje cały ten system naczyń połączonych, który pozwala programistom w szybki i skuteczny sposób wypuszczać zmiany w oprogramowaniu. Filozofia DevOps pozwala na oszczędzanie cennych zasobów np. serwerowych, za które są w modelu Pay as you go, czyli płacisz tyle, ile zużyjesz. Zapotrzebowanie aplikacji na moc obliczeniową nie jest stałe. Zmienia się w zależności od liczby użytkowników, którzy korzystają z danej aplikacji. Przykładowo dla sklepu z grami, zapotrzebowanie może być większe w chwili premiery głośnego tytułu, a mniejsze gdy takich premier jest mniej. Nie ma sensu utrzymywać cały czas drogiej maszyny, tylko dlatego, że trzy razy w roku zapotrzebowanie może wzrosnąć. Obecne rozwiązania pozwalają na zwalnianie takich zasobów i zaoszczędzenie dzięki temu pieniędzy.
Devops Engineer działa na pograniczu developmentu i administrowania całą infrastrukturą. Development – zarządza całym tym procesem wytwarzania oprogramowania i dbania o środowiska, na których pracują programiści oraz Operations, czyli całym procesem, administracyjnym takimi jak np. dbanie o chmurę, na której stoją wszystkie aplikacje firmy, czy o automatyzację procesów takich jak np. automatyczny deployment aplikacji. Sporą częścią pracy DevOps Engineer jest monitoring i analiza danych ze wszystkich środowisk firmy oraz ich późniejsza optymalizacja.
Co powinien umieć DevOps Engineer?
Bycie DevOpsem nie jest proste. Przede wszystkim jest wiele procesów i programów, które musi znać. IT jest bardzo dynamiczną branżą, która ciągle się rozwija, dlatego DevOps Engineer musi być gotowy na ciągły rozwój i poszerzanie swoich umiejętności. DevOps musi rozumieć, w jaki sposób wytwarzane są współczesne aplikacje, ponieważ jego zadaniem jest zarządzanie cały procesem i optymalizacja – bez jego dobrej znajomości i doświadczenia będzie to bardzo trudne. Oprócz tego musi znać aplikacje wykorzystywane w pracy DevOpsa jak np. Jenkins, Terraform, Docker i kilka innych. To z jakich będzie korzystał, zależy w dużej mierze od tego, do jakiego projektu trafi. Ale to nie wszystko. Większość procesu wytwarzania oprogramowania znajduje się dziś w chmurze, więc znajomość jej też jest konieczna. Mowa tutaj o chmurze jako filozofii, ale także o konkretnym produkcie (najpopularniejsze rozwiązania to AWS, Google Cloud i Azure).
Podsumowując, głównym zadaniem DevOpsa jest dbanie o cały proces wytwarzania oprogramowania, wliczając w to środowiska, na których pracują programiści jak i infrastrukturę, która jest w chmurze. Efektem pracy DevOpsa ma być poprawa jakości pracy programistów, szybsze wdrożenia oprogramowania i, co się z tym wiąże, częstsze wdrożeniami nowych funkcjonalności w aplikacji. To także dbanie o kulturę i zrozumienie całego procesu kryjącego się pod nazwą DevOps. DevOps Engineer stara się też o to, aby zautomatyzować możliwie jak najwięcej procesów.
Ile zarabia DevOps?
Zarobki jako DevOps Enginner są bardzo wysokie. W dużej mierze są to doświadczeni specjaliści, a co za tym idzie zarobki są jedne z wyższych w branży IT. Widełki netto na umowach B2B zaczynają się od 15 000 zł a kończą nawet na 20 000 zł (za raportem IT Job Market in Poland – 2020 – No Fluff Jobs). Takie zarobki plasują DevOps w czołówce najlepiej opłacanych kategorii w branży IT. Wyżej są już tylko Seciurity oraz Big Data.
Jakie firmy potrzebują DevOpsów?
Ostatnie zmiany w branży związane z upowszechnieniem pracy zdalnej właściwie zniósł barierę związaną z lokalizacją. Obecnie możesz pracować z Polski dla praktycznie każdej firm na świecie. Najpopularniejszymi firmami potrzebującymi DevOpsów są software housy, które zajmują się wytwarzaniem oprogramowania dla klientów zewnętrznych. Zautomatyzowanie wszystkich procesów daje takim firmom konkretne zyski.
Jak zostać DevOps Engineerem?
DevOps nie musi posiadać wiedzy tak dogłębnej jak programista czy administrator, ale z pewnością musi programować i wiedzieć jak działają serwery. Zdobycie wiedzy DevOpsa wynika z opanowaniu wielu różnych technologii i narzędzi. Potrzeba doświadczenia w pracy np. z narzędziami do automatyzacji wypuszczania nowej wersji oprogramowania czy zarządzania chmurą obliczeniową. Najlepiej uczyć się tego od doświadczonych DevOpsów.
Z uwagi na dotychczasowy brak specjalistycznych kursów na DevOpsów, najczęściej to programista lub administrator zaczynał pracę jako DevOps Enginner. Pojęcie DevOps jest bardzo szerokie co sprawia, że trzeba opanować sporo narzędzi i technologii, które ciągle się zmieniają. Branża IT jest bardzo dynamiczna i należy się upewnić, że technologia, której właśnie się uczymy to standard na rynku.
Kurs DevOps
W infoShare Academy od lat śledzimy to co dzieje się w branży IT i wyciągamy wnioski. Słuchamy zarówno firm jak i ludzi, którzy myślą o wejściu do tej branży. W wyniku rozmów z szeroko pojętą branżą powstał specjalny kurs dla ludzi chcących zostać DevOps Engineer. DevOps od podstaw to 160 godzin intensywnej nauki w formie warsztatów z trenerem na żywo. Kursy z trenerem to świetna okazja do nauki warsztatu od profesjonalnych DevOps Engineer. Kurs prowadzą doświadczeni trenerzy praktycy, którzy cały czas pracują w branży.
Na kursie nauczysz się umiejętności z pogranicza Development i Operations. Poznasz najlepsze praktyki związane z wirtualizacją, konteneryzacją, orkiestracją, systemami CI/CD, narzędziami DevOps, automatyzacją procesów oraz migracją kompletnych systemów do chmury.
Tematy poruszane na kursie:
- wprowadzenie do wirtualizacji
- konteneryzacja aplikacji w środowisku Docker
- zarządzanie systemem skonteneryzowanym z wykorzystaniem dockercompose
- systemy CI/CD
- Kubernetes
- narzędzia DevOps
- monitoring i alerting w środowiskach rozproszonych
- IaaC na przykładzie Terraform
- automatyzacja z wykorzystaniem Ansible
- migracja środowiska do chmury AWS
Jeśli chcesz dowiedzieć się więcej o kursie DevOps od podstaw, to sprawdź naszą stronę kursu: