Egyre több informatikai vállalat keres DevOps üzemeltetőt, a pozíció részletes leírását látva azonban sokan elbizonytalanodnak. Nem véletlenül. Első pillantásra úgy tűnik, hogy a DevOps szakembernek mindenhez IS értenie kell – aztán kiderül, hogy tényleg. De hogyan lehet, hogy az IT mai összetett világában egyetlen ember átlátja, sőt, irányítani tudja a fejlesztés, a tesztelés és az üzemeltetés minden részét? Erre keressük a választ az alábbi cikkben.

Mit jelent a DevOps?

A DevOps kifejezés a fejlesztés (development) és üzemeltetés (operation) szavak összevonásából származik, és ennek a két területnek a szoros együttműködésére utal. Nem egy konkrét technikáról van tehát szó, hanem egy módszertanról, a szoftverfejlesztés egy újfajta megközelítéséről, ami sokak szerint egy külön vállalati kultúrát is feltételez. A DevOps ugyanis a szoftver teljes életciklusát lefedi, tehát része a tervezés, a programozás, a tesztelés, a telepítés, a működtetés, a monitorozás és a hibajavítás is. A DevOps üzemeltető e részterületek összehangolásával és a folyamatok automatizálásával foglalkozik, így hatékonyabbá teszi az egész szoftverfejlesztést.

Mit kell tudnia egy DevOps üzemeltetőnek?

A DevOps üzemeltető feladata elérni, hogy ha a fejlesztők módosítanak valamit egy applikáció kódján, akkor az a lehető leggyorsabban és a legkevesebb emberi beavatkozással jelenjen meg és fusson a végfelhasználóknál. Ehhez újra kell fordítani a kódot, becsomagolni, ellenőrizni és tesztelni, majd szét kell terjeszteni a megfelelő infrastruktúrán, például fel kell tölteni különböző szerverekre. Ezután jön az üzemeltetés és a monitorozás, de minden kezdődik elölről, ha például szükség van egy hibajavításra. Ahhoz, hogy ezt az egész folyamatot kezelni tudja a DevOps szakember, gyakorlatilag minden részéhez értenie kell. Tudnia kell, hogyan épülnek fel a kódból a szoftverek, értenie kell a konténerizációhoz és teszteket kell futtatnia. Ismernie kell a kiszolgáló környezetet (pl. frontend szervereket, futtatási környezeteket, infrastruktúra kiszolgálókat) és az adatbázisokat, emellett ráadásul ügyelnie kell a biztonságra is.

Hogyan képes egyetlen ember ennyi mindenre figyelni?

A DevOps szakemberek alkalmazások és szoftverek egész palettáját használják e rengeteg feladat kezeléséhez. Egyénenként és vállalatonként is változik, hogy ki mit használ, de azért vannak jól bevált megoldások. A verziók nyomon követésére például a GitHub vagy a GitLab használata a legelterjedtebb. A konténerizációhoz a Dockert, a konténerek kezeléséhez pedig a Kubernetes programot oktatjuk a PROGmastersnél. A rendszerek automatizálásához az Ansible nyújt segítséget, a felhőszolgáltatások közül pedig az AWS (Amazon Web Services) vagy a Microsoft Azure rendszerét mutatjuk be. A monitorozó eszközök közül a Zabbixot ajánljuk, de természetesen vannak más alternatívák is. A lényeg az, hogy a DevOps mérnök nem egymaga csinál mindent – sok esetben vannak mellette külön fejlesztők és üzemeltetők is. A DevOps szakember inkább felügyeli és összehangolja a munkát, valamint automatizálással segíti a többieket.

devops-üzemeltető-képzés-progmasters-ábra

Kell programoznia egy DevOps üzemeltetőnek?

Nem kell mélységeiben ismerni egy-egy programnyelvet, hiszen az a fejlesztő feladata, aki az adott applikáció kódját írja. Viszont a DevOps szakembernek is kell tudnia kódot olvasni és írni az automatizáláshoz. Igaz, ebben az esetben csak kisebb fájlokról, szkriptekről van szó, de mindenképpen ismernie kell az alapokat. A PROGmastersnél ehhez Pythont tanítunk, mert a DevOps eszköztárban sok szoftver ezzel működik, de ha valaki például a Javát vagy a .NET-et ismeri, azzal is el tud indulni a DevOps pályán.

Kiből lehet DevOps szakértő?

A DevOps egy határterület, így elsősorban olyanoknak való, akik szeretnének új dolgokat felfedezni és megtanulni. Vannak, akik a fejlesztés irányából érkeznek ide, mások inkább az üzemeltetéssel foglalkoztak eddig, például rendszergazdaként vagy akár tesztelőként dolgoztak korábban. DevOpsosként viszont a teljes szoftverfejlesztési folyamatot meg kell ismerni, ami egy hihetetlenül komplex dolog. Ráadásul a soft skillek is nagyon fontosak, hiszen sokszor kell egyeztetni a folyamatban részt vevő kollégákkal, például fejlesztőkkel, üzemeltetőkkel vagy épp a tervezőkkel.

Vagyis a DevOps szakértő valójában a szoftverfejlesztés szuperhőse?

Inkább olyan, mint egy karmester, aki egy szimfonikus zenekart vezényel. Lehet, hogy maga is tud játszani egy-két hangszeren, de ehelyett inkább a nagy egészre, az összhangra figyel. Ha jól csinálja a dolgát, akkor minden jól szól és simán megy.

Miért érdemes DevOps üzemeltetőnek tanulni? Hiszen csak a programozásból, tesztelésből vagy üzemeltetésből is meg lehet élni…

Ha valaki például programozást tanul, akkor is sok lehetősége van – elhelyezkedhet multinál, kkv-nál vagy maradhat szabadúszó, válogathat a projektek között, stb. Mégis alapvetően a fejlesztői karrierpályán mozoghat. A DevOps tanfolyamon viszont a szoftverfejlesztés minden részterületét megismeri, és ezután eldöntheti, hogy melyik fekszik neki a legjobban, melyikben akar elmélyedni. Akár váltogathatja is, hogy mivel foglalkozik, hiszen egy jó DevOpsos legalább 8-10 olyan programrendszert ismer, amelyekben mélyebb tudást szerezve specialistaként is elhelyezkedhet. Ez természetesen a fizetésben is meglátszik.

Van, akinek nem való a DevOps karrier?

Aki egyértelműen tudja, hogy az IT-n belül milyen részterülettel szeretne foglalkozni, annak nyilván az a legjobb, ha abban szerez mélyebb tudást. Ha például valaki élvezi a programozást, annak felesleges a DevOpshoz szükséges sok egyéb ismeretet elsajátítani. A DevOps inkább azoknak való, akik átfogó ismereteket szeretnének, vagy az IT területén maradva több munkakörben is kipróbálnák magukat. A DevOps emellett nagyon nagy felelősséggel jár. Míg egy fejlesztő által írt kód több ellenőrzésen is átmegy, addig a DevOps általában maga felel a teljes fejlesztési folyamatért. Ráadásul itt muszáj sok emberrel egyeztetni, kapcsolatot tartani – ezt sem mindenki szereti. Ha azonban valaki épp ilyen változatos és izgalmas munkakört keres, annak a DevOps megnyithatja az utat a végtelen lehetőségek felé.