
Niet lepšieho času v živote na učenie ako dnes.
Je rok 2019 a téma DevOps je aktuálnejšia ako kedykoľvek predtým. Hovorí sa, že časy systémových administrátorov sú rovnako preč ako éra mainframeov. Ale je to naozaj pravda?
Ako sa v IT často stáva, situácia sa zmenila. Objavila sa metodológia DevOps, ale tá nemôže existovať bez niekoho so zručnosťami v oblasti systémovej administrácie – teda bez Ops.
Predtým, ako prístup DevOps nadobudol svoju modernú podobu, som sa považoval za operačného profesionála. A veľmi dobre viem, aké to je pre systémového administrátora, keď si uvedomí, koľko toho stále nevie a ako málo času má na to, aby sa to naučil.

Ale je to naozaj také strašidelné? Povedal by som, že nedostatok vedomostí by ste nemali považovať za nejaký veľký problém. Je to skôr profesionálna výzva.
Produkty pre webové rozhranie sú založené na Linux alebo iný softvér s otvoreným zdrojovým kódom a na trhu je čoraz väčší nedostatok špecialistov, ktorí by ich dokázali spravovať. Dopyt už prevyšuje počet profesionálov v tejto oblasti. Systémový administrátor už nemôže jednoducho pokračovať v práci bez toho, aby si zlepšil svoje zručnosti. Musí mať automatizačné zručnosti na správu viacerých serverov/uzlov a dôkladné pochopenie ich fungujúcich princípov, aby mohol vyriešiť akékoľvek vzniknuté problémy.
Predtým, ako sa stanete členom DevOps tímu, budete musieť prejsť pomerne dlhou, ale zaujímavou cestou, naučiť sa nové technológie a rôzne nástroje potrebné na údržbu systému podľa DevOps štandardov.
Ako teda systémový administrátor prechádza zo svojho tradičného prístupu na nový koncept DevOps? Je to ten istý starý príbeh: najprv je nevyhnutná zmena myslenia. Nie je ľahké opustiť prístup, ktorý ste dodržiavali posledných desať alebo dvadsať rokov, a začať robiť veci nanovo, ale je to nevyhnutné.
V prvom rade je dôležité pochopiť, že DevOps nie je konkrétna pozícia v rámci spoločnosti, ale súbor špecifických postupov. Tieto postupy zahŕňajú distribúciu izolovaných systémov, zmierňovanie dopadu chýb a problémov, časté a včasné aktualizácie softvéru, dobre zavedenú komunikáciu medzi vývojármi (Dev) a administrátormi (Ops) a neustále testovanie nielen kódu, ale celej štruktúry procesu. .
Spolu so zmenou myslenia sa musíte naučiť, ako udržiavať svoju infraštruktúru a zabezpečiť jej stabilnú prevádzku, spoľahlivosť a dostupnosť pre nepretržitú integráciu a dodávanie aplikácií, služieb a softvéru.
Ako operačný špecialista vám môžu chýbať programátorské zručnosti. Skriptovanie, ktoré systémoví administrátori používajú na automatizáciu záplatovania serverov, správu súborov a účtov, riešenie problémov a vytváranie dokumentácie, sa dnes považuje za zastarané. Zatiaľ čo skriptovanie sa stále používa v relatívne jednoduchých prípadoch, koncept DevOps zahŕňa rozsiahle úlohy, či už ide o implementáciu, testovanie, správu zostavovania alebo nasadzovanie.
Takže, ak sa chcete naučiť automatizáciu, musíte aspoň zvládnuť programovanie, aj keď nie ste vývojár, pretože v tejto fáze vášho vývoja DevOps vyžaduje túto zručnosť.
Čo robiť? Aby ste zostali vyhľadávaným špecialistom, musíte si osvojiť relevantné zručnosti – ovládať aspoň jeden programovací jazyk, napríklad Python. Pre niekoho, kto sa profesionálne venuje administratíve, sa to môže zdať ťažké, pretože je zvyknutý myslieť si, že programujú iba vývojári. Stať sa expertom nie je vôbec potrebné, ale znalosť jedného programovacieho jazyka (môže to byť Python, Bash alebo dokonca ), bude určite výhodou.
Naučiť sa programovať si vyžaduje čas. Buďte pozorní a trpezliví – to vám pomôže udržať si rozvahu pri komunikácii s členmi DevOps tímu a zákazníkmi. Či už je to pol hodiny denne, hodina alebo viac, učenie sa programovacieho jazyka by malo byť vaším hlavným cieľom.
Systémoví administrátori a DevOps špecialisti vykonávajú podobné úlohy, ale je medzi nimi významný rozdiel. Často sa predpokladá, že systémový administrátor nedokáže všetko, čo DevOps inžinier. Teória hovorí, že systémový administrátor sa viac zameriava na konfiguráciu, údržbu a zabezpečenie funkčnosti serverových systémov, zatiaľ čo DevOps inžinier sa stará o všetko toto a ešte viac.
Ale aké pravdivé je toto tvrdenie?
Systémový administrátor: jeden bojovník v poli
Napriek rozdielom a podobnostiam uvedeným v tomto článku si stále myslím, že medzi systémovou administráciou a DevOps nie je žiadny významný rozdiel. Systémoví administrátori vždy vykonávali rovnaké funkcie ako DevOps špecialisti; nikto to predtým nenazýval DevOps. Myslím si, že nemá zmysel zámerne robiť rozdiely, najmä ak nesúvisia s konkrétnou úlohou. Za zmienku tiež stojí, že na rozdiel od systémových administrátorov DevOps nie je pracovná pozícia, ale koncept.
Je potrebné poznamenať ešte jeden dôležitý bod, bez ktorého by akákoľvek diskusia o administrácii a DevOps bola neúplná. Systémová administrácia, ako sa tradične chápe, predpokladá špecialistu so špecifickými zručnosťami a zameraním na servis rôznych typov infraštruktúry. To neznamená, že sú univerzálne použiteľné, ale skôr to, že existuje množstvo úloh, ktoré vykonávajú všetci administrátori.
Napríklad sú niekedy nútení pôsobiť ako akýsi technický údržbár a robiť doslova všetko. A ak existuje iba jeden takýto správca pre celú organizáciu, bude zodpovedný za všetku technickú prácu. Môže to byť čokoľvek od údržby tlačiarní a kopírovacích strojov až po vykonávanie úloh súvisiacich so sieťou, ako je konfigurácia a správa smerovačov a prepínačov alebo konfigurácia firewallu.
Bude tiež zodpovedný za aktualizácie hardvéru, kontrolu a analýzu protokolov, bezpečnostné audity, opravy serverov, riešenie problémov, analýzu hlavných príčin a automatizáciu – zvyčajne prostredníctvom skriptov PowerShell, Python alebo Bash. Jeden príklad tohto prípadu použitia — je správa používateľských a skupinových účtov. Vytváranie používateľských účtov a prideľovanie povolení je mimoriadne zdĺhavá úloha, pretože používatelia sa objavujú a miznú takmer denne. Automatizácia prostredníctvom skriptov uvoľňuje čas na dôležitejšie infraštruktúrne úlohy, ako je aktualizácia prepínačov a serverov a ďalšie projekty, ktoré majú vplyv na ziskovosť spoločnosti, v ktorej správca pracuje (aj keď sa všeobecne verí, že IT oddelenie priamo negeneruje príjmy).
Úlohou správcu systému je vyhnúť sa plytvaniu časom a ušetriť spoločnosti peniaze akýmkoľvek možným spôsobom. Niekedy správcovia systému pracujú ako členovia väčšieho tímu, napríklad Linux, Windows, databázy, úložisko atď. Pracovné rozvrhy sa tiež líšia. Napríklad zmena v jednom časovom pásme sa na konci dňa odovzdá ďalšej zmene v inom časovom pásme, aby procesy bežali (follow-the-sun); alebo zamestnanci majú bežný pracovný deň od 9:00 do 17:00; alebo pracujú v dátovom centre s nepretržitou prevádzkou.
Postupom času sa systémoví administrátori naučili strategicky myslieť a vyvažovať dôležité úlohy s tými bežnými. Tímy a oddelenia, v ktorých pracujú, často nemajú dostatok zdrojov, no napriek tomu sa každý snaží plniť denné úlohy naplno.
DevOps: Vývoj a údržba sú jedno
— je druh filozofie pre procesy vývoja a údržby. Tento prístup sa stal vo svete IT skutočne inovatívnym.
Pod záštitou DevOps pracuje na jednej strane organizácie tím softvérových vývojárov a na druhej strane tím prevádzkových špecialistov. Často sa k nim pridávajú špecialisti na produktový manažment, testeri a dizajnéri používateľského rozhrania. Spojením svojho úsilia títo špecialisti optimalizujú pracovné postupy, aby rýchlo zavádzali nové aplikácie a aktualizovali kód s cieľom podporiť a zlepšiť celkovú efektivitu spoločnosti.
DevOps je založený na dohľade nad vývojom a prevádzkou softvéru počas celého jeho životného cyklu. Prevádzkoví špecialisti musia podporovať vývojárov a ich úlohou je pochopiť viac než len rozhrania API používané v systémoch. Musia tiež pochopiť, čo sa deje „pod kapotou“ (t. j. ako funguje hardvér a operačné systémy), aby lepšie zvládali chyby, riešili problémy a spolupracovali s prevádzkovými špecialistami.
Systémoví administrátori sa môžu pripojiť k DevOps tímu, ak sú ochotní učiť sa najnovšie technológie a sú otvorení inovatívnym nápadom a riešeniam. Ako som už spomenul, nemusia byť nevyhnutne plnohodnotnými programátormi, ale zvládnutie programovacích jazykov ako Ruby, Python alebo Go im pomôže stať sa veľmi cennými členmi tímu. Zatiaľ čo systémoví administrátori tradične robia všetku prácu sami a často sú vnímaní ako samotári, DevOps ponúka úplne opačný zážitok, kde všetci zúčastnení spolupracujú.
Téma automatizácie sa stáva čoraz relevantnejšou. Systémoví administrátori aj DevOps špecialisti sa zaujímajú o rýchle škálovanie, znižovanie chýb a rýchle vyhľadávanie a opravovanie existujúcich chýb. Automatizácia je teda koncept, v ktorom sa tieto dve oblasti stretávajú. Systémoví administrátori sú zodpovední za cloudové služby, ako sú AWS, Azure a Google Cloud Platform. Musia rozumieť princípom kontinuálnej integrácie a poskytovania a tomu, ako používať nástroje ako .
Okrem toho musia správcovia systému používať nástroje na konfiguráciu a správu, ako napríklad , potrebných pre paralelné nasadenie desiatich alebo dvadsiatich serverov.
Hlavným konceptom je Softvér je všade. Aby profesia správcu systému zostala relevantná, v podstate stačí mierne zmeniť jej zameranie. Správcovia systému sa starajú o údržbu a musia byť schopní efektívne spolupracovať s vývojármi a naopak. Ako sa hovorí, dve hlavy sú lepšie ako jedna.
A posledným detailom tohto mechanizmu je Práca s Gitom je jednou z tradičných každodenných povinností systémového administrátora. Tento systém správy verzií hojne používajú vývojári, DevOps špecialisti, agilné tímy a mnoho ďalších. Ak vaša práca zahŕňa životný cyklus softvéru, určite budete pracovať s Gitom.
Git ponúka množstvo možností. Pravdepodobne sa nikdy nenaučíte všetky príkazy Gitu, ale určite pochopíte, prečo sa tento nástroj považuje za nevyhnutný pre komunikáciu a spoluprácu na softvéri. Dôkladná znalosť Gitu je nevyhnutná, ak pracujete v DevOps tíme.
Ak ste správca systému, budete sa musieť lepšie naučiť Git, pochopiť, ako funguje správa 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 veľa online kurzov a kníh, ktoré vám pomôžu naučiť sa túto tému od začiatku a stať sa profesionálom so špecifickými zručnosťami. Existujú aj skvelé , takže si ich nemusíte všetky pamätať, ale čím viac budete používať Git, tým jednoduchšie to pre vás bude.
Záver
Nakoniec je len na vás, či sa chcete stať DevOps špecialistom alebo zostať systémovým administrátorom. Ako vidíte, prechod si vyžaduje školenie, ale čím skôr začnete, tým lepšie. Vyberte si programovací jazyk a zároveň sa naučte nástroje ako napríklad (kontrola verzií), (CI/CD, kontinuálna integrácia) a (konfigurácia a automatizácia). Bez ohľadu na to, ktorú možnosť si vyberiete, nezabudnite sa neustále učiť a zlepšovať svoje zručnosti.
Zdroj: hab.com
