Prečo by sa správcovia systému mali stať inžiniermi DevOps

Prečo by sa správcovia systému mali stať inžiniermi DevOps

V živote nie je lepší čas na učenie ako dnes.


Je rok 2019 a DevOps je relevantnejší ako kedykoľvek predtým. Hovorí sa, že časy systémových administrátorov sa skončili, rovnako ako éra sálových počítačov. Ale je to naozaj tak?
Ako to už v IT býva, situácia sa zmenila. Vznikla metodológia DevOps, ktorá však nemôže existovať bez človeka so schopnosťami správcu systému, teda bez Ops.

Predtým, ako prístup DevOps nadobudol svoju modernú podobu, klasifikoval som sa ako Ops. A veľmi dobre viem, čo zažije správca systému, keď si uvedomí, koľko toho ešte nedokáže a ako málo času má na to, aby sa to naučil.

Prečo by sa správcovia systému mali stať inžiniermi DevOps

Ale je to naozaj také strašidelné? Povedal by som, že nedostatok vedomostí netreba vnímať ako nejaký veľký problém. Je to skôr profesionálna výzva.

Webové produkty sú založené na Linuxe alebo inom open source softvéri a na trhu je stále menej ľudí schopných ich udržiavať. Dopyt už prevýšil počet odborníkov v tejto oblasti. Správca systému už nebude môcť jednoducho pokračovať v práci bez zlepšenia úrovne svojich zručností. Musí mať zručnosti v oblasti automatizácie na správu viacerých serverov/uzlov a dobre rozumieť tomu, ako fungujú pri riešení vzniknutých problémov.

Než sa stanete členom tímu DevOps, musíte prejsť pomerne dlhú, no zaujímavú cestu, naučiť sa nové technológie a rôzne nástroje potrebné na údržbu systému podľa štandardov DevOps.

Ako teda môže správca systému prejsť od bežného prístupu k práci k novému konceptu DevOps? Všetko je ako obvykle: najprv musíte zmeniť svoje myslenie. Nie je ľahké vzdať sa prístupu, ktorý ste sledovali posledných desať či dvadsať rokov a začať robiť veci inak, ale je to nevyhnutné.

V prvom rade je dôležité pochopiť, že DevOps nie je konkrétna pozícia v spoločnosti, ale súbor špecifických praktík. Tieto praktiky zahŕňajú distribúciu izolovaných systémov, znižovanie škôd spôsobených chybami a chybami, časté a včasné aktualizácie softvéru, dobre zavedenú interakciu medzi vývojármi (Dev) a administrátormi (Ops), ako aj neustále testovanie nielen kódu, ale aj aj celú štruktúru v rámci procesu nepretržitá integrácia a dodávka (CI/CD).

Spolu so zmenou spôsobu myslenia sa musíte naučiť udržiavať infraštruktúru a zabezpečiť jej stabilnú prevádzku, spoľahlivosť a dostupnosť pre nepretržitú integráciu a dodávku aplikácií, služieb a softvéru.

To, čo vám ako profesionálovi Ops môže chýbať, sú programovacie schopnosti. Písanie skriptov (skriptov), ​​ktoré správcovia systému používajú na automatickú inštaláciu záplat na server, správu súborov a účtov, riešenie problémov a zostavovanie dokumentácie, sa už považuje za zastarané. Skriptovanie stále platí v relatívne jednoduchých prípadoch, ale DevOps je o riešení rozsiahlych problémov, či už ide o implementáciu, testovanie, zostavenie alebo nasadenie.

Ak sa teda chcete naučiť automatizáciu, musíte aspoň trochu ovládať programovanie, aj keď nie ste vývojár, pretože v tejto fáze vášho vývoja automatizácia infraštruktúry v DevOps vyžaduje túto zručnosť.

Čo robiť? Aby ste zostali žiadaní ako špecialisti, musíte získať príslušné zručnosti - ovládať aspoň jeden programovací jazyk, napríklad Python. Človeku, ktorý sa profesionálne venuje administrácii, sa to môže zdať ťažké, keďže je zvyknutý myslieť si, že programujú iba vývojári. Nie je potrebné stať sa odborníkom, ale znalosťou jedného z programovacích jazykov (môže to byť Python, Bash alebo dokonca PowerShell), bude určite výhodou.

Naučiť sa programovať nejaký čas trvá. Byť všímavý a trpezlivý vám pomôže zostať nad vecami pri komunikácii s členmi tímu DevOps a zákazníkmi. Polhodina denne, hodina alebo viac, učiť sa programovací jazyk by malo byť vaším hlavným cieľom.

Správcovia systému a špecialisti DevOps riešia podobné problémy, existujú však značné rozdiely. Verí sa, že správca systému nemôže robiť všetko, čo inžinier DevOps. Hovorí sa, že správca systému sa viac zameriava na konfiguráciu, údržbu a zabezpečenie výkonu serverových systémov, ale inžinier DevOps ťahá celý tento vozík a ďalší malý vozík.

Ale nakoľko je toto tvrdenie pravdivé?

Správca systému: jeden bojovník v poli

Napriek rozdielom a podobnostiam uvedeným v tomto článku stále verím, že medzi správou systémov a DevOps nie je žiadny významný rozdiel. Správcovia systému vždy vykonávali rovnaké funkcie ako špecialisti DevOps, len to predtým nikto nenazval DevOps. Domnievam sa, že nemá zmysel konkrétne hľadať rozdiely, najmä ak to nesúvisí so žiadnou úlohou. Nezabudnite, že na rozdiel od správcu systému DevOps nie je pozícia, ale koncept.

Treba poznamenať ešte jednu dôležitú vec, bez ktorej bude rozhovor o administrácii aj DevOps neúplný. Správa systému v bežnom zmysle predpokladá, že špecialista má špecifický súbor zručností a je zameraný na obsluhu rôznych typov infraštruktúr. Nie v tom zmysle, že ide o univerzálneho zamestnanca, ale v tom zmysle, že existuje množstvo úloh, ktoré vykonávajú všetci správcovia.

Napríklad z času na čas musia pôsobiť ako akýsi technický kutil, teda robiť doslova všetko. A ak existuje iba jeden takýto správca pre celú organizáciu, potom spravidla vykoná všetky technické práce. Môže to byť čokoľvek od údržby tlačiarní a kopírok až po vykonávanie úloh súvisiacich so sieťou, ako je nastavenie a správa smerovačov a prepínačov alebo konfigurácia brány firewall.

Bude tiež zodpovedný za inovácie hardvéru, kontrolu a analýzu protokolov, bezpečnostné audity, opravy serverov, riešenie problémov, analýzu základných príčin a automatizáciu – zvyčajne prostredníctvom skriptov PowerShell, Python alebo Bash. Jeden príklad použitia scenárov je správa používateľských a skupinových účtov. Vytváranie používateľských účtov a prideľovanie povolení je mimoriadne únavná úloha, pretože používatelia sa objavujú a miznú takmer každý deň. Automatizácia pomocou skriptov uvoľňuje čas na dôležitejšie úlohy v oblasti infraštruktúry, ako je modernizácia prepínačov a serverov a ďalšie projekty, ktoré ovplyvňujú ziskovosť spoločnosti, v ktorej administrátor pracuje (aj keď sa všeobecne uznáva, že IT oddelenie priamo negeneruje príjmy).

Úlohou správcu systému je nestrácať čas a akýmkoľvek spôsobom šetriť firme peniaze. Niekedy správcovia systému pracujú ako členovia veľkého tímu, ktorý kombinuje napríklad správcov Linuxu, Windowsu, databáz, úložiska atď. Pracovné harmonogramy sa tiež líšia. Napríklad posun v jednom časovom pásme na konci dňa prenesie prípady do nasledujúceho posunu v inom časovom pásme, takže procesy sa nezastavia (follow-the-sun); alebo zamestnanci majú bežný pracovný deň od 9. do 5. hodiny; alebo pracuje v dátovom centre XNUMX hodín denne, XNUMX dní v týždni.

Postupom času sa správcovia systému naučili myslieť strategicky a spájať dôležité záležitosti s rutinnými úlohami. Tímy a oddelenia, v ktorých pracujú, majú zvyčajne nedostatok zdrojov, no zároveň sa každý snaží plniť každodenné úlohy v maximálnej miere.

DevOps: vývoj a údržba ako jeden celok

DevOps je akousi filozofiou procesov vývoja a údržby. Tento prístup vo svete IT sa stal skutočne inovatívnym.

Pod záštitou DevOps je na jednej strane tím vývoja softvéru a na druhej strane tím údržby. Často sa k nim pridávajú špecialisti na produktový manažment, testeri a dizajnéri používateľských rozhraní. Títo odborníci spoločne zefektívňujú operácie, aby mohli rýchlo zavádzať nové aplikácie a aktualizácie kódu na podporu a zlepšenie efektivity celej spoločnosti.

DevOps je založený na kontrole nad vývojom a prevádzkou softvéru počas celého jeho životného cyklu. Pracovníci údržby musia podporovať vývojárov a vývojári majú za úlohu porozumieť viac než len API používaným v systémoch. Musia pochopiť, čo sa skrýva pod kapotou (to znamená, ako funguje hardvér a operačné systémy), aby mohli lepšie riešiť chyby, riešiť problémy a komunikovať so servisnými technikmi.

Správcovia systému sa môžu presunúť do tímu DevOps, ak sa chcú naučiť najnovšie technológie a sú otvorení inovatívnym nápadom a riešeniam. Ako som už povedal, nemusia sa stať plnohodnotnými programátormi, ale ovládanie programovacieho jazyka ako Ruby, Python alebo Go im pomôže stať sa veľmi užitočnými členmi tímu. Aj keď si správcovia systému tradične robia všetku prácu sami a často sú vnímaní ako samotári, v DevOps majú úplne opačné skúsenosti, kde všetci v procese interagujú navzájom.

Téma automatizácie sa stáva čoraz aktuálnejšou. Správcovia systému aj špecialisti DevOps majú záujem o rýchle škálovanie, zníženie chýb a rýchle nájdenie a opravu existujúcich chýb. Automatizácia je teda koncept, kde sa zbiehajú dve oblasti. Správcovia systému sú zodpovední za cloudové služby, ako sú AWS, Azure a Google Cloud Platform. Musia pochopiť princípy nepretržitej integrácie a poskytovania a ako používať nástroje ako napr Jenkins.

Okrem toho musia správcovia systému používať konfiguračné a riadiace nástroje ako napr Ansiblepotrebné pre paralelné nasadenie desiatich alebo dvadsiatich serverov.

Hlavným konceptom je infraštruktúru ako kód. Softvér je všetko. V skutočnosti, aby povolanie správcu systému nestratilo význam, stačí trochu zmeniť dôraz. Správcovia systému pracujú v oblasti služieb a musia byť schopní efektívne komunikovať s vývojármi a naopak. Ako sa hovorí, jedna hlava je dobrá, ale dve sú lepšie.

A posledným detailom tohto mechanizmu je ísť. Práca s Git je jednou z tradičných každodenných povinností správcu systému. Tento systém správy verzií je široko používaný vývojármi, špecialistami DevOps, agilnými tímami a mnohými ďalšími. Ak vaša práca súvisí so životným cyklom softvéru, potom budete určite pracovať s Git.

Git má veľa funkcií. Pravdepodobne sa nikdy nenaučíte všetky príkazy Git, ale presne pochopíte, prečo je základom softvérovej komunikácie a spolupráce. Dôkladná znalosť Git je veľmi dôležitá, ak pracujete v tíme DevOps.

Ak ste správcom systému, musíte si lepšie preštudovať Git, pochopiť, ako sa vytvára kontrola verzií a zapamätať si bežné príkazy: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff a ďalšie. Existuje mnoho online kurzov a kníh, ktoré vám môžu pomôcť naučiť sa túto tému od začiatku a stať sa profesionálom so špecifickými zručnosťami. Existujú aj úžasné cheat sheets s príkazmi Git, takže ich nemusíte napchávať všetky, ale čím viac budete Git používať, tým to bude jednoduchšie.

Záver

Nakoniec sa rozhodnete, či sa musíte stať špecialistom DevOps alebo či je lepšie zostať správcom systému. Ako môžete vidieť, existuje krivka učenia na vykonanie prechodu, ale čím skôr začnete, tým lepšie. Vyberte si programovací jazyk a súčasne sa naučte nástroje ako napr ísť (kontrola verzií), Jenkins (CI/CD, kontinuálna integrácia) a Ansible (konfigurácia a automatizácia). Nech už si vyberiete akúkoľvek možnosť, nezabudnite, že sa musíte neustále vzdelávať a zlepšovať svoje zručnosti.

Zdroj: hab.com

Pridať komentár