Ciljana publika
Jeste li programer koji želi preusmjeriti svoju karijeru prema naprednijem modelu DevOps? Jeste li klasični Ops inženjer i želite steći uvid u to što DevOps zapravo znači? Ili niste ni jedno ni drugo, već ste proveli neko vrijeme radeći u IT tehnologijama, želite promijeniti posao i nemate pojma odakle početi?
Ako je tako, nastavite čitati kako biste saznali kako postati inženjer DevOps razine srednje za šest mjeseci! A ako se DevOps-om već dugo bavite, još uvijek možete izvući mnogo korisnog iz ovog ciklusa članaka i saznati gdje se industrija integracije i automatizacije trenutno nalazi i u kojem se smjeru razvija.

Što je to zapravo?
Prvo, što je DevOps? Možete pretraživati definicije i proći kroz svu tu jezičnu buku, no zapamtite da je većina definicija samo mješavina riječi obavijena u glatki oblik. Stoga ću vam dati sažetak svih tih definicija: DevOps je način isporuke softvera u kojem se glavobolja i odgovornost dijele među svima uključenima. To je to.
Dobro, ali što to skraćenica zapravo znači? Ona znači da su se tradicionalno developeri (ljudi koji kreiraju softver) u svom radu vodili poticajima koji se značajno razlikuju od poticaja operativnog osoblja (Ops, ljudi koji upravljaju softverom). Na primjer, kao developer, želim što brže kreirati što više novih funkcija. Na kraju krajeva, to je moj posao, a to je ono što klijenti žele! Međutim, ako sam osoba iz Ops-a, onda želim što manje novih funkcija, jer svaka nova funkcija predstavlja promjenu, a svaka promjena nosi rizik od grešaka. Razočaranje između tih poticaja dovelo je do nastanka DevOps-a.
DevOps pokušava spojiti razvoj i operacije (integraciju i automatizaciju) u jednu grupu. Ideja je da će sada jedna grupa dijeliti i bol i odgovornost (i vjerojatno nagradu) za stvaranje, implementaciju i ostvarivanje prihoda od softvera usmjerenog na korisnika.
Puristi će vam reći da ne postoji takva stvar kao „DevOps inženjer“. „DevOps je kultura, a ne uloga“, reći će vam. Naravno, s tehničkog aspekta su u pravu, ali, kao što to obično biva, ovaj termin je izašao iz svog izvornog značenja. Dakle, DevOps inženjer je nešto poput „sistemskog inženjera 2.0“. Drugim rečima, to je osoba koja razume životni ciklus razvoja softvera i kreira alate i procese za razvoj softvera kako bi rešila klasične operativne zadatke.

DevOps u suštini podrazumeva stvaranje digitalnih kanala koji uzimaju kod sa programer's laptopa i pretvaraju ga u prihod od korišćenja konačnog proizvoda, to je poenta. Imajte na umu da su karijere u DevOps-u prilično dobro plaćene, sa gotovo svakom kompanijom koja ili „praktično primenjuje DevOps“, ili se pretvara da to radi. Bez obzira gde se te kompanije nalaze, ukupne mogućnosti zapošljavanja kao DevOps stručnjak su prilično visoke i podrazumevaju „zabavno“ i značajno zaposlenje na dugi rok.
Međutim, budite oprezni s kompanijama koje zapošljavaju „DevOps tim“ ili „DevOps odeljenje“. Strogo govoreći, takve stvari ne bi trebale postojati, jer se DevOps u suštini i dalje smatra kulturom i načinom isporuke softvera, a ne popunjavanjem novog tima ili stvaranjem odeljenja s modernim nazivom.
Izjava o odricanju odgovornosti
A sada, hajde da na trenutak ostavimo čašu „Cool-Aid-a“ po strani i razmislimo o sledećem. Čuli ste staru izreku da „ne postoje mlađi DevOps inženjeri?“. Ako niste, znajte da je to popularna fraza na Reddit-u i StackOverflow-u. No, šta to zapravo znači?
Jednostavno rečeno, ova fraza znači da je potrebno mnogo godina iskustva u kombinaciji s čvrstim razumijevanjem alata kako bi se na kraju postalo zaista učinkovit praktikanat Senior DevOps. Nažalost, ovdje ne postoji najkraći put do cilja. Dakle, to nije pokušaj obmane sistema — ne mislim da je moguće pretvarati se da ste senior DevOps inženjer s nekoliko mjeseci iskustva u ovoj oblasti. Postizanje jasnog razumijevanja brzo promjenjivih alata i metodologija zahtijeva godine iskustva, i to se ne može izbjeći. Ipak, postoji gotovo općeprihvaćeni (moderno, ako želite) meni alata i koncepata koje većina kompanija koristi, i o tome će se ovdje govoriti.
Ponovno, alati se razlikuju od vještina, pa dok učite alate, pazite da ne zanemarujete svoje vještine (intervjuiranje, umrežavanje, pisana komunikacija, rješavanje problema itd.). Važno je ne izgubiti iz vida ono što pokušavamo pronaći – način stvaranja potpuno automatiziranog digitalnog proizvodnog lanca koji uzima ideje i pretvara ih u profitabilne dijelove koda. To je jedina i najvažnija zaključak iz cijelog ovog teksta!
Dosta priče, kada mogu početi?
Ispod je prikazana mapa 'Osnovno znanje DevOps'. Kada ovladate svime što je tamo prikazano, možete se slobodno i s pravom nazvati DevOps inženjerom! Ili cloud inženjerom, ako vam ne odgovara naziv “DevOps”.

Ova mapa prikazuje moje (i vjerojatno većine ljudi koji rade u ovom prostoru) shvaćanje onoga što bi kompetentan DevOps inženjer trebao znati. Ipak, ovo je samo mišljenje, i naravno, bit će onih koji se s tim ne slažu. To je u redu! Nismo ovdje da težimo savršenstvu, već da postavimo čvrst temelj na kojem se može stvarno graditi.
Trebate proći ovaj put postupno, sloj po sloj. Počnite (i nastavite!) s osnovnim osnovama, prvo učeći elemente označene plavom bojom — Linux, Python i AWS. Zatim, ako vam to dozvoli vrijeme ili potražnja na tržištu rada, bavite se ljubičastim stvarima — Golang i Google Cloud.
Iskreno govoreći, osnovni sloj je ono što ćete neprekidno učiti. OS Linux je vrlo složen i potrebno je mnogo godina za njegovo savladavanje. Python zahteva konstantnu praksu da biste ostali u toku. AWS se razvija tako brzo da će ono što danas znate postati samo deo ukupnog znanja za godinu dana. Kada savladate osnove, pređite na stvarni set veština. Imajte na umu da postoji ukupno 6 plavih kolona (Konfiguracija, Verzija, Pakovanje, Implementacija, Pokretanje, Praćenje), po jedna za svakog meseca učenja.

Naravno, primetili ste da je u našem šestomesečnom toku izostavljen važan korak – testiranje. Namerno ga nisam uključio u vremensku liniju, jer pisanje modula, integracija i testovi prihvatanja su izazovni i tradicionalno padaju na leđa programera. Izostavljanje faze 'testiranje' objašnjava se time što je cilj ove vremenske linije što brže savladati osnovne veštine i alate. Nedostatak iskustva u testiranju smatra se samo malim preprekom za pravilnu upotrebu DevOps-a.
Osim toga, zapamtite da ovde ne učimo hrpu nepovezanog tehničkog žargona, već se trudimo da razumemo alate koji zajedno čine jasnu priču. Ova priča predstavlja end-to-end automatizaciju procesa – digitalnu traku koja pomera bitove poput proizvodne linije. Ne želite da učite mnoštvo alata i neprestano stajete! Alati u DevOps-u se brzo menjaju, dok se koncepti menjaju ređe. Zato se trudite da koristite alate kao obučene proxyje za viši nivo koncepata.
U redu, idemo malo dublje!
Osnovno znanje
Ispod gornjeg stepenika s natpisom Foundation nalaze se vještine koje bi svaki DevOps inženjer trebao ovladati. Te vještine uključuju samouvjereno rukovanje sa tri 'stupa' industrije, a to su: operacijski sustav, programski jezik i javna oblaka. Ove stvari nisu nešto s čime se može brzo upoznati i ići dalje. Te vještine trebate stalno usavršavati i usavršavati svoju sposobnost rada s njima kako biste bili u avangardi industrije i održali svoju profesionalnu okolinu aktualnom. Prođimo ih redom.
Linux je mjesto gdje sve funkcionira. Možete li biti izvanredan praksa DevOps, potpuno se držeći okvira Microsoftove ekosustava? Naravno, možete! Ne postoji zakon koji nalaže korištenje samo Linuxa. Međutim, imajte na umu — unatoč tome što se sve stvari u Linuxu mogu napraviti i na Windowsu, to je mnogo bolnije i sa manje funkcionalnosti. Trenutno se može slobodno pretpostaviti da bez poznavanja Linuxa nije moguće postati pravi DevOps profesionalac, stoga je Linux nešto što morate učiti i učiti.
Iskreno, najbolji način da to učinite je jednostavno instalirati Linux (Fedora ili Ubuntu) kod kuće i koristiti ga što više. Naravno, slomit ćete mnogo stvari, zaglaviti u radnim procesima, morat ćete ispraviti sve, ali ćete tako naučiti Linux!

Usput, u Sjevernoj Americi popularnije su verzije RedHat, pa ima smisla početi s Fedorom ili CentOS-om. Ako se pitate trebate li nabaviti KDE ili Gnome izdanje, odaberite KDE. To je ono što koristi sam Linus Torvalds.
Python je danas dominantni backend jezik. Lako je započeti rad s njim, široko se koristi. Python je vrlo popularan u području umjetne inteligencije i strojnog učenja, pa ako ikada želite preći u još jednu vruću djelatnost, bit ćete potpuno spremni.

Amazon Web Services: opet, nemoguće je postati iskusni DevOps profesionalac bez čvrstog razumijevanja načina rada javnog oblaka. A ako želite saznati što više o tome, proučite Amazon Web Services. To je vodeći igrač u ovom području usluga, koji nudi najbogatiji set radnih alata.
Možeš li umjesto toga započeti s Google Cloudom ili Azureom? Naravno, možeš! No, imajući na umu posljednju financijsku krizu, važno je napomenuti da je AWS najpouzdanija opcija, barem u 2018. godini, jer omogućuje besplatnu registraciju računa i početak istraživanja mogućnosti oblaka. Osim toga, AWS konzola nudi korisniku jednostavno i intuitivno sučelje za odabir. Dobra vijest je da za to ne moraš poznavati sve tehnologije Amazona.

Započni s ovim: VPC, EC2, IAM, S3, CloudWatch, ELB (Elastic Load Balancing na EC2) i Security Group. Ove komponente su dovoljne za početak rada, a svako moderno oblačno poduzeće aktivno koristi ove alate. AWS-ov vlastiti edukativni portal odličan je početak.
Preporučujem ti da svakodnevno posvetiš 20-30 minuta učenju i vježbanju s Python jezikom, operativnim sustavom Linux i AWS-om, uz ostale stvari koje ćeš morati naučiti. Općenito, smatram da je do jedan sat dnevno pet puta tjedno dovoljno da razumiješ DevOps procese unutar 6 mjeseci ili čak manje. Ima ukupno 6 ključnih komponenti, od kojih svaka odgovara jednom mjesecu učenja. To je sve što će ti biti potrebno za stjecanje osnovnog znanja.
U budućim člancima razmotrit ćemo sljedeću razinu složenosti: kako potpuno automatizirati postavljanje, verzioniranje, pakiranje, implementaciju, pokretanje i praćenje softvera.
Nastavak slijedi vrlo brzo...
Malo reklame 🙂
Hvala što ostajete s nama. Sviđa li vam se naše članke? Želite li vidjeti više zanimljivih materijala? Podržite nas narudžbom ili preporučite prijateljima, , jedinstveni analog entry-level servera koji smo razvili za vas: (dostupne opcije s RAID1 i RAID10, do 24 jezgre i do 40GB DDR4).
Dell R730xd je 2 puta jeftiniji u data centaru Equinix Tier IV u Amsterdamu? Samo kod nas u Nizozemskoj! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — od 99 $! Pročitajte o tome
Izvor: habr.com
