
Az életben nincs jobb idő a tanulásra, mint ma.
2019 van, és a DevOps téma most aktuálisabb, mint valaha. Azt mondják, hogy a rendszergazdák napjai elmúltak, ahogyan a mainframe korszak is. De tényleg így van?
Mint ahogyan az IT világában gyakran előfordul, a helyzet megváltozott. Megjelent a DevOps módszertan, de ez nem létezhet a rendszergazda készségei nélkül, vagyis az Ops nélkül.
Mielőtt a DevOps megközelítés a mai formáját öltötte, az Ops kategóriába soroltam magam. Jól tudom, mit érez egy rendszergazda, amikor rájön, mennyire keveset tud, és mennyi idő áll rendelkezésére, hogy ezt megtanulja.

De tényleg olyan félelmetes minden? Azt mondanám, hogy a tudás hiányát nem szabad nagy problémaként felfogni. Inkább szakmai kihívás.
A web-skálázott termékek Linuxon vagy más nyílt forráskódú szoftveren alapulnak, és egyre kevesebb szakember található, aki képes ezeket karbantartani. A kereslet már túlszárnyalta a szakemberek számát ezen a területen. A rendszergazdának már nem elég csak folytatni a munkát, anélkül hogy fejlesztené a képességeit. Automatikázási készségekkel kell rendelkeznie ahhoz, hogy számos szervert/csomópontot kezelhessen, és jól kell értenie a működési elveiket, hogy kezelni tudja a felmerülő problémákat.
Mielőtt a DevOps csapat tagjává válna, egy elég hosszú, de izgalmas utat kell megtennie, miközben új technológiákat és különböző eszközöket tanulmányoz, amelyek szükségesek a rendszerek DevOps szabványoknak megfelelő karbantartásához.
Tehát hogyan térhet át a rendszergazda a megszokott munkamódszerről az új DevOps koncepcióra? Mint mindig: először meg kell változtatni a gondolkodásmódot. Nem könnyű lemondani arról a megközelítésről, amit az utolsó tíz vagy húsz évben követtél, és elkezdeni mindent új módon csinálni, de ez elengedhetetlen.
Elsősorban fontos megérteni, hogy a DevOps nem egy konkrét pozíció a vállalatnál, hanem bizonyos gyakorlatok összessége. Ezek a gyakorlatok magukban foglalják az elszigetelt rendszerek elosztását, a hibák és problémák okozta károk csökkentését, a szoftverek gyakori és időben történő frissítését, a fejlesztők (Dev) és a rendszergazdák (Ops) közötti zökkenőmentes együttműködést, valamint a kód és az egész struktúra folyamatos tesztelését a folyamat során. .
A gondolkodásmód megváltozása mellett fontos, hogy megtanulja fenntartani az infrastruktúrát, és biztosítani a stabil működését, megbízhatóságát és elérhetőségét a folyamatos integráció és szállítás során alkalmazások, szolgáltatások és szoftverek esetében.
Ami esetleg hiányozhat Önnek Ops szakemberként, az a programozási tudás. Manapság a szkriptek írása, amelyeket a rendszergazdák használnak automatizált foltozások telepítésére a szerveren, fájlok és felhasználói fiókok kezelésére, hibakeresésre és dokumentáció készítésére, már elavultnak számít. Viszonylag egyszerű esetekben még mindig alkalmazzák a szkripteket, de a DevOps koncepciója nagyszabású feladatok megoldását célozza, legyen szó bevezetésről, tesztelésről, build folyamatok kezeléséről vagy telepítésről.
Ezért ha meg szeretne tanulni automatizálni, legalább egy kicsit meg kell ismerkednie a programozással, még akkor is, ha nem fejlesztő, mivel a fejlődésének ezen a szakaszán a DevOps-ban ezt a készséget megköveteli.
Mit tegyen? Ahhoz, hogy keresett szakember maradhasson, releváns készségeket kell szereznie – legalább egy programozási nyelvet, például a Python-t kell elsajátítania. Akinek szakmai tapasztalata van a rendszergazdálkodás terén, nehezen felfoghatja ezt, mivel hajlamos azt hinni, hogy csak a fejlesztők programoznak. Nem szükséges szakértővé válni, de az egyik programozási nyelv ismerete (ez lehet Python, Bash vagy akár ), mindenképpen előnyt jelent.
Ahhoz, hogy programozni tudj, időre van szükséged. Legyél figyelmes és türelmes — ez segít megérteni a helyzetet a DevOps csapat fejlesztőivel és az ügyfelekkel való kommunikáció során. Napi harminc perc, egy óra vagy annál több — a programozási nyelv elsajátítása kell, hogy legyen a legfőbb célod.
A rendszergazdák és a DevOps szakemberek hasonló feladatokat oldanak meg, azonban jelentős eltérések is vannak. Úgy tartják, hogy a rendszergazda nem képes mindarra, amire a DevOps mérnök. Állítólag a rendszergazda inkább a konfigurálásra, karbantartásra és a szerver rendszerek működésének biztosítására összpontosít, míg a DevOps mérnök mindezt a terhet viszi, sőt, még egy kis kocsit is.
De mennyire helytálló ez az állítás?
Rendszergazda: egy harcos a mezőn
Bár a cikkben említett eltérések és hasonlóságok léteznek, mégis úgy vélem, hogy a rendszergazdaság és a DevOps között nincs lényeges különbség. A rendszergazdák mindig is ugyanazokat a funkciókat látták el, mint a DevOps szakemberek, csak régen senki nem nevezte ezt DevOps-nak. Úgy gondolom, hogy nincs értelme különbségeket keresni, különösen, ha az nem kapcsolódik valamilyen feladathoz. Ne feledjük azt sem, hogy a rendszergazdától eltérően a DevOps nem egy pozíció, hanem egy koncepció.
Érdemes megemlíteni még egy fontos dolgot, anélkül a beszélgetés a rendszergazdaságról és a DevOps-ról hiányos lesz. A klasszikus rendszergazdai megközelítés azt feltételezi, hogy a szakember rendelkezik egy konkrét készségkészlettel és különböző típusú infrastruktúrák karbantartására összpontosít. Nem úgy értem, hogy ez egy univerzális alkalmazott, hanem hogy van néhány feladat, amelyet minden adminisztrátor elvégez.
Például néha technikai mindenes szerepét is el kell játszania, azaz gyakorlatilag mindent meg kell csinálnia. És ha egy ilyen adminisztrátor van az egész szervezetben, akkor ő fogja végezni az összes technikai munkát. Ez bármi lehet: a nyomtatók és fénymásolók karbantartásától kezdve a hálózati feladatokig, mint például routerek és switch-ek beállítása és kezelése vagy tűzfal konfigurálása.
Ő felel az hardverfrissítésekért, a naplóelemzésért, a biztonsági auditokért, a szerverek frissítéseiért, a hibaelhárításért, az okok elemzéséért és az automatizálásért is – általában PowerShell, Python vagy Bash szkriptek segítségével. Az egyik példa a használatra a felhasználói fiókok és csoportok kezelése. A felhasználói fiókok létrehozása és engedélyek megadása rendkívül fárasztó feladat, mivel a felhasználók szinte minden nap megjelennek és eltűnnek. Az automatizálás szkriptek segítségével lehetővé teszi, hogy időt szabadítsunk fel fontosabb infrastruktúrával kapcsolatos feladatok elvégzésére, például a kapcsolók és szerverek frissítésére, valamint más, a cég nyereségességére ható projektek végrehajtására, ahol az adminisztrátor dolgozik (bár általában úgy vélik, hogy az IT részleg nem hoz közvetlenül bevételt).
A rendszeradminisztrátor feladata, hogy ne pazarolja az időt, és bármilyen módon pénzt takarítson meg a cégnek. Néha a rendszeradminisztrátorok egy nagy csapat tagjaiként dolgoznak, például Linux, Windows, adatbázis és tároló adminisztrátorok összevonásával. A munkaidő is eltérő lehet. Például az egyik időzónában végzett műszak a nap végén átadja az ügyeket a következő műszaknak egy másik időzónában, hogy a folyamatok ne álljanak meg (follow-the-sun); vagy a munkavállalóknak szokásos munkanapja van reggel 9-től 5-ig; vagy ez egy 24 órás adatközpontban végzett munka.
A rendszeradminisztrátorok idővel megtanulták, hogy stratégikusan gondolkodjanak, és a fontos feladatokat kombinálják a rutinfeladatokkal. Azok a csapatok és osztályok, amelyekben dolgoznak, általában forráshiányosak, de mindezen közben mindannyian arra törekednek, hogy a napi feladatokat teljes egészében ellássák.
DevOps: a fejlesztés és üzemeltetés összehangolása
ez egyfajta filozófia a fejlesztés és üzemeltetés folyamataiban. Ez a megközelítés az IT világában igazán innovatívvá vált.
A DevOps keretein belül egy szoftverfejlesztő csapat dolgozik az egyik oldalon, míg a másikon az üzemeltetési szakemberek. Gyakran csatlakoznak hozzájuk termékmenedzserek, tesztelők és felhasználói felület tervezők is. Ezek a szakemberek összefogva optimalizálják a munkafolyamatokat, hogy gyorsan kiadhassák az új alkalmazásokat és frissíthessék a kódot a vállalat egészének hatékonysága érdekében.
A DevOps alapja a szoftver fejlesztésének és működésének ellenőrzése az életciklus során. Az üzemeltetési szakembereknek támogatniuk kell a fejlesztőket, míg a fejlesztőknek nemcsak az API-kkal kell tisztában lenniük, amelyeket a rendszerek használnak. Meg kell érteniük, hogy mi rejlik a "motorháztető alatt" (azaz hogyan működik a hardver és az operációs rendszerek), hogy jobban megbirkózhassanak a hibákkal, megoldhassák a problémákat és együttműködhessenek az üzemeltetési szakemberekkel.
A rendszergazdák átkerülhetnek a DevOps csapatba, ha szeretnék tanulmányozni a legújabb technológiákat, és nyitottak az innovatív ötletekre és megoldásokra. Mint már említettem, nem szükséges teljes értékű programozókká válniuk, de a Ruby, Python vagy Go programozási nyelvek elsajátítása segíthet nekik abban, hogy nagyon hasznos tagjai legyenek a csapatnak. Míg a rendszergazdák hagyományosan mindent egyedül végeznek, és gyakran magányosként tekintenek rájuk, a DevOps-ban teljesen ellenkező tapasztalat vár rájuk, ahol minden résztvevő kölcsönhatásban áll egymással.
Az automatizálás témája egyre relevánsabbá válik. Mind a rendszergazdák, mind a DevOps szakemberek érdeklődnek a gyors skálázhatóság, a hibák csökkentése, valamint a meglévő hibák gyors keresése és javítása iránt. Így az automatizálás az a fogalom, ahol a két terület találkozik. A rendszergazdák felelősek olyan felhőszolgáltatásokért, mint az AWS, Azure és a Google Cloud Platform. Meg kell érteniük a folyamatos integráció és szállítás alapelveit, és hogy miként használhatják a megfelelő eszközöket. .
Ezen kívül a rendszergazdáknak olyan konfiguráló és kezelési eszközöket kell alkalmazniuk, mint , amelyek szükségesek tíz vagy húsz szerver párhuzamos telepítéséhez.
Alapfogalom — . A szoftver mindenben benne van. Alapvetően ahhoz, hogy a rendszergazda szakma ne veszítse el aktualitását, csak egy kicsit meg kell változtatni a hangsúlyt. A rendszergazdák karbantartással foglalkoznak, és hatékonyan kell tudniuk együttműködni a fejlesztőkkel, és fordítva. Ahogyan mondani szokták, egy fej jó, de kettő még jobb.
És az utolsó részlet ebben a mechanizmusban — ez . A Git kezelése a rendszergazda hagyományos, napi feladatai közé tartozik. Ez a verziókezelő rendszer széles körben használt a fejlesztők, DevOps szakemberek, Agilis csapatok és sok más területen. Ha a munkája a szoftver életciklusával kapcsolatos, akkor biztosan foglalkozni fog a Gittel.
A Git tele van lehetőségekkel. Valószínűleg soha nem tanulja meg az összes Git parancsot, de pontosan meg fogja érteni, miért tekintik ezt az eszközt a legfontosabbnak a szoftver kommunikációs és közös munkája során. A Git alapos ismerete nagyon fontos, ha DevOps csapatban dolgozik.
Ha Ön rendszergazda, akkor mélyebben meg kell ismernie a Git-et, meg kell értenie, hogyan működik a verziókezelés, és meg kell jegyeznie a elterjedt parancsokat: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff és másokat. Számos online kurzus és könyv áll rendelkezésre, amelyek segítenek ennek a témának a nulláról való elsajátításában és a konkrét készségekkel rendelkező szakemberré válásban. Vannak nagyszerű , így nem szükséges mindet bemagolni, de minél többet használja a Git-et, annál könnyebb lesz a dolga.
Zárás
Végső soron Ön dönt, hogy DevOps szakemberré szeretne válni, vagy inkább maradna rendszergazda. Ahogy láthatja, a váltáshoz tanulásra van szükség, de minél hamarabb kezd, annál jobb. Válasszon programozási nyelvet, és párhuzamosan tanulmányozza az olyan eszközöket, mint a (verziókezelés), (CI/CD, folyamatos integráció) és (konfigurálás és automatizálás). Bármelyik lehetőséget is választja, ne feledje, hogy folyamatosan tanulnia és fejlesztenie kell a készségeit.
Forrás: habr.com
