Zakaj bi morali sistemski skrbniki postati inženirji DevOps

Zakaj bi morali sistemski skrbniki postati inženirji DevOps

V življenju ni boljšega časa za učenje kot danes.


Leto 2019 je in DevOps je pomembnejši kot kdaj koli prej. Pravijo, da so časi sistemskih administratorjev mimo, tako kot doba velikih računalnikov. Toda ali je res tako?
Kot se pogosto dogaja v IT, so se razmere spremenile. Pojavila se je metodologija DevOps, ki pa ne more obstajati brez osebe s sistemskim administratorskim znanjem, torej brez Opsa.

Preden je pristop DevOps prevzel sodobno obliko, sem se uvrstil med Ops. In dobro vem, kaj doživi sistemski skrbnik, ko spozna, koliko še ne zmore in kako malo časa ima, da se tega nauči.

Zakaj bi morali sistemski skrbniki postati inženirji DevOps

Toda ali je res tako strašno? Rekel bi, da pomanjkanja znanja ne bi smeli dojemati kot neke velike težave. Je bolj profesionalni izziv.

Izdelki v spletnem merilu temeljijo na Linuxu ali drugi odprtokodni programski opremi in na trgu je vse manj ljudi, ki bi jih lahko vzdrževali. Povpraševanje je že preseglo število strokovnjakov na tem področju. Sistemski skrbnik ne bo mogel več preprosto nadaljevati z delom, ne da bi izboljšal svojo raven znanja. Imeti mora veščine avtomatizacije za upravljanje več strežnikov/vozlišč in dobro razumeti, kako delujejo pri reševanju težav, ki se pojavijo.

Preden postaneš član ekipe DevOps, moraš opraviti precej dolgo, a zanimivo pot učenja novih tehnologij in različnih orodij, potrebnih za vzdrževanje sistema po standardih DevOps.

Torej, kako lahko sistemski skrbnik preide iz običajnega pristopa k delu na nov koncept DevOps? Vse je kot običajno: najprej morate spremeniti svoje razmišljanje. Ni lahko opustiti pristopa, ki si ga sledil zadnjih deset, dvajset let, in začeti delati stvari drugače, a je nujno.

Najprej je pomembno razumeti, da DevOps ni določen položaj v podjetju, temveč niz posebnih praks. Te prakse vključujejo distribucijo izoliranih sistemov, zmanjšanje škode zaradi hroščev in napak, pogoste in pravočasne posodobitve programske opreme, dobro vzpostavljeno interakcijo med razvijalci (Dev) in skrbniki (Ops), pa tudi stalno testiranje ne le kode, temveč tudi celotno strukturo znotraj procesa stalna integracija in dostava (CI/CD).

Ob spremembi načina razmišljanja se morate naučiti vzdrževati infrastrukturo in zagotavljati njeno stabilno delovanje, zanesljivost in razpoložljivost za stalno integracijo in dostavo aplikacij, storitev in programske opreme.

Tisto, kar morda pogrešate kot strokovnjak za operacije, so veščine programiranja. Zdaj pisanje skript (skript), s katerimi sistemski skrbniki samodejno nameščajo popravke na strežnik, upravljajo datoteke in račune, odpravljajo težave in sestavljajo dokumentacijo, že velja za zastarelo. Skriptiranje se še vedno uporablja v sorazmerno preprostih primerih, vendar je DevOps namenjen reševanju obsežnih problemov, pa naj gre za implementacijo, testiranje, gradnje ali uvajanja.

Torej, če se želite naučiti avtomatizacije, morate obvladati vsaj malo programiranja, tudi če niste razvijalec, saj na tej stopnji vašega razvoja avtomatizacija infrastrukture v DevOps zahteva to veščino.

Kaj storiti? Če želite ostati v povpraševanju kot specialist, morate pridobiti ustrezne veščine - obvladati vsaj en programski jezik, na primer Python. Osebi, ki se poklicno ukvarja z administracijo, se to morda zdi težko, saj je navajen misliti, da programirajo samo razvijalci. Ni potrebno postati strokovnjak, temveč znanje enega od programskih jezikov (lahko Python, Bash ali celo PowerShell), bo vsekakor prednost.

Učenje programiranja traja nekaj časa. Če ste pozorni in potrpežljivi, boste lažje ostali na tekočem pri komunikaciji s člani ekipe DevOps in strankami. Pol ure na dan, uro ali več, učenje programskega jezika naj bo vaš glavni cilj.

Sistemski skrbniki in strokovnjaki za DevOps rešujejo podobne težave, vendar obstajajo pomembne razlike. Verjame se, da sistemski skrbnik ne more narediti vsega, kar lahko inženir DevOps. Pravijo, da je sistemski skrbnik bolj osredotočen na konfiguriranje, vzdrževanje in zagotavljanje delovanja strežniških sistemov, a ves ta voziček in še en voziček vleče DevOps inženir.

Toda kako resnična je ta izjava?

Sistemski skrbnik: en bojevnik na terenu

Kljub razlikam in podobnostim, omenjenim v tem članku, še vedno verjamem, da ni bistvene razlike med sistemsko administracijo in DevOps. Sistemski skrbniki so vedno opravljali enake funkcije kot strokovnjaki za DevOps, samo tega nihče prej ni imenoval DevOps. Menim, da nima smisla posebej iskati razlik, sploh če ni povezana z nobeno nalogo. Ne pozabite, da za razliko od sistemskega skrbnika DevOps ni položaj, ampak koncept.

Opozoriti je treba še na eno pomembno stvar, brez katere bo pogovor o administraciji in DevOps nepopoln. Sistemska administracija v običajnem pomenu predvideva, da ima strokovnjak določen nabor znanj in je osredotočen na servisiranje različnih vrst infrastruktur. Ne v smislu, da je to univerzalni uslužbenec, ampak v smislu, da obstaja vrsta nalog, ki jih opravljajo vsi skrbniki.

Na primer, od časa do časa morajo delovati kot nekakšni tehnični mojstri, torej narediti dobesedno vse. In če obstaja samo en tak skrbnik za celotno organizacijo, potem bo na splošno opravljal vse tehnično delo. To je lahko karkoli, od vzdrževanja tiskalnikov in kopirnih strojev do izvajanja opravil, povezanih z omrežjem, kot je nastavitev in upravljanje usmerjevalnikov in stikal ali konfiguracija požarnega zidu.

Odgovoren bo tudi za nadgradnje strojne opreme, inšpekcijo in analizo dnevnikov, varnostne revizije, popravke strežnikov, odpravljanje težav, analizo vzrokov in avtomatizacijo – običajno prek skriptov PowerShell, Python ali Bash. En primer uporabe scenariji je upravljanje uporabniških in skupinskih računov. Ustvarjanje uporabniških računov in dodeljevanje dovoljenj je izjemno dolgočasno opravilo, saj se uporabniki pojavljajo in izginjajo skoraj vsak dan. Avtomatizacija preko skript sprosti čas za pomembnejša infrastrukturna opravila, kot so nadgradnje stikal in strežnikov ter drugi projekti, ki vplivajo na dobičkonosnost podjetja, kjer skrbnik dela (čeprav velja, da IT oddelek ne ustvarja neposredno prihodkov).

Naloga sistemskega administratorja je, da ne izgublja časa in na kakršen koli način prihrani denar podjetja. Včasih sistemski skrbniki delujejo kot člani velike ekipe, ki združuje na primer skrbnike za Linux, Windows, baze podatkov, shranjevanje itd. Različni so tudi urniki dela. Na primer, premik v enem časovnem pasu ob koncu dneva prenese primere na naslednji premik v drugem časovnem pasu, tako da se procesi ne ustavijo (follow-the-sun); ali imajo zaposleni običajen delovni dan od 9. do 5. ure; ali pa deluje v podatkovnem centru XNUMX/XNUMX.

Sčasoma so se sistemski skrbniki naučili razmišljati strateško in združevati pomembne zadeve z rutinskimi opravili. Ekipe in oddelki, v katerih delajo, so običajno omejeni s sredstvi, hkrati pa se vsi trudijo, da bi vsakodnevne naloge opravili v največji možni meri.

DevOps: razvoj in vzdrževanje kot eno

DevOps je nekakšna filozofija za procese razvoja in vzdrževanja. Ta pristop je v svetu IT postal resnično inovativen.

Pod okriljem DevOps je na eni strani ekipa za razvoj programske opreme in na drugi vzdrževalna ekipa. Pogosto se jim pridružijo strokovnjaki za upravljanje izdelkov, preizkuševalci in oblikovalci uporabniških vmesnikov. Ti strokovnjaki skupaj poenostavijo delovanje za hitro uvedbo novih aplikacij in posodobitev kode za podporo in izboljšanje učinkovitosti celotnega podjetja.

DevOps temelji na nadzoru nad razvojem in delovanjem programske opreme skozi njen celoten življenjski cikel. Vzdrževalci morajo podpirati razvijalce, razvijalci pa morajo razumeti več kot le API-je, ki se uporabljajo v sistemih. Razumeti morajo, kaj je pod pokrovom (to je, kako delujejo strojna oprema in operacijski sistemi), da bodo lahko bolje obravnavali napake, reševali težave in sodelovali s serviserji.

Sistemski skrbniki se lahko pridružijo ekipi DevOps, če se želijo naučiti najnovejših tehnologij in so odprti za inovativne zamisli in rešitve. Kot sem že rekel, ni nujno, da postanejo popolni programerji, vendar jim bo obvladovanje programskega jezika, kot je Ruby, Python ali Go, pomagalo postati zelo koristni člani ekipe. Čeprav sistemski skrbniki tradicionalno vse delo opravijo sami in so pogosto dojeti kot samotarji, imajo pri DevOps povsem nasprotno izkušnjo, kjer vsi v procesu sodelujejo drug z drugim.

Tema avtomatizacije postaja vse bolj aktualna. Tako sistemske skrbnike kot strokovnjake za DevOps zanima hitro skaliranje, zmanjšanje napak ter hitro iskanje in odpravljanje obstoječih napak. Tako je avtomatizacija koncept, kjer se zbližata dve področji. Sistemski skrbniki so odgovorni za storitve v oblaku, kot so AWS, Azure in Google Cloud Platform. Razumeti morajo načela stalne integracije in dostave ter kako uporabljati orodja, kot je Jenkins.

Poleg tega morajo sistemski skrbniki uporabljati orodja za konfiguracijo in upravljanje, kot je npr Možno, potrebnih za vzporedno postavitev desetih ali dvajsetih strežnikov.

Glavni koncept je infrastruktura kot koda. Programska oprema je vse. Pravzaprav, da poklic sistemskega skrbnika ne izgubi pomembnosti, morate le nekoliko spremeniti poudarek. Sistemski skrbniki so v storitvenem poslu in morajo biti sposobni učinkovito komunicirati z razvijalci in obratno. Kot pravijo, ena glava je dobra, a dve sta boljši.

In zadnja podrobnost v tem mehanizmu je git. Delo z Gitom je ena od tradicionalnih dnevnih obveznosti sistemskega skrbnika. Ta sistem za nadzor različic pogosto uporabljajo razvijalci, strokovnjaki za DevOps, Agile ekipe in mnogi drugi. Če je vaše delo povezano z življenjskim ciklom programske opreme, potem boste zagotovo delali z Gitom.

Git ima veliko funkcij. Verjetno se ne boste nikoli naučili vseh ukazov Git, vendar boste natančno razumeli, zakaj je to stalnica v programski komunikaciji in sodelovanju. Temeljito poznavanje Gita je zelo pomembno, če delate v ekipi DevOps.

Če ste sistemski skrbnik, potem morate bolje preučiti Git, razumeti, kako je zgrajen nadzor različic in se spomniti pogostih ukazov: git status, git commit -m, git add, git pull, git push, git rebase, git veja, git diff in drugi. Obstaja veliko spletnih tečajev in knjig, ki vam lahko pomagajo, da se te teme naučite od začetka in postanete strokovnjak s posebnimi znanji. Obstajajo tudi čudoviti goljufije z ukazi Git, tako da vam jih ni treba natlačiti vseh, a bolj ko uporabljate Git, lažje bo.

Zaključek

Na koncu se sami odločite, ali morate postati strokovnjak za DevOps ali je bolje ostati sistemski skrbnik. Kot lahko vidite, obstaja krivulja učenja za prehod, vendar prej ko začnete, bolje je. Izberite programski jezik in se hkrati učite orodij, kot je npr git (nadzor različic), Jenkins (CI/CD, neprekinjena integracija) in Možno (konfiguracija in avtomatizacija). Ne glede na možnost, ki jo izberete, ne pozabite, da se morate nenehno učiti in izboljševati svoje sposobnosti.

Vir: www.habr.com

Dodaj komentar