Zašto bi sistemski administratori trebali postati DevOps inženjeri

Zašto bi sistemski administratori trebali postati DevOps inženjeri

Nema boljeg vremena za učenje u životu od današnjeg.


2019. je, a DevOps je relevantniji nego ikad. Kažu da su dani sistem administratora prošli, baš kao i era mainframe-a. Ali da li je to zaista tako?
Kako se to često dešava u IT-u, situacija se promijenila. Pojavila se DevOps metodologija, ali ona ne može postojati bez osobe sa vještinama sistem administratora, odnosno bez Ops.

Prije nego što je DevOps pristup poprimio svoj moderni oblik, klasifikovao sam se kao Ops. I dobro znam šta sistem administrator doživljava kada shvati koliko još ne može i koliko malo vremena ima da to nauči.

Zašto bi sistemski administratori trebali postati DevOps inženjeri

Ali da li je to zaista tako strašno? Rekao bih da nedostatak znanja ne treba doživljavati kao neki veliki problem. To je više profesionalni izazov.

Proizvodi na webu bazirani su na Linuxu ili drugom softveru otvorenog koda, a na tržištu je sve manje ljudi sposobnih da ih održavaju. Potražnja je već premašila broj profesionalaca u ovoj oblasti. Administrator sistema više neće moći jednostavno nastaviti s radom bez poboljšanja nivoa svoje vještine. Mora imati vještine automatizacije za upravljanje višestrukim serverima/čvorovima i dobro razumjeti kako oni rade na rješavanju problema koji se pojave.

Pre nego što postanete član DevOps tima, morate proći kroz prilično dug, ali zanimljiv put, učenje novih tehnologija i raznih alata neophodnih za održavanje sistema prema DevOps standardima.

Dakle, kako sistem administrator može preći sa uobičajenog pristupa radu na novi koncept DevOps-a? Sve je kao i obično: prvo morate promijeniti svoje razmišljanje. Nije lako odustati od pristupa koji ste slijedili posljednjih deset ili dvadeset godina i početi raditi drugačije, ali je neophodno.

Prije svega, važno je razumjeti da DevOps nije određena pozicija u kompaniji, već skup specifičnih praksi. Ove prakse podrazumevaju distribuciju izolovanih sistema, smanjenje štete od bugova i grešaka, česta i pravovremena ažuriranja softvera, dobro uspostavljenu interakciju između programera (Dev) i administratora (Ops), kao i stalno testiranje ne samo koda, već i također cjelokupnu strukturu unutar procesa kontinuirana integracija i isporuka (CI/CD).

Uz promjenu načina razmišljanja, potrebno je naučiti kako održavati infrastrukturu i osigurati njen stabilan rad, pouzdanost i dostupnost za kontinuiranu integraciju i isporuku aplikacija, usluga i softvera.

Ono što vam kao operativnom profesionalcu možda nedostaje jesu vještine programiranja. Sada se pisanje skripti (skripti), koje administratori sistema koriste za automatsku instalaciju zakrpa na serveru, upravljanje datotekama i nalozima, rješavanje problema i kompajliranje dokumentacije, već smatra zastarjelim. Skriptiranje se i dalje primjenjuje u relativno jednostavnim slučajevima, ali DevOps se odnosi na rješavanje problema velikih razmjera, bilo da se radi o implementaciji, testiranju, izgradnji ili implementaciji.

Dakle, ako želite naučiti automatizaciju, morate barem malo savladati programiranje, čak i ako niste programer, jer u ovoj fazi vašeg razvoja automatizacija infrastrukture u DevOps-u je potrebna ova vještina.

sta da radim? Da biste ostali traženi kao stručnjak, morate steći relevantne vještine - savladati barem jedan programski jezik, na primjer Python. Ovo može izgledati teško osobi koja se profesionalno bavi administracijom, jer je navikla da misli da samo programeri programiraju. Nije potrebno postati stručnjak, već poznavanje jednog od programskih jezika (može biti Python, Bash ili čak Powershell), svakako će biti prednost.

Učenje programiranja traje neko vrijeme. Biti pažljiv i strpljiv pomoći će vam da ostanete u toku kada komunicirate s članovima DevOps tima i klijentima. Pola sata dnevno, sat ili više, učenje programskog jezika trebao bi biti vaš glavni cilj.

Sistem administratori i stručnjaci za DevOps rješavaju slične probleme, međutim, postoje značajne razlike. Vjeruje se da administrator sistema ne može učiniti sve što DevOps inženjer može. Kažu da je sistem administrator više fokusiran na konfigurisanje, održavanje i osiguranje performansi serverskih sistema, ali DevOps inženjer vuče sva ova kolica i još jedna mala kolica.

Ali koliko je ta izjava istinita?

Sistem administrator: jedan ratnik u polju

Uprkos razlikama i sličnostima navedenim u ovom članku, i dalje vjerujem da ne postoji značajna razlika između administracije sistema i DevOps-a. Sistemski administratori su uvijek obavljali iste funkcije kao i stručnjaci za DevOps, samo što to prije niko nije zvao DevOps. Smatram da nema smisla posebno tražiti razlike, pogotovo ako to nije vezano za neki zadatak. Ne zaboravite da, za razliku od sistem administratora, DevOps nije pozicija, već koncept.

Treba napomenuti još jednu važnu stvar, bez koje razgovor i o administraciji i o DevOps-u neće biti potpun. Administracija sistema u uobičajenom smislu pretpostavlja da specijalista ima specifičan skup vještina i da je fokusiran na servisiranje različitih vrsta infrastrukture. Ne u smislu da je ovo univerzalni zaposlenik, već u smislu da postoji niz poslova koje obavljaju svi administratori.

Na primjer, s vremena na vrijeme moraju djelovati kao neka vrsta tehničkog majstora, odnosno raditi bukvalno sve. A ako postoji samo jedan takav administrator za cijelu organizaciju, onda će on generalno obavljati sve tehničke poslove. To može biti bilo šta, od održavanja pisača i kopir uređaja do obavljanja mrežnih zadataka kao što je postavljanje i upravljanje ruterima i prekidačima ili konfiguriranje zaštitnog zida.

On će također biti odgovoran za nadogradnju hardvera, inspekciju i analizu dnevnika, sigurnosne revizije, zakrpe servera, rješavanje problema, analizu osnovnih uzroka i automatizaciju – obično putem PowerShell, Python ili Bash skripti. Jedan primjer upotrebe scenariji je upravljanje korisničkim i grupnim nalozima. Kreiranje korisničkih naloga i dodjela dozvola je izuzetno naporan zadatak jer se korisnici pojavljuju i nestaju gotovo svaki dan. Automatizacija putem skripti oslobađa vrijeme za važnije infrastrukturne zadatke, poput nadogradnje svičeva i servera i drugih projekata koji utiču na profitabilnost kompanije u kojoj administrator radi (iako je općeprihvaćeno da IT odjel ne ostvaruje direktan prihod).

Zadatak administratora sistema je da ne gubi vrijeme i na svaki mogući način uštedi novac kompanije. Ponekad sistemski administratori rade kao članovi velikog tima, ujedinjujući, na primjer, administratore Linuxa, Windowsa, baza podataka, skladišta itd. Raspored rada takođe varira. Na primjer, pomak u jednoj vremenskoj zoni na kraju dana prenosi slučajeve u sljedeću smjenu u drugoj vremenskoj zoni tako da se procesi ne zaustavljaju (prati sunce); ili zaposleni imaju normalan radni dan od 9 do 5 časova; ili radi u XNUMX/XNUMX data centru.

Vremenom su administratori sistema naučili da razmišljaju strateški i kombinuju važne stvari sa rutinskim zadacima. Timovi i odjeli u kojima rade obično nemaju dovoljno sredstava, ali se u isto vrijeme svi trude da svakodnevne zadatke obavljaju u najvećoj mjeri.

DevOps: razvoj i održavanje kao jedno

DevOps je svojevrsna filozofija procesa razvoja i održavanja. Ovaj pristup u IT svijetu postao je zaista inovativan.

Pod okriljem DevOps-a, postoji tim za razvoj softvera s jedne strane i tim za održavanje s druge strane. Često im se pridružuju stručnjaci za upravljanje proizvodima, testeri i dizajneri korisničkog interfejsa. Zajedno, ovi stručnjaci pojednostavljuju operacije kako bi brzo uveli nove aplikacije i ažuriranja koda kako bi podržali i poboljšali efikasnost cijele kompanije.

DevOps se zasniva na kontroli razvoja i rada softvera tokom čitavog životnog ciklusa. Ljudi za održavanje moraju podržavati programere, a programeri imaju zadatak da razumiju više od samo API-ja koji se koriste u sistemima. Moraju razumjeti šta je ispod haube (odnosno kako funkcionišu hardver i operativni sistemi) kako bi mogli bolje da se nose sa greškama, rešavaju probleme i komuniciraju sa serviserima.

Sistem administratori mogu preći u DevOps tim ako žele naučiti najnovije tehnologije i otvoreni su za inovativne ideje i rješenja. Kao što sam već rekao, ne moraju postati punopravni programeri, ali savladavanje programskog jezika kao što je Ruby, Python ili Go pomoći će im da postanu vrlo korisni članovi tima. Iako sistem administratori tradicionalno sami rade sav posao i često ih se doživljava kao usamljenike, u DevOps-u imaju potpuno suprotno iskustvo, gdje svi u procesu komuniciraju jedni s drugima.

Tema automatizacije postaje sve aktuelnija. I sistem administratori i stručnjaci za DevOps zainteresovani su za brzo skaliranje, smanjenje grešaka i brzo pronalaženje i popravljanje postojećih grešaka. Dakle, automatizacija je koncept u kojem se spajaju dvije oblasti. Administratori sistema su odgovorni za usluge u oblaku kao što su AWS, Azure i Google Cloud Platform. Moraju razumjeti principe kontinuirane integracije i isporuke i kako koristiti alate kao što su Jenkins.

Osim toga, administratori sistema moraju koristiti alate za konfiguraciju i upravljanje kao što su Ansible, neophodno za paralelno postavljanje deset ili dvadeset servera.

Glavni koncept je infrastruktura kao kod. Softver je sve. Zapravo, da profesija sistem administratora ne bi izgubila na važnosti, samo je potrebno malo promijeniti naglasak. Administratori sistema se bave uslužnim poslovima i moraju biti u stanju da efikasno komuniciraju sa programerima, i obrnuto. Kako kažu, jedna glava je dobra, a dvije su bolje.

I posljednji detalj u ovom mehanizmu je ići. Rad sa Gitom je jedna od tradicionalnih dnevnih obaveza administratora sistema. Ovaj sistem kontrole verzija naširoko koriste programeri, DevOps stručnjaci, Agile timovi i mnogi drugi. Ako je vaš posao vezan za životni ciklus softvera, onda ćete sigurno raditi sa Gitom.

Git ima mnogo mogućnosti. Vjerovatno nikada nećete naučiti sve Git komande, ali ćete razumjeti zašto je to glavna komponenta u softverskoj komunikaciji i saradnji. Temeljno poznavanje Gita je veoma važno ako radite u DevOps timu.

Ako ste sistemski administrator, onda morate bolje proučiti Git, razumjeti kako je izgrađena kontrola verzija i zapamtiti uobičajene komande: git status, git commit -m, git add, git pull, git push, git rebase, git grana, git diff i drugi. Postoji mnogo online kurseva i knjiga koje vam mogu pomoći da naučite ovu temu od nule i postanete profesionalac sa specifičnim vještinama. Ima i divnih cheat sheets sa Git komandama, tako da ih ne morate sve trpati, ali što više koristite Git, to će vam biti lakše.

zaključak

Na kraju, vi odlučujete da li trebate postati stručnjak za DevOps ili je bolje ostati administrator sistema. Kao što vidite, postoji kriva učenja za prelazak, ali što prije počnete, to bolje. Odaberite programski jezik i istovremeno naučite alate kao što su ići (kontrola verzija), Jenkins (CI/CD, kontinuirana integracija) i Ansible (konfiguracija i automatizacija). Koju god opciju da odaberete, ne zaboravite da morate stalno učiti i usavršavati svoje vještine.

izvor: www.habr.com

Dodajte komentar