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

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

Za učenje nema boljeg vremena od danas.


Godina je 2019., a tema DevOps je važnija nego ikad. Kažu da su dani sistemskih administratora prošli, kao što je prošlo doba mainframe-a. No, je li to zaista tako?
Kao što to često biva u IT-u, situacija se promijenila. Pojavila se metodologija DevOps, ali ona ne može postojati bez osobe s vještinama sistemskog administratora, tj. bez Opa.

Sve dok DevOps pristup nije dobio svoj suvremeni oblik, smatrao sam se Ops osobom. I dobro znam što proživljava sysadmin kada shvati koliko toga još ne zna i koliko malo vremena ima da to nauči.

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

Ali je li stvarno sve tako zastrašujuće? Rekao bih da ne treba smatrati nedostatak znanja velikim problemom. To je zapravo profesionalni izazov.

Web-scale proizvodi temelje se na Linuxu ili drugom softveru s otvorenim kodom, a na tržištu je sve manje stručnjaka koji ih mogu opsluživati. Potražnja već premašuje broj profesionalaca u ovoj oblasti. Sistemskim administratorima više nije dovoljno samo nastaviti raditi ne poboljšavajući svoje kvalifikacije. Moraju imati vještine automatizacije za upravljanje brojnim serverima/nodovima i dobro razumjeti principe njihovog rada kako bi rješavali nastale probleme.

Prije nego što postanete član DevOps tima, morate proći prilično dug, ali zanimljiv put, proučavajući nove tehnologije i razne alate potrebne za održavanje sistema prema DevOps standardima.

Dakle, kako sistemski administrator može preći s uobičajenog pristupa na novu DevOps koncepciju? Kao i obično: prvo je potrebno promijeniti način razmišljanja. Nije lako odustati od pristupa kojem ste se pridržavali zadnjih deset ili dvadeset godina i početi raditi na nov način, ali to je neophodno.

Prvo i najvažnije, važno je razumjeti da DevOps nije konkretna pozicija unutar tvrtke, već skup određenih praksi. Ove prakse podrazumijevaju raspodjelu izoliranih sustava, smanjenje štete od bugova i grešaka, učestala i pravovremena ažuriranja softvera, uspostavljanje suradnje između programera (Dev) i administratora (Ops), kao i neprekidno testiranje ne samo koda, već i cijele strukture unutar procesa neprekidne integracije i isporuke (CI/CD).

Osim promjene načina razmišljanja, potrebno je naučiti održavati infrastrukturu i osigurati njezin stabilan rad, pouzdanost i dostupnost za neprekidnu integraciju i isporuku aplikacija, usluga i softvera.

Ono što vam možda nedostaje kao Ops stručnjaku su vještine programiranja. Danas se pisanje skripti koje sistemski administratori koriste za automatiziranu instalaciju zakrpa na poslužitelju, upravljanje datotekama i računima, otklanjanje kvarova i sastavljanje dokumentacije, već smatra zastarjelim. U relativno jednostavnim slučajevima skripte se i dalje koriste, ali koncept DevOps podrazumijeva rješavanje velikih zadataka, bilo da se radi o implementaciji, testiranju, radu s građenjem ili implementaciji.

Dakle, ako želite naučiti automatizaciju, trebate barem malo svladati programiranje, iako niste programer, budući da u ovoj fazi svog razvoja automatizacija infrastrukture u DevOps-u zahtijeva tu vještinu.

Što učiniti? Da biste ostali traženi stručnjak, morate steći aktualne vještine — ovladati barem jednim programskim jezikom, na primjer Python. Osobi koja se profesionalno bavi administracijom može izgledati teško, budući da je navikla misliti da programiraju samo programeri. Nije nužno postati stručnjak, ali znanje jednog od programskih jezika (to može biti Python, Bash ili čak Powershell), zasigurno će biti prednost.

Da biste naučili programirati, potrebno je malo vremena. Budite pažljivi i strpljivi — to će vam pomoći da održite razumijevanje situacije prilikom komunikacije s razvijačima iz DevOps tima i klijentima. Pola sata dnevno, sat ili više — učenje programskog jezika treba postati vaš glavni cilj.

Sustav administratori i DevOps stručnjaci rješavaju slične zadatke, međutim, postoji i značajna razlika. Smatra se da sustavni administrator ne može raditi sve ono što može inženjer DevOps-a. Drugim riječima, sysadmin se više fokusira na konfiguriranje, održavanje i osiguranje funkcioniranja serverskih sustava, dok inženjer DevOps preuzima sav taj teret i još malu kolica.

Ali koliko je točno ovo tvrđenje?

Sustavni administrator: jedan u polju ratnik

Unatoč istaknutim razlikama i sličnostima u ovom članku, i dalje smatram da između sistemskog administriranja i DevOps-a nema suštinske razlike. Sustavni administratori oduvijek su obavljali iste funkcije kao i DevOps stručnjaci, jednostavno se to ranije nije nazivalo DevOps. Smatram da nema smisla posebno tražiti razlike, posebno ako to nije povezano s nekom zadaćom. Ne treba zaboraviti ni to da, za razliku od sistemskog administratora, DevOps nije pozicija, već koncept.

Također, treba istaknuti još jednu važnu stvar bez koje bi razgovor o administriranju i DevOps-u bio nepotpun. Sustavno administriranje u uobičajenom smislu podrazumijeva da stručnjak ima određeni skup vještina i orijentaciju na održavanje različitih tipova infrastrukture. Ne u smislu da je to univerzalni zaposlenik, već da postoji niz zadataka koje svi administratori obavljaju.

Na primjer, ponekad moraju igrati ulogu nekog tehničkog radnika, odnosno raditi doslovno sve. A ako je takav administrator jedini u cijeloj organizaciji, on će obavljati sav tehnički rad. To može biti bilo što: od održavanja pisača i kopirnih strojeva do izvršavanja zadataka povezanih s mrežom, kao što su podešavanje usmjerivača i prekidača te upravljanje njima ili postavljanje vatrozida.

On će također biti odgovoran za ažuriranje hardvera, pregled i analizu dnevnika, sigurnosni audita, instalaciju zakrpa na poslužitelju, rješavanje problema, analizu uzroka i automatizaciju — obično putem PowerShell, Pythona ili Bash skripti. Jedan od primjera upotrebe skripti je upravljanje korisničkim računima i grupama. Stvaranje korisničkih računa i dodjeljivanje dozvola je iznimno naporan zadatak, budući da korisnici dolaze i odlaze gotovo svaki dan. Automatizacija putem skripti oslobađa vrijeme za rješavanje važnijih infrastrukturnih zadataka, poput ažuriranja prekidača i poslužitelja te izvođenja drugih projekata koji utječu na profitabilnost tvrtke u kojoj administrator radi (iako se smatra da IT odjel ne donosi prihod izravno).

Zadatak sistemskog administratora je ne trošiti vrijeme uzalud i uštedjeti novac tvrtki na sve moguće načine. Ponekad sistemski administratori rade kao članovi velikog tima, koji spaja, na primjer, Linux, Windows, baze podataka, skladišta i slično. Radno vrijeme također može varirati. Na primjer, smjena u jednoj vremenskoj zoni na kraju dana prenosi poslove sljedećoj smjeni u drugoj vremenskoj zoni, kako bi procesi ostali nesmetani (follow-the-sun); ili zaposlenici imaju uobičajeni radni dan od 9 ujutro do 5 poslijepodne; ili se radi u data centru koji radi 24/7.

Sistemskim administratorima je s vremenom postalo važno razmišljati strateški i spojiti ključne poslove s rutinskim zadacima. Timovi i odjeli u kojima rade obično nemaju dovoljno resursa, ali svi se trude izvršiti svakodnevne zadatke u potpunosti.

DevOps: razvoj i održavanje

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

Pod okriljem DevOps-a, s jedne strane radi tim programera, a s druge strane tim stručnjaka za održavanje. Često im se pridružuju stručnjaci za upravljanje proizvodima, testeri i dizajneri korisničkog sučelja. Udružujući snage, ovi stručnjaci optimiziraju radne procese kako bi brzo lansirali nove aplikacije i ažurirali kod s ciljem podrške i poboljšanja učinkovitosti cijele kompanije.

Osnova DevOps-a je kontrola razvoja i funkcionalnosti softvera tijekom cijelog životnog ciklusa. Stručnjaci za održavanje trebaju podržavati programere, a programeri se suočavaju s izazovima razumijevanja ne samo API-ja koji se koriste u sustavima. Oni također moraju shvatiti što se nalazi „ispod haube“ (tj. kako funkcionira hardver i operacijski sustavi) kako bi bolje rješavali greške, rješavali probleme i surađivali sa stručnjacima za održavanje.

Sistemski administratori mogu preći u DevOps tim ako žele učiti nove tehnologije i otvoreni su za inovativne ideje i rješenja. Kao što sam već spomenuo, nije im neophodno postati potpuno programeri, ali poznavanje programskih jezika poput Ruby, Python ili Go pomoći će im da postanu vrlo korisni članovi tima. Iako sistemski administratori tradicionalno izvode sav posao sami i često se doživljavaju kao usamljenici, u DevOps-u ih čeka potpuno suprotno iskustvo, gdje svi sudionici procesa surađuju jedni s drugima.

Tema automatizacije postaje sve važnija. I sistemski administratori i stručnjaci DevOps-a zainteresirani su za brzu skalabilnost, smanjenje broja grešaka, kao i za brzo pronalaženje i rješavanje postojećih grešaka. Tako automatizacija predstavlja koncept u kojem se dva područja susreću. Sistemski administratori odgovorni su za takve oblake usluge kao što su AWS, Azure i Google Cloud Platform. Oni moraju razumjeti principe kontinuirane integracije i isporuke i kako koristiti alate poput Jenkins.

Osim toga, sistemski administratori trebaju primijeniti takva sredstva konfiguracije i upravljanja kao što su Ansible, potrebni za paralelno postavljanje deset ili dvadeset poslužitelja.

Osnovni koncept — infrastruktura kao kod. Softver je svugdje. U suštini, da bi profesija sistemskog administratora ostala relevantna, potrebno je samo malo promijeniti fokus. Sistski administratori se bave održavanjem i trebaju znati učinkovito komunicirati s programerima, i obrnuto. Kao što kažu, jedna glava je dobra, a dvije su bolje.

A posljednji detalj u ovom mehanizmu — to je Git. Rad s Gitom je jedna od tradicionalnih svakodnevnih obaveza sistemskog administratora. Ovaj sustav za kontrolu verzija široko koriste programeri, DevOps stručnjaci, Agile timovi i mnogi drugi. Ako je vaš posao povezan s životnim ciklusom softvera, sigurno ćete raditi s Gitom.

Git sadrži mnoštvo mogućnosti. Vjerojatno nikada nećete naučiti sve Git komande, ali ćete definitivno razumjeti zašto se ovaj alat smatra glavnim u komunikaciji i suradnji na razvoju softvera. Temeljito znanje Gita vrlo je važno ako radite u DevOps timu.

Ako ste sistemski administrator, trebate bolje proučiti Git, razumjeti kako se upravlja verzijama i zapamtiti uobičajene komande: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff i druge. Postoji mnogo online tečajeva i knjiga koje mogu pomoći da ovu temu naučite od nule i postanete profesionalac s konkretnim vještinama. Također postoje izvrsne špikalice s Git komandama, pa nije potrebno učiti ih sve napamet, ali što više koristite Git, bit će vam lakše.

Zaključak

Na kraju, vi odlučujete trebate li postati DevOps stručnjak ili bolje ostati sistemski administrator. Kao što vidite, za prelazak je potrebno učenje, ali što prije počnete, to bolje. Odaberite programski jezik i paralelno proučavajte alate poput Git (kontrola verzija), Jenkins (CI/CD, kontinuirana integracija) i Ansible (konfiguracija i automatizacija). Bez obzira na koju opciju se odlučite, ne zaboravite da stalno učite i poboljšavate svoje vještine.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster