DevOps munkakör

Réfi Balázs

2021. március 10.


Mit jelent a DevOps? Milyen feladatai vannak egy DevOps szakembernek és mennyit lehet keresni ebben a munkakörben?

More...

Saját humoros oldala van a Redditen, a Pinteresten és a Tumblr-ön, honlapja pedig a legkülönfélébb témákat dolgozza fel: a DevOps felrázta az IT-világot. Hogy mi ez, miért fontos? Milyen tendenciákra számíthatunk a jövőben, és az ezt használó IT-s mitől különleges? Kiderül az alábbi posztunkból.

DevOps jelentése

Napról napra egyre több DevOps (engineer) álláslehetőséggel találkozhatunk, s mivel munkájuk nagy hatással bír a munkahelyeken, hatalmas a kereslet rájuk. Egy 2019-es felmérés szerint az ezer főnél nagyobb szervezetek 85%-a már bevezette a DevOps-ot, vagy a következő két évben tervezi.

Első, 2009-es említése óta azonban nem sikerült egyértelmű, mindenki által elfogadott definícióval leírni, mi az a DevOps.

A leggyakrabban olyan szoftverfejlesztési gyakorlatok összességét értik alatta, melyben egyesül a szoftverfejlesztés (Dev) és az üzemeltetés (Ops). A legkifejezőbben talán ez a fogalom érzékelteti: eszerint a DevOps az a gyakorlat, amelyben az üzemeltetési és fejlesztő mérnökök együtt vesznek részt a teljes szolgáltatási életciklusban – a tervezéstől a fejlesztési folyamaton keresztül a gyártástámogatásig.

Azaz az üzemeltetési, a fejlesztő és a tesztelő csapatok együttműködése kritikus lehet, így a vállalati kultúrában is változást hozhat. A cél a munka kiszámíthatóságának, hatékonyságának, biztonságának és fenntarthatóságának maximalizálása, ezt pedig gyakran az automatizálás támogatja.

A DevOps koncepció lényege az, hogy a fejlesztési (beleértendő a tesztelési) és üzemeltetési terület integrációjával, hatékonyabb együttműködésével és rövidebb fejlesztési szakaszaival hamarabb és jobb minőségű szoftvertermékek készülhessenek.

DevOps = Development + Quality Assurance (QA) + Operations

Korábban a fejlesztők és üzemeltetők egymástól elkülönülve dolgoztak. Közöttük az interface jó esetben egy üzemeltetési kézikönyv volt. A fejlesztés befejezését követően átadták a szoftverfejlesztők az elkészült rendszert, majd ezt követően rendelkezésre álltak, hogy a felmerülő hibákat javítani tudják.

DevOps munkakör - Bluebird blog

Napjainkra az informatika a vállalatok életében stratégiai fontossággal bír. Éppen ezért már nem elegendő, hogy egy alkalmazás elkészüljön, vagy egy szolgáltatás elérhető legyen. A teljes folyamatnak gyorsnak kell lennie és folyamatosan igazodnia kell az ügyfelek igényeihez. Nincs idő a hagyományos szoftverfejlesztési módszertanokra, hamar kell az eredmény. A fejlesztési ciklus rövidebb szakaszokra bontásával garantálható a folyamatos teljesítés. Ennek érdekében viszont új szemléletre, új folyamatokra, új eszközökre és új megközelítésre van szükség. Ezért született a DevOps.

Mit várunk a DevOps-tól?

  • lényegesen rövidebb idő telik el a piacra kerülésig,
  • megnövekedett vevői elégedettség,
  • jobb termékminőség,
  • megbízhatóbb termék (alacsonyabb hibaarány),
  • növekvő termelékenység és hatékonyság

A szakirodalomban azonban nem áll rendelkezésre bizonyíték a DevOps hatékonyságáról. Az F5 Networks kutatása például azt találta, hogy öt IT-szakember közül csupán egy gondolta úgy, hogy a DevOps stratégiai hatással volt a cégére, annak ellenére, hogy a használat növekedett. Ugyanezen tanulmány megállapította, hogy a megkérdezettek mindössze 17%-a vélte kulcsfontosságúnak a DevOps-ot, jóval az Saas (42%), a big data (41%) és a nyilvános felhő IaaS (39%) alatt.

A jövő pedig a DevSecOps, hiszen minél többet automatizálunk, annál automatikusabban jöhetnek a problémák, azaz egyre inkább figyelni kell a biztonságra és a magánéletre is. Nagyobb fókusz lesz az IoT-n és a felhőalapú számítástechnikán.

Mik a DevOps legfőbb előnyei?

A DevOps megszünteti a fejlesztők és üzemeltetők közötti elszigeteltséget, hatékonyabb együttműködést hoz létre.

A fejlesztés előrehaladása kis, belátható lépésekben történik, így az eredménytermék hamar elkészül. A szolgáltatás hamar igénybe vehető és gyorsan elérhető a felhasználók számára. Ez azonnali reagálási lehetőséget biztosít a vállalat számára.

A csapatok szoros közös munkavégzése miatt javul a morál, közös célokért egy csapaton belül dolgoznak a projektben résztvevők.

Folyamatos integráció (CI)

A szoftverfejlesztés során rendszeres a kódok commitálása, buildelése és tesztelése. A fejlesztők az általuk írt új vagy módosított kódot naponta vagy naponta többször feltöltik, így kvázi folyamatos kód integráció alakul ki.

A feltöltött kódok azonnal elérhetővé válnak a csapat többi tagjainak számára. A CI másik előnye az, hogy a feltöltött kódok tesztelése folyamatos, ezért nem egy hosszabb fejlesztési ciklust követően derül ki, hogy valami hiba van a rendszerben, hanem a fejlesztés során.

Folyamatos teljesítés (CD)

Az új verziók élesbe állítása gyakori és automatikus. Ezáltal a vállalat gyorsan és hatékonyan képes a piaci változásokra vagy igényekre reagálni.

Másrészt a rendszer felhasználói kvázi folyamatosan tudnak visszajelzést adni a legújabb verzióról, ezáltal hamar javítható annak minősége vagy módosítható a program. Könnyen belátható, hogy ennek eredményeként a felhasználók számára jobban használható, az ő igényeiket jobban kiszolgáló alkalmazás születhet.

A CI/CD további előnye, hogy ügyfél és fejlesztőcsapat között szoros és hatékony együttműködés alakulhat ki. Ahol pedig a gyakori interakciók, gyors előremenetel mindennapossá válik, ott csodák történhetnek, mely érdeke a megrendelőnek és szállítónak egyaránt! 

Microservice szolgáltatások

Microservice szolgáltatásoknál minden szolgáltatás önmagában működik, jól definiált interfészen keresztül kommunikál. Egy általában microservice egyetlen cél megvalósításáért jön létre, ezért elkészítése és beüzemelése viszonylag gyors.

Előnye a monolitikus alkalmazásokkal szemben, hogy rugalmas, hiszen a microservice kicsi (legalábbis kisebb), így könnyebben és gyorsabban módosítható. Vonatkozik ez a kódra, de még a felhasznált szoftverkomponensekre is.

A kis méret miatt nagyobb a megbízhatósága, mint a monolitikus alkalmazásoknak, nagyobb a fejlesztési sebessége.

Monitorozás és naplózás

Az alkalmazások és infrastuktúra által készített adatok és naplók elkészítése megtörténik, továbbá ezek monitorozása a normál folyamatok részét képezik.

Infrastuktúra, mint kód

A fejlesztés során az infrastruktúra definíciói tárolhatók, verziókezeléssel visszaállíthatók, ezzel komoly biztonságot adnak a verzióváltozásokhoz és esetleges visszaállításokhoz.

Mik a DevOps toolok?

A toolok lehetővé teszik a megbízhatóság növekedését, hiszen a gyakori szállítás/bevezetés miatt kiforrott az élesbe állás. Nincsenek meglepetések, vagy jóval kevesebb van, hiszen a deployment folyamat nem egy egyszeri lépés (ahol fingers crossed), hanem rendszeres.

Release toolok: Jenkins, Travis, Bamboo, TeamCity

Konfiguráció management toolok: Puppet, Ansible, Saltstack

Kontének orchesztrációs toolok: Kubernetes, Openshift

Monitoring, virtualizációs és konténerizációs toolok: AWS, Openstack, Docker, Sensu, New Relic, Spunk

Coding toolok: Jira, Git

Testing toolok: JUnit, Selenium, SoapUI, Zephyr

DevOps eszközök

Source: https://medium.com/cuelogic-technologies

Mi a feladata a DevOps mérnöknek?

A DevOps nem szükségszerűen egyetlen IT szakembert jelent, hanem a fejlesztő-, és üzemeltetési csapat által használt fejlesztési kultúrát, folyamatokat. Fontos, hogy kiváló kommunikációs képességekkel rendelkezzen, mivel sokkal gyakoribb interakció van a csapatok és az egyének között, mint másfajta IT-s munkánál.

Emellett szüksége lesz széleskörű tudásra és technológiai ismeretekre (különféle verziókezelők, cloud, monitoring, tesztelés, stb.), fejlesztői tudásra, automatizációs ismeretekre, hálózati ismeretekre, és egyre inkább IT security ismeretekre is.

Ismerni kell a monitoring toolokat, virtualizációs és konténerizációs toolokat, release toolokat, testing toolokat és szükséges korábbi DevOps projekt tapasztalat. Többnyire elengedhetetlen az AWS / Azure / Google Cloud ismeret és tapasztalat.

Fizetés DevOps munkakörben

Adatok aktualitása: 2020. november

DevOps szakember bruttó bérek tapasztalati szint szerint:

  • Junior: 650.000 – 800.000 HUF
  • Tapasztalt: 800.000 – 1.050.000 HUF
  • Senior: 1.050.000 – 1.200.000 HUF