
Pro učení není lepší doba než dnes.
Je rok 2019 a téma DevOps je aktuální jako nikdy předtím. Říká se, že dny systémových administrátorů jsou pryč, stejně jako doba mainframe. Je to však skutečně pravda?
Jak to často bývá v IT, situace se změnila. Objevila se metodologie DevOps, ale ta nemůže existovat bez člověka se znalostmi systémového administrátora, tedy bez Ops.
Než se přístup DevOps dostal do své současné podoby, řadil jsem se mezi Ops. A velmi dobře vím, co cítí administrátor, když si uvědomí, kolik toho dosud nezná a jak málo času má na to, aby se to naučil.

Ale je to opravdu tak děsivé? Řekl bych, že netřeba vnímat nedostatek znalostí jako velký problém. Spíše je to profesionální výzva.
Produkty na webové úrovni jsou založeny na Linuxu nebo jiném softwaru s otevřeným zdrojovým kódem, a na trhu je čím dál méně odborníků schopných je udržovat. Poptávka již překonala počet profesionálů v této oblasti. Systémový administrátor už nemůže jen tak pokračovat v práci, aniž by zvyšoval svou kvalifikaci. Musí mít dovednosti automatizace, aby mohl spravovat mnoho serverů/uzlů, a dobře rozumět principům jejich fungování, aby mohl řešit vzniklé problémy.
Než se stanete členem týmu DevOps, čeká vás poměrně dlouhá, ale fascinující cesta, během níž se naučíte nové technologie a různé nástroje potřebné k tomu, abyste spravovali systémy podle standardů DevOps.
Jak se tedy systémový administrátor přenese od tradičního přístupu k nové koncepci DevOps? Všechno je jako obvykle: na začátku je nutné změnit myšlení. Není snadné vzdát se přístupu, kterým jste se řídili posledních deset nebo dvacet let, a začít všechno dělat jinak, ale je to nezbytné.
Především je důležité pochopit, že DevOps není konkrétní pozice ve firmě, ale soubor vybraných praktiky. Tyto praktiky zahrnují rozdělení izolovaných systémů, snížení škod způsobených chybami a vadami, časté a včasné aktualizace softwaru, dobře nastavenou spolupráci mezi vývojáři (Dev) a administrátory (Ops), a také neustálé testování nejen kódu, ale i celé struktury v rámci procesu .
Kromě změny myšlení je třeba naučit se udržovat infrastrukturu a zajistit její stabilní fungování, spolehlivost a dostupnost pro kontinuální integraci a dodávku aplikací, služeb a softwaru.
Co vám může chybět jako specialistovi na Ops, jsou programátorské dovednosti. V současnosti se psaní skriptů, které běžní administrátoři používají pro automatizovanou instalaci oprav na serverech, správu souborů a účtů, řešení problémů a vytváření dokumentace, již považuje za zastaralé. V relativně jednoduchých případech se skripty stále používají, ale koncept DevOps předpokládá řešení velkých úloh, ať už se jedná o implementaci, testování, práci se sestavami nebo nasazení.
Pokud se tedy chcete naučit automatizaci, je třeba si alespoň trochu osvojit programování, i když nejste vývojář, protože v této fázi vývoje v DevOps tuto dovednost vyžaduje.
Co dělat? Abychom zůstali žádanými specialisty, je potřeba získat aktuální dovednosti — ovládnout alespoň jeden programovací jazyk, například Python. Člověku, který se profesionálně věnuje administraci, se to může zdát obtížné, protože byl zvyklý myslet si, že programují pouze vývojáři. Není nutné stát se odborníkem, ale znalost jednoho z programovacích jazyků (může to být Python, Bash nebo dokonce ), se určitě stane výhodou.
Abyste se naučili programovat, potřebujete nějaký čas. Buďte pozorní a trpěliví — to vám pomůže udržet si přehled, když komunikujete s vývojáři z týmu DevOps a zákazníky. Půl hodiny denně, hodina nebo více — učení se programovacího jazyka by se mělo stát vaším hlavním cílem.
Systémoví administrátoři a specialisté na DevOps řeší podobné úkoly, avšak existují i zásadní rozdíly. Považuje se, že systémový administrator nemůže dělat vše, co může inženýr DevOps. Říká se, že sítě administrator je více zaměřen na konfiguraci, údržbu a zajištění provozuschopnosti serverových systémů, zatímco inženýr DevOps je tahounem celého procesu.
Ale jak správné je toto tvrzení?
Systémový administrátor: sám na bojišti
Navzdory uvedeným rozdílům a podobnostem v tomto článku jsem přesvědčen, že mezi systémovým administrativním a DevOps neexistuje zásadní rozdíl. Systémoví administrátoři vždy vykonávali stejné funkce jako specialisté na DevOps, jen to dříve nikdo nenazýval DevOps. Myslím, že nemá smysl speciálně hledat rozdíly, zejména pokud to není spojeno s nějakým úkolem. Nesmíme zapomínat, že na rozdíl od systémového administrátora, DevOps není pozice, ale koncepce.
Je třeba zmínit ještě jednu důležitou věc, bez které by diskuse o administraci a DevOps byla neúplná. Systémové administraci v obvyklém smyslu zahrnuje, že odborník má konkrétní soubor dovedností a orientaci na údržbu různých typů infrastruktur. Ne v tom smyslu, že je to univerzální zaměstnanec, ale v tom, že existuje řada úkolů, které vykonávají všichni administrátoři.
Například musí čas od času vystupovat jako jakýsi technický pomocník, tedy dělat v podstatě cokoliv. A pokud je takový administrátor jediný v celé organizaci, bude vykonávat veškerou technickou práci. Může to být cokoliv: od údržby tiskáren a kopírek po úkoly související se sítí, jako je nastavení a správa routerů a switchů či konfigurace firewallu.
Bude také odpovědný za aktualizaci hardwaru, kontrolu a analýzu protokolů, audit bezpečnosti, instalaci záplat na serveru, odstraňování problémů, analýzu příčin a automatizaci – obvykle pomocí skriptů PowerShell, Python nebo Bash. Jedním z příkladů použití je správa uživatelských účtů a skupin. Vytváření uživatelských účtů a přiřazová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ů umožňuje uvolnit čas na řešení důležitějších infrastrukturních úkolů, jako je aktualizace přepínačů a serverů a provádění dalších projektů ovlivňujících ziskovost společnosti, ve které administrátor pracuje (i když se obvykle předpokládá, že IT oddělení nepřináší příjem přímo).
Úkolem systémového administrátora je neztrácet čas a šetřit peníze společnosti všemi možnými způsoby. Někdy pracují systémoví administrátoři jako členové velkého týmu spojujícího například administrátory Linux, Windows, databází, úložišť a tak dále. Pracovní rozvrh může také být různý. Například směna v jedné časové zóně na konci dne předává záležitosti následující směně v jiné časové zóně, aby procesy neutichly (follow-the-sun); nebo mají zaměstnanci běžnou pracovní dobu od 9 do 17 hodin; nebo je to práce ve 24hodinovém datovém centru.
Administrátoři se s časem naučili myslet strategicky a kombinovat důležité úkoly s rutinními činnostmi. Týmy a oddělení, ve kterých pracují, obvykle postrádají zdroje, ale všichni se snaží plnit každodenní úkoly v plném rozsahu.
DevOps: vývoj a údržba jsou
jakousi filozofií vývojových a provozních procesů. Tento přístup se ve světě IT stal skutečně inovativním.
Pod záštitou DevOps pracuje na jedné straně tým vývojářů softwaru a na druhé straně tým údržbových specialistů. Často se k nim připojují specialisté na řízení produktů, testeři a návrháři uživatelského rozhraní. Spojením svých sil tito odborníci optimalizují pracovní procesy, aby rychle zaváděli nové aplikace a aktualizovali kód za účelem podpory a zlepšení efektivity celé společnosti.
Základem DevOps je kontrola vývoje a fungování softwaru během celého životního cyklu. Údržboví specialisté musí podporovat vývojáře, a před vývojáři stojí úkol porozumět nejen API používaným v systémech. Musí chápat, co se nachází „pod kapotou“ (tedy jak funguje hardwarové vybavení a operační systémy), aby lépe zvládali chyby, řešili problémy a spolupracovali s údržbovými specialisty.
Systémoví administrátoři se mohou připojit k týmu DevOps, pokud chtějí studovat nejnovější technologie a jsou otevřeni inovativním myšlenkám a řešením. Jak jsem již zmínil, nemusí se stát plnohodnotnými programátory, ale osvojení jazyků, jako je Ruby, Python nebo Go, jim může pomoci stát se velmi užitečnými členy týmu. I když systémoví administrátoři tradičně vykonávají veškerou práci samostatně a často jsou vnímáni jako osamělí pracovníci, v DevOps je čeká zcela opačný zážitek, kdy všichni účastníci procesu spolupracují.
Téma automatizace se stává stále aktuálnějším. Jak systémoví administrátoři, tak specialisté DevOps jsou zainteresováni na operativním škálování, snižování počtu chyb a rychlém vyhledávání a odstranění existujících chyb. Automatizace je tedy koncept, kde se dvě oblasti spojují. Systémoví administrátoři jsou odpovědní za cloudové služby, jako jsou AWS, Azure a Google Cloud Platform. Musí chápat principy kontinuální integrace a dodávek a to, jak používat v práci nástroje typu .
Kromě toho musí systémoví administrátoři používat takové prostředky pro konfiguraci a správu, jako jsou , nezbytné pro paralelní nasazení deseti nebo dvaceti serverů.
Základní myšlenka — . Software je všude. V podstatě, aby profese systémového administrátora neztratila relevanci, je potřeba jen mírně změnit důraz. Systémoví administrátoři se zabývají údržbou a měli by 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 v tomto mechanismu — to je . Práce s Gitem je jednou z tradičních každodenních povinností systémového administrátora. Tento systém správy verzí je široce používán vývojáři, specialisty DevOps, Agile týmy a mnoha dalšími. Pokud vaše práce souvisí se životním cyklem softwaru, určitě budete pracovat s Gitem.
Git obsahuje množství možností. Pravděpodobně se nikdy nenaučíte všechny příkazy Gitu, ale určitě pochopíte, proč je tento nástroj považován za klíčový v komunikaci a spolupráci na softwaru. Důkladné znalosti Gitu jsou velmi důležité, pokud pracujete v týmu DevOps.
Pokud jste systémový administrátor, měli byste se lépe seznámit s Git, pochopit, jak funguje 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é pomohou naučit se toto téma od základů a stát se profesionálem s konkrétními dovednostmi. Jsou zde také skvělé , takže není nutné je všechny memorovat, ale čím více Gitu použijete, tím snazší to pro vás bude.
Závěr
Nakonec se rozhodujete sami, zda se chcete stát specialistou DevOps, nebo lépe zůstat systémovým administrátorem. Jak vidíte, pro přechod je potřeba vzdělání, ale čím dříve začnete, tím lépe. Vyberte si programovací jazyk a zároveň se učte nástroje jako (správa verzí), (CI/CD, kontinuální integrace) a (konfigurace a automatizace). Na jakékoli variantě se rozhodnete, nezapomínejte, že je potřeba neustále se učit a zlepšovat své dovednosti.
Zdroj: habr.com
