
Za učenje v življenju ni boljšega časa kot danes.
Leto 2019 je in tema DevOps je zdaj bolj aktualna kot kdaj koli prej. Pravijo, da so dni sistemskih administratorjev minili, kot je minila doba mainframe računalnikov. Ampak, ali je to res?
Kot je pogosto v IT, se je situacija spremenila. Pojavila se je metodologija DevOps, vendar ne more obstajati brez osebe s spretnostmi sistemskega administratorja, torej brez Ops.
Preden se je pristop DevOps oblikoval v svojo moderno podobo, sem se sam uvrščal v kategorijo Ops. Dobro poznam, kakšne občutke ima sistemski administrator, ko spozna, koliko stvari še ne zna in kako malo časa ima, da se jih nauči.

Ampak, ali je res tako strašno? Rekel bi, da ne bi smeli pomanjkanja znanja obravnavati kot veliko težavo. To je raje strokovni izziv.
Proizvodi na ravni spleta temeljijo na Linuxu ali drugi programski opremi z odprtokodnim izvorom, na trgu pa je vse manj strokovnjakov, ki jih lahko vzdržujejo. Povpraševanje je že preseglo število profesionalcev na tem področju. Sistemskemu administratorju ne bo več dovolj, da le nadaljuje s svojim delom, ne da bi izboljšal svojo usposobljenost. Imeti mora veščine avtomatizacije, da lahko upravlja z več strežniki/vozlišči, ter dobro razume načela njihovega delovanja, da lahko reši nastale težave.
Preden postanete del ekipe DevOps, vas čaka precej dolga, a zanimiva pot, med katero boste raziskovali nove tehnologije in različna orodja, potrebna za vzdrževanje sistema v skladu s standardi DevOps.
Kako torej sistemski administrator preide od običajnega načina dela k novi konceptu DevOps? Tako kot običajno: najprej je potrebno spremeniti način razmišljanja. Ni enostavno opustiti pristopa, ki ste mu sledili zadnjih deset ali dvajset let, in začeti vse delati na nov način, vendar je to nujno.
Najpre je pomembno razumeti, da DevOps ni specifična pozicija v podjetju, temveč niz določenih praks. Te prakse vključujejo razdeljevanje izoliranih sistemov, zmanjševanje škode zaradi napak in težav, pogosto in pravočasno posodabljanje programske opreme, dobro komunikacijo med razvijalci (Dev) in administratorji (Ops), ter nenehne teste ne le kode, temveč tudi celotne strukture v okviru procesa .
Ob povečanju spremembe razmišljanja se morate naučiti vzdrževati infrastrukturo in zagotavljati njeno stabilno delovanje, zanesljivost in dostopnost za nenehno integracijo in dostavo aplikacij, storitev in programske opreme.
Morda vam kot specialistu za Ops primanjkuje programerskih znanj. Zdaj je pisanje skript, ki jih sistemski skrbniki uporabljajo za avtomatizirano namestitev popravkov na strežniku, upravljanje datotek in računov, odpravljanje težav ter sestavljanje dokumentacije, že zastarelo. V razmeroma preprostih primerih se skripti še vedno uporabljajo, vendar koncept DevOps predvideva reševanje obsežnih nalog, bodisi gre za uvajanje, testiranje, delo s gradnjami ali uvajanje.
Torej, če želite obvladovati avtomatizacijo, se morate vsaj malo naučiti programiranja, tudi če niste razvijalec, saj to na tem razvojnem koraku v DevOps zahteva ta skill.
Kaj storiti? Da ostanete iskani specialist, morate pridobiti aktualne veščine - obvladati vsaj en programerski jezik, na primer Python. Osebi, ki se profesionalno ukvarja z administracijo, se to lahko zdi zahtevno, saj je navajena misliti, da programirajo le razvijalci. Ni nujno, da postanete strokovnjak, toda znanje enega od programskih jezikov (lahko je Python, Bash ali celo ), bo zagotovo prednost.
Za učenje programiranja potrebujete određeno vreme. Budite pažljivi i strpljivi — to će vam pomoći da zadržite razumevanje situacije prilikom komunikacije sa programerima iz DevOps tima i klijentima. Pola sata dnevno, sat ili više — učenje programskog jezika treba da vam bude glavni cilj.
Sistemski administratori i DevOps stručnjaci rešavaju slične zadatke, međutim, postoje i značajne razlike. Smatra se da sistemski administrator ne može da uradi sve što može DevOps inženjer. Navodno, sistemski administrator se više fokusira na konfiguraciju, održavanje i obezbeđenje funkcionalnosti servera, dok DevOps inženjer nosi sav taj teret i još malo.
Ali koliko je ta tvrdnja tačna?
Sistemski administrator: sam u borbi
Uprkos razlikama i sličnostima istaknutim u ovom članku, smatram da između sistemskog administriranja i DevOps-a nema značajne razlike. Sistemci su uvek obavljali iste funkcije kao i DevOps stručnjaci, samo što to ranije niko nije nazivao DevOps. Mislim da nema smisla posebno tražiti razlike, posebno ako to nije povezano sa određenim zadatkom. Ne treba zaboraviti ni na to da, za razliku od sistemskog administratora, DevOps nije pozicija, već koncept.
Treba napomenuti još jednu važnu stvar bez koje je razgovor o administraciji i DevOps-u nepotpun. Sistemskom administriranju u običnom smislu pretpostavlja se da stručnjak ima konkretan set veština i orijentaciju na održavanje različitih tipova infrastrukture. Ne u smislu da je to univerzalni radnik, već u smislu da postoji niz zadataka koje obavljaju svi administratori.
Na primer, ponekad moraju da postanu tehnički raznovrsni radnici, što znači da rade doslovno sve. A ako takav administrator radi sam za celu organizaciju, on će obavljati svu tehničku radnju. To može biti bilo šta: od održavanja štampača i faks mašina do obavljanja zadataka povezanih sa mrežom, kao što su postavljanje i upravljanje rutera i prekidača ili podešavanje vatrozida.
On bo odgovoren za nadgradnjo strojne opreme, pregled in analizo dnevnikov, varnostni audit, nameščanje popravkov na strežniku, odpravljanje napak, analizo vzrokov in avtomatizacijo — običajno s pomočjo skriptov PowerShell, Python ali Bash. En od primerov uporabe je upravljanje uporabniških in skupinskih računov. Ustvarjanje uporabniških računov in dodeljevanje dovoljenj je izjemno naporna naloga, saj se uporabniki pojavljajo in izginjajo skoraj vsak dan. Avtomatizacija s pomočjo skriptov omogoča sprostitev časa za reševanje bolj pomembnih infrastrukturnih nalog, kot so posodobitve preklopnikov in strežnikov ter izvajanje drugih projektov, ki vplivajo na dobičkonosnost podjetja, v katerem deluje skrbnik (čeprav velja, da IT-oddelek neposredno ne prinaša prihodka).
Naloga sistemskega skrbnika je, da ne izgublja časa in varčuje s sredstvi podjetja na vse mogoče načine. Včasih delujejo sistemski skrbniki kot člani velike ekipe, ki združuje, na primer, skrbnike Linuxa, Windows, baz podatkov, skladišč in podobno. Delovni čas je prav tako lahko različen. Na primer, izmena v eni časovni coni na koncu dneva prenese naloge naslednji izmeni v drugi časovni coni, da se postopki ne ustavljajo (follow-the-sun); ali pa imajo zaposleni običajen delovni dan od 9. do 17. ure; ali pa je to delo v 24-urnem datacentru.
Sčasoma so se sistemski skrbniki naučili strateškega razmišljanja in združevanja pomembnih nalog z rutinskimi opravili. Ekipa in oddelki, v katerih delajo, običajno nimajo dovolj virov, vendar pa se vsi trudijo, da dnevne naloge opravijo v celoti.
DevOps: razvoj in vzdrževanje enotnega
je nekakšna filozofija procesov razvoja in vzdrževanja. Takšen pristop v svetu IT je postal resnično inovativen.
Pod okriljem DevOps-a na jednoj strani radi tim programskih developera, a na drugoj strani tim stručnjaka za održavanje. Često im se pridružuju stručnjaci za upravljanje proizvodom, testeri i dizajneri korisničkog interfejsa. Udružujući snage, ovi stručnjaci optimizuju radne operacije kako bi brzo objavljivali nove aplikacije i ažurirali kod s ciljem podrške i poboljšanja učinkovitosti celokupne kompanije.
Osnova DevOps-a je kontrola razvoja i funkcionalnosti softvera tokom celog životnog ciklusa. Stručnjaci za održavanje moraju podržavati developere, a pred developerima je zadatak da razumeju ne samo API-je koji se koriste u sistemima. Oni moraju razumeti šta se dešava 'ispod haube' (tj. kako funkcionišu hardverski uređaji i operativni sistemi) kako bi bolje rešavali greške, rešavali probleme i komunicirali sa stručnjacima za održavanje.
Sistemski administratori mogu preći u DevOps tim ako žele istraživati najnovije tehnologije i otvoreni su za inovativne ideje i rešenja. Kao što sam već rekao, ne moraju postati potpuni programeri, ali poznavanje programskih jezika kao što su Ruby, Python ili Go pomoći će im da postanu veoma korisni članovi tima. Iako tradicionalno sistemski administratori obavljaju sav posao samostalno i često se percipiraju kao samci, u DevOps-u ih čeka potpuno suprotno iskustvo, gde svi učesnici procesa međusobno komuniciraju.
Tema automatizacije postaje sve aktuelnija. Kako sistemski administratori, tako i DevOps stručnjaci su zainteresovani za efikasno skaliranje, smanjenje broja grešaka, kao i za brzo pronalaženje i otklanjanje postojećih grešaka. Dakle, automatizacija je koncept u kojem se dve oblasti preklapaju. Sistemski administratori su odgovorni za takve cloud servise kao što su AWS, Azure i Google Cloud Platform. Oni treba da razumeju principe kontinuirane integracije i isporuke i kako koristiti alate poput .
Pored toga, sistemski administratori treba da primenjuju takva sredstva za konfiguraciju i upravljanje kao , potrebne za sočasno postavitev desetih ali dvajsetih strežnikov.
Osnovna ideja je . Programska oprema je vse. V bistvu, da poklic sistemskega administratorja ostane relevanten, je potrebno le nekoliko spremeniti poudarek. Sistemski administratorji se ukvarjajo z vzdrževanjem in morajo znati učinkovito komunicirati z razvijalci in obratno. Kot pravijo, ena glava je dobra, dve pa boljši.
In zadnja podrobnost v tem mehanizmu je . Delo z GIT-om je ena od tradicionalnih vsakodnevnih nalog sistemskega administratorja. Ta sistem za upravljanje različic se široko uporablja med razvijalci, DevOps strokovnjaki, Agile ekipami in mnogimi drugimi. Če je vaše delo povezano z življenjskim ciklom programske opreme, zagotovo boste delali z GIT-om.
GIT ima v sebi ogromno možnosti. Verjetno nikoli ne boste zapomnili vseh GIT ukazov, vendar boste gotovo razumeli, zakaj velja ta orodje za največje pri komunikaciji in skupnem delu na programski opremi. Temeljno znanje GIT-a je zelo pomembno, če delate v DevOps ekipi.
Če ste sistemski administrator, se morate bolje spoznati z GIT-om, razumeti, kako deluje upravljanje različic in zapomniti pogosto uporabljene ukaze: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff in druge. Na voljo je veliko spletnih tečajev in knjig, ki vam lahko pomagajo, da se to temo naučite od začetka in postanete strokovnjak z določenimi veščinami. Obstajajo tudi odlične , zato jih ni nujno vse skupaj zapomniti, vendar bo lažje, čim več boste uporabljali GIT.
Zaključek
Na koncu se sami odločite, ali želite postati DevOps strokovnjak ali raje ostati sistemski administrator. Kot vidite, je prehod potreben učenje, vendar prej ko začnete, tem bolje. Izberite programski jezik in hkrati proučite orodja, kot so (upravljanje različic), (CI/CD, neprekinjena integracija) in (konfiguracija in avtomatizacija). Ne glede na to, katero možnost izberete, ne pozabite, da se morate nenehno učiti in izpopolnjevati svoje veščine.
Izvor: habr.com
