Proč by se správci systému měli stát inženýry DevOps

Proč by se správci systému měli stát inženýry DevOps

V životě není lepší čas na učení než dnes.


Je rok 2019 a DevOps je relevantnější než kdy jindy. Říká se, že časy systémových administrátorů jsou pryč, stejně jako éra sálových počítačů. Ale je tomu skutečně tak?
Jak už to v IT bývá, situace se změnila. Metodika DevOps se objevila, ale nemůže existovat bez člověka se schopnostmi správce systému, tedy bez Ops.

Než přístup DevOps nabyl své moderní podoby, klasifikoval jsem se jako Ops. A moc dobře vím, co zažívá správce systému, když si uvědomí, kolik toho ještě neumí a jak málo času mu zbývá, aby se to naučil.

Proč by se správci systému měli stát inženýry DevOps

Ale je to opravdu tak děsivé? Řekl bych, že nedostatek znalostí by neměl být vnímán jako nějaký velký problém. Je to spíše profesionální výzva.

Webové produkty jsou založeny na Linuxu nebo jiném open source softwaru a na trhu je stále méně lidí schopných je udržovat. Poptávka již přesáhla počet profesionálů v této oblasti. Správce systému již nebude moci jednoduše pokračovat v práci, aniž by si zlepšil úroveň svých dovedností. Musí mít automatizační dovednosti pro správu více serverů/uzlů a dobře rozumět tomu, jak fungují při řešení problémů, které nastanou.

Než se stanete členem týmu DevOps, musíte projít poměrně dlouhou, ale zajímavou cestou, naučit se nové technologie a různé nástroje nutné k údržbě systému podle standardů DevOps.

Jak tedy může správce systému přejít od obvyklého přístupu k práci k novému konceptu DevOps? Všechno je jako obvykle: nejprve musíte změnit své myšlení. Není snadné vzdát se přístupu, kterým se řídíte posledních deset dvacet let, a začít dělat věci jinak, ale je to nutné.

V první řadě je důležité pochopit, že DevOps není konkrétní pozice ve firmě, ale soubor konkrétních praktik. Tyto praktiky zahrnují distribuci izolovaných systémů, snížení škod způsobených chybami a chybami, časté a včasné aktualizace softwaru, dobře zavedenou interakci mezi vývojáři (Dev) a správci (Ops), stejně jako neustálé testování nejen kódu, ale také celou strukturu v rámci procesu nepřetržitá integrace a dodávka (CI/CD).

Spolu se změnou způsobu myšlení se musíte naučit udržovat infrastrukturu a zajistit její stabilní provoz, spolehlivost a dostupnost pro nepřetržitou integraci a dodávku aplikací, služeb a softwaru.

Co vám jako Ops profesionálovi může chybět, jsou znalosti programování. Psaní skriptů (skriptů), které správci systému používají k automatické instalaci záplat na server, správě souborů a účtů, odstraňování problémů a kompilaci dokumentace, je již považováno za zastaralé. Skriptování stále platí v relativně jednoduchých případech, ale DevOps je o řešení rozsáhlých problémů, ať už jde o implementaci, testování, sestavení nebo nasazení.

Pokud se tedy chcete naučit automatizaci, musíte alespoň trochu ovládat programování, i když nejste vývojář, protože v této fázi vašeho vývoje automatizace infrastruktury v DevOps vyžaduje tuto dovednost.

Co dělat? Chcete-li zůstat žádaným specialistou, musíte získat příslušné dovednosti - ovládat alespoň jeden programovací jazyk, například Python. To se může zdát obtížné člověku, který se profesionálně zabývá administrací, protože je zvyklý si myslet, že programují pouze vývojáři. Není nutné stát se odborníkem, ale znalost některého z programovacích jazyků (může to být Python, Bash nebo dokonce PowerShell), bude určitě výhodou.

Naučit se programovat nějakou dobu trvá. Být všímavý a trpělivý vám pomůže zůstat nad věcí při komunikaci s členy týmu DevOps a zákazníky. Půl hodiny denně, hodina nebo více by mělo být vaším hlavním cílem naučit se programovací jazyk.

Systémoví administrátoři a specialisté DevOps řeší podobné problémy, nicméně existují značné rozdíly. Předpokládá se, že správce systému nemůže dělat vše, co inženýr DevOps. Říkají, že správce systému se více zaměřuje na konfiguraci, údržbu a zajištění výkonu serverových systémů, ale inženýr DevOps táhne celý tento vozík a další malý vozík.

Ale jak pravdivé je toto tvrzení?

Správce systému: jeden válečník v poli

Navzdory rozdílům a podobnostem uvedeným v tomto článku stále věřím, že mezi správou systémů a DevOps není žádný významný rozdíl. Správci systému vždy prováděli stejné funkce jako specialisté DevOps, jen to nikdo předtím nenazval DevOps. Domnívám se, že nemá smysl konkrétně hledat rozdíly, zvláště pokud to nesouvisí s žádným úkolem. Nezapomeňte, že na rozdíl od správce systému není DevOps pozice, ale koncept.

Je třeba poznamenat ještě jednu důležitou věc, bez které bude rozhovor o administraci i DevOps neúplný. Správa systému v obvyklém smyslu předpokládá, že specialista má specifický soubor dovedností a je zaměřen na obsluhu různých typů infrastruktur. Ne v tom smyslu, že by se jednalo o univerzálního zaměstnance, ale v tom smyslu, že existuje řada úkolů, které plní všichni správci.

Čas od času se například musí chovat jako jakýsi technický kutil, tedy dělat doslova všechno. A pokud existuje pouze jeden takový správce pro celou organizaci, pak bude obecně provádět všechny technické práce. Může to být cokoli od údržby tiskáren a kopírek až po provádění úloh souvisejících se sítí, jako je nastavení a správa směrovačů a přepínačů nebo konfigurace brány firewall.

Bude také zodpovědný za upgrady hardwaru, kontrolu a analýzu protokolů, bezpečnostní audity, opravy serverů, odstraňování problémů, analýzu hlavních příčin a automatizaci – obvykle prostřednictvím skriptů PowerShell, Python nebo Bash. Jeden příklad použití scénáře je správa uživatelských a skupinových účtů. Vytváření uživatelských účtů a přidělování oprávnění je extrémně únavný úkol, protože uživatelé se objevují a mizí téměř každý den. Automatizace pomocí skriptů uvolňuje čas pro důležitější úkoly v oblasti infrastruktury, jako je upgrade přepínačů a serverů a další projekty, které ovlivňují ziskovost společnosti, kde administrátor pracuje (i když se obecně uznává, že IT oddělení negeneruje přímo příjmy).

Úkolem správce systému je neztrácet čas a jakkoli šetřit peníze společnosti. Někdy systémoví administrátoři pracují jako členové velkého týmu, sdružujícího například správce Linuxu, Windows, databází, úložišť a podobně. Také pracovní harmonogramy se liší. Například posun v jednom časovém pásmu na konci dne převádí případy na další směnu v jiném časovém pásmu, aby se procesy nezastavily (follow-the-sun); nebo zaměstnanci mají běžný pracovní den od 9 do 5 hodin; nebo pracuje v nepřetržitém datovém centru.

Postupem času se správci systému naučili myslet strategicky a spojovat důležité záležitosti s rutinními úkoly. Týmy a oddělení, ve kterých pracují, mají obvykle nedostatek zdrojů, ale zároveň se každý snaží plnit každodenní úkoly na maximum.

DevOps: vývoj a údržba jako jeden celek

devops je druh filozofie pro procesy vývoje a údržby. Tento přístup se ve světě IT stal skutečně inovativním.

Pod záštitou DevOps je tým vývoje softwaru na jedné straně a tým údržby na straně druhé. Často se k nim připojují specialisté na produktový management, testeři a návrháři uživatelských rozhraní. Tito odborníci společně zjednodušují operace, aby rychle zavedli nové aplikace a aktualizace kódu, aby podpořili a zlepšili efektivitu celé společnosti.

DevOps je založen na kontrole nad vývojem a provozem softwaru po celou dobu jeho životního cyklu. Pracovníci údržby musí podporovat vývojáře a vývojáři mají za úkol porozumět více než jen API používaným v systémech. Musí rozumět tomu, co se skrývá pod kapotou (to znamená, jak funguje hardware a operační systémy), aby mohli lépe zvládat chyby, řešit problémy a komunikovat se servisními techniky.

Správci systému se mohou přesunout do týmu DevOps, pokud se chtějí naučit nejnovější technologie a jsou otevření inovativním nápadům a řešením. Jak jsem řekl, nemusí se z nich stát plnohodnotní programátoři, ale zvládnutí programovacího jazyka jako Ruby, Python nebo Go jim pomůže stát se velmi užitečnými členy týmu. Přestože systémoví administrátoři tradičně dělají veškerou práci sami a jsou často vnímáni jako samotáři, v DevOps mají zcela opačnou zkušenost, kdy na sebe všichni v procesu vzájemně působí.

Téma automatizace je stále aktuálnější. Správci systému i specialisté DevOps mají zájem na rychlém škálování, snížení chyb a rychlém nalezení a opravě existujících chyb. Automatizace je tedy koncept, kde se sbíhají dvě oblasti. Správci systému jsou zodpovědní za cloudové služby, jako jsou AWS, Azure a Google Cloud Platform. Musí rozumět principům nepřetržité integrace a poskytování a jak používat nástroje jako Jenkins.

Kromě toho musí správci systému používat nástroje pro konfiguraci a správu jako např Možná, nezbytné pro paralelní nasazení deseti nebo dvaceti serverů.

Hlavní koncept je infrastruktura jako kód. Software je všechno. Ve skutečnosti, aby profese správce systému neztratila na aktuálnosti, stačí trochu změnit důraz. Správci systému podnikají v oblasti služeb a musí být schopni efektivně komunikovat s vývojáři a naopak. Jak se říká, jedna hlava je dobrá, ale dvě jsou lepší.

A poslední detail tohoto mechanismu je Git. Práce s Git je jednou z tradičních každodenních povinností správce systému. Tento systém správy verzí je široce používán vývojáři, specialisty DevOps, agilními týmy a mnoha dalšími. Pokud vaše práce souvisí s životním cyklem softwaru, pak budete určitě pracovat s Git.

Git má spoustu funkcí. Pravděpodobně se nikdy nenaučíte všechny příkazy Git, ale budete přesně chápat, proč jsou základem softwarové komunikace a spolupráce. Důkladná znalost Gitu je velmi důležitá, pokud pracujete v týmu DevOps.

Pokud jste správce systému, musíte si lépe prostudovat Git, pochopit, jak se vytváří správa verzí, a zapamatovat si běžné příkazy: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff a další. Existuje mnoho online kurzů a knih, které vám mohou pomoci naučit se toto téma od nuly a stát se profesionálem se specifickými dovednostmi. Tam jsou také úžasné cheat sheets s příkazy Git, takže je nemusíte nacpat všechny, ale čím více budete Git používat, tím to bude jednodušší.

Závěr

Nakonec se rozhodnete, zda se musíte stát specialistou DevOps, nebo zda je lepší zůstat správcem systému. Jak můžete vidět, existuje křivka učení, jak provést přechod, ale čím dříve začnete, tím lépe. Vyberte si programovací jazyk a současně se naučte nástroje jako např Git (kontrola verzí), Jenkins (CI/CD, kontinuální integrace) a Možná (konfigurace a automatizace). Ať už si vyberete jakoukoli možnost, nezapomeňte, že se musíte neustále učit a zlepšovat své dovednosti.

Zdroj: www.habr.com

Přidat komentář