Miért váljanak a rendszeradminisztrátorok DevOps mérnökökké?

Miért váljanak a rendszeradminisztrátorok DevOps mérnökökké?

Nincs jobb idő a tanulásra az életben, mint ma.


2019 van, és a DevOps relevánsabb, mint valaha. Azt mondják, hogy a rendszergazdák kora véget ért, akárcsak a mainframe korszaka. De ez tényleg így van?
Ahogy az informatikában lenni szokott, a helyzet megváltozott. A DevOps módszertan megjelent, de nem létezhet rendszergazdai képességekkel rendelkező személy, vagyis Ops nélkül.

Mielőtt a DevOps megközelítés modern formáját öltötte volna, besoroltam magam az Ops-ba. És nagyon jól tudom, mit él meg egy rendszergazda, amikor rájön, mennyi mindent nem tud még megtenni, és milyen kevés ideje van ennek megtanulására.

Miért váljanak a rendszeradminisztrátorok DevOps mérnökökké?

De tényleg ennyire ijesztő? Azt mondanám, hogy a tudás hiányát nem szabad valamiféle nagy problémaként felfogni. Ez inkább szakmai kihívás.

A webes méretű termékek Linuxra vagy más nyílt forráskódú szoftverekre épülnek, és egyre kevesebb ember van a piacon, aki képes ezeket fenntartani. A kereslet már meghaladta az ezen a területen dolgozó szakemberek számát. A rendszeradminisztrátor többé nem tud egyszerűen tovább dolgozni anélkül, hogy ne javítaná képzettségi szintjét. Automatizálási készségekkel kell rendelkeznie több szerver/csomópont kezeléséhez, és jól ismernie kell a felmerülő problémák megoldását.

Mielőtt a DevOps csapat tagja leszel, elég hosszú, de érdekes utat kell végigjárnod, új technológiákat és különféle eszközöket kell megtanulnod, amelyek szükségesek a rendszer DevOps szabványok szerinti karbantartásához.

Hogyan tud tehát egy rendszergazda a szokásos munkamódszerről áttérni a DevOps új koncepciójára? Minden a szokásos módon történik: először meg kell változtatnod a gondolkodásodat. Nem könnyű feladni az elmúlt tíz-húsz évben követett megközelítést, és másképp kezdeni a dolgokat, de szükséges.

Először is fontos megérteni, hogy a DevOps nem egy konkrét pozíció egy vállalatnál, hanem konkrét gyakorlatok összessége. Ez a gyakorlat magában foglalja az elszigetelt rendszerek szétosztását, a hibák és hibák okozta károk csökkentését, a gyakori és időszerű szoftverfrissítéseket, a jól bevált interakciót a fejlesztők (Dev) és a rendszergazdák (Ops) között, valamint nem csak a kód, hanem a folyamatos tesztelést. a folyamaton belüli teljes szerkezetet is folyamatos integráció és szállítás (CI/CD).

A gondolkodásmód megváltoztatásával párhuzamosan meg kell tanulni az infrastruktúra karbantartását és annak stabil működését, megbízhatóságát és rendelkezésre állását az alkalmazások, szolgáltatások és szoftverek folyamatos integrációjához és szállításához.

Az Ops szakembereként a programozási ismeretek hiányozhatnak. Ma már elavultnak számít a szkriptek (scriptek) írása, amelyeket a rendszergazdák a javítások automatikus telepítésére, a fájlok és fiókok kezelésére, a problémák elhárítására és a dokumentáció összeállítására használnak. A szkriptelés viszonylag egyszerű esetekben továbbra is alkalmazható, de a DevOps a nagy léptékű problémák megoldásáról szól, legyen szó megvalósításról, tesztelésről, összeállításról vagy telepítésről.

Így ha automatizálást akarsz tanulni, legalább egy kicsit el kell sajátítanod a programozást, még akkor is, ha nem vagy fejlesztő, mert a fejlesztésnek ebben a szakaszában infrastruktúra automatizálás DevOps-ban ez a készség szükséges.

Mit kell tenni? Ahhoz, hogy szakemberként továbbra is kereslet maradjon, meg kell szereznie a megfelelő készségeket - el kell sajátítania legalább egy programozási nyelvet, például a Pythont. Ez nehéznek tűnhet annak, aki hivatásszerűen foglalkozik az adminisztrációval, hiszen hozzászokott, hogy csak a fejlesztők programoznak. Nem kell szakértővé válni, hanem valamelyik programozási nyelv ismerete (lehet Python, Bash vagy akár PowerShell), mindenképpen előnyt jelent.

A programozás megtanulása eltart egy ideig. Ha figyelmes és türelmes, akkor a DevOps csapattagjaival és ügyfeleivel folytatott kommunikáció során mindig naprakész marad. Napi fél óra, egy óra vagy több programozási nyelv tanulása legyen a fő cél.

A rendszergazdák és a DevOps szakemberek hasonló problémákat oldanak meg, azonban jelentős különbségek vannak. Úgy gondolják, hogy a rendszergazda nem tud mindent megtenni, amit egy DevOps mérnök. Azt mondják, hogy a rendszergazda inkább a szerverrendszerek konfigurálására, karbantartására és teljesítményének biztosítására koncentrál, de a DevOps mérnöke húzza ezt a kocsit és még egy kis kocsit.

De mennyire igaz ez az állítás?

Rendszergazda: egy harcos a mezőn

A cikkben említett különbségek és hasonlóságok ellenére továbbra is úgy gondolom, hogy nincs jelentős különbség a rendszeradminisztráció és a DevOps között. A rendszergazdák mindig ugyanazokat a funkciókat látták el, mint a DevOps-specialisták, csak azt, hogy korábban senki sem nevezte DevOps-nak. Úgy gondolom, hogy nincs értelme kifejezetten a különbségeket keresni, pláne, ha ez nem kapcsolódik semmilyen feladathoz. Ne felejtsük el, hogy a rendszergazdákkal ellentétben a DevOps nem pozíció, hanem koncepció.

Még egy fontos dolgot meg kell jegyeznünk, amely nélkül az adminisztrációról és a DevOps-ról szóló beszélgetés nem lesz teljes. A szokásos értelemben vett rendszeradminisztráció azt feltételezi, hogy a szakember meghatározott készségekkel rendelkezik, és különböző típusú infrastruktúrák kiszolgálására összpontosít. Nem abban az értelemben, hogy ez egy univerzális alkalmazott, hanem abban az értelemben, hogy számos feladatot minden adminisztrátor végez.

Például időnként egyfajta technikai ezermesterként kell fellépniük, vagyis szó szerint mindent meg kell csinálniuk. És ha csak egy ilyen rendszergazda van az egész szervezetben, akkor általában ő végzi el az összes technikai munkát. Ez bármi lehet a nyomtatók és fénymásolók karbantartásától a hálózattal kapcsolatos feladatok elvégzéséig, mint például az útválasztók és kapcsolók beállítása és kezelése vagy a tűzfal konfigurálása.

Feladata lesz továbbá a hardverfrissítések, a naplóvizsgálatok és -elemzések, a biztonsági auditok, a szerverfoltozás, a hibaelhárítás, a kiváltó okok elemzése és az automatizálás – jellemzően PowerShell, Python vagy Bash szkripteken keresztül. Egy példa a felhasználásra forgatókönyvek a felhasználói és csoportos fiókok kezelése. A felhasználói fiókok létrehozása és az engedélyek hozzárendelése rendkívül fárasztó feladat, mivel szinte minden nap megjelennek és eltűnnek a felhasználók. A szkripteken keresztül történő automatizálás időt szabadít fel a fontosabb infrastrukturális feladatokra, mint például a kapcsolók és szerverek frissítésére, valamint egyéb olyan projektekre, amelyek befolyásolják annak a vállalatnak a jövedelmezőségét, ahol az adminisztrátor dolgozik (annak ellenére, hogy általánosan elfogadott, hogy az IT részleg nem termel közvetlenül bevételt).

A rendszergazdának az a feladata, hogy ne veszítse el az időt, és semmilyen módon ne takarítsa meg a cég pénzt. Néha a rendszergazdák egy nagy csapat tagjaként dolgoznak, például Linux-, Windows-, adatbázis-, tároló- stb. rendszergazdákat kombinálva. A munkarend is változó. Például egy időzóna eltolódása a nap végén átviszi az eseteket egy másik időzóna következő műszakába, így a folyamatok nem állnak le (napkövetés); vagy a munkavállalók szokásos munkanapja 9 órától 5 óráig tart; vagy XNUMX órás adatközpontban működik.

Idővel a rendszergazdák megtanultak stratégiailag gondolkodni, és a fontos dolgokat a rutinfeladatokkal kombinálni. A csapatok és részlegek, ahol dolgoznak, általában forráshiányban vannak, ugyanakkor mindenki igyekszik a lehető legteljesebb mértékben elvégezni a napi feladatokat.

DevOps: fejlesztés és karbantartás egyben

DevOps egyfajta filozófia a fejlesztési és karbantartási folyamatokhoz. Ez a megközelítés az IT-világban valóban innovatívvá vált.

A DevOps égisze alatt az egyik oldalon egy szoftverfejlesztő csapat, a másikon pedig egy karbantartó csapat található. Gyakran csatlakoznak hozzájuk termékmenedzsment-specialisták, tesztelők és felhasználói felület-tervezők. Ezek a szakértők együtt egyszerűsítik a műveleteket az új alkalmazások és kódfrissítések gyors bevezetése érdekében, amelyek támogatják és javítják az egész vállalat hatékonyságát.

A DevOps a szoftver fejlesztésének és működésének ellenőrzésén alapul annak teljes életciklusa során. A karbantartóknak támogatniuk kell a fejlesztőket, és a fejlesztők feladata nem csupán a rendszerekben használt API-k megértése. Meg kell érteniük, mi van a burkolat alatt (azaz hogyan működnek a hardverek és az operációs rendszerek), hogy jobban tudják kezelni a hibákat, megoldani a problémákat, és kapcsolatba léphessenek a szerviztechnikusokkal.

A rendszergazdák beköltözhetnek egy DevOps csapatba, ha meg akarják tanulni a legújabb technológiákat, és nyitottak az innovatív ötletekre és megoldásokra. Ahogy korábban is mondtam, nem kell teljes értékű programozónak lenniük, de egy olyan programozási nyelv elsajátítása, mint a Ruby, a Python vagy a Go, segít abban, hogy nagyon hasznos tagjaivá váljanak a csapatnak. Noha a rendszergazdák hagyományosan minden munkát maguk végeznek, és gyakran magányosnak tekintik őket, a DevOps-ban teljesen ellentétes tapasztalattal rendelkeznek, ahol a folyamat során mindenki interakcióba lép egymással.

Az automatizálás témája egyre aktuálisabb. Mind a rendszeradminisztrátorok, mind a DevOps szakértők érdekeltek a gyors méretezésben, a hibák csökkentésében, valamint a meglévő hibák gyors megtalálásában és kijavításában. Így az automatizálás egy olyan fogalom, amelyben két terület konvergál. A rendszergazdák felelősek a felhőszolgáltatásokért, például az AWS-ért, az Azure-ért és a Google Cloud Platformért. Meg kell érteniük a folyamatos integráció és szállítás alapelveit, valamint az olyan eszközök használatát, mint pl Jenkins.

Ezenkívül a rendszergazdáknak konfigurációs és felügyeleti eszközöket kell használniuk, mint pl Ansible, amely tíz vagy húsz szerver párhuzamos telepítéséhez szükséges.

A fő koncepció az infrastruktúra kódként. A szoftver minden. Valójában ahhoz, hogy a rendszergazdai szakma ne veszítse el relevanciáját, csak egy kicsit változtatni kell a hangsúlyon. A rendszergazdák a szolgáltatási üzletágban tevékenykednek, és hatékonyan kell kommunikálniuk a fejlesztőkkel, és fordítva. Ahogy mondani szokás, egy fej jó, de két jobb.

És ennek a mechanizmusnak az utolsó részlete megy. A Git-tel való munka a rendszeradminisztrátor hagyományos napi feladatai közé tartozik. Ezt a verziókezelő rendszert széles körben használják a fejlesztők, a DevOps szakértők, az Agilis csapatok és még sokan mások. Ha munkája a szoftver életciklusához kapcsolódik, akkor biztosan a Git-tel fog dolgozni.

A Gitnek sok funkciója van. Valószínűleg soha nem fogja megtanulni az összes Git-parancsot, de pontosan meg fogja érteni, hogy ez miért alapvető a szoftveres kommunikációban és az együttműködésben. A Git alapos ismerete nagyon fontos, ha DevOps csapatban dolgozik.

Ha Ön rendszergazda, akkor jobban meg kell tanulnia a Git-et, meg kell értenie, hogyan épül fel a verziókezelés, és emlékeznie kell a gyakori parancsokra: git állapot, git commit -m, git add, git pull, git push, git rebase, git ág, git diff és mások. Számos online tanfolyam és könyv segít megtanulni ezt a témát a semmiből, és speciális képességekkel rendelkező szakemberré válni. Vannak csodálatosak is cheat sheets Git parancsokkal, így nem kell mindet összezsúfolni, de minél többet használod a Git-et, annál könnyebb lesz.

Következtetés

Végül Ön dönti el, hogy DevOps-szakértővé kell-e válnia, vagy jobb, ha rendszergazda marad. Amint látja, van egy tanulási görbe az átálláshoz, de minél hamarabb elkezdi, annál jobb. Válasszon programozási nyelvet, és egyidejűleg tanuljon meg olyan eszközöket, mint pl megy (verzióvezérlés), Jenkins (CI/CD, folyamatos integráció) ill Ansible (konfiguráció és automatizálás). Bármelyik lehetőséget is választja, ne felejtse el, hogy folyamatosan tanulnia és fejlesztenie kell készségeit.

Forrás: will.com

Hozzászólás