ITHub

Mitől lesz valaki jó DevOps engineer?

Mitől lesz valaki jó DevOps engineer?
Kóbor Ádám
Kóbor Ádám
| ~3 perc olvasás

Korábban írtunk már arról, hogy mi is az a DevOps, sőt, hasznos DevOps eszközöket is mutattunk, ám arról, hogy mitől is lesz valaki DevOps-os, hovatovább JÓ DevOps-os, ritkán olvashatunk. Van, aki annak gondolja magát, csak mert ráaggatták ezt a titulust, és van olyan is, aki nem tud róla, pedig a DevOps definíciója tökéletesen passzol hozzá. Blogunkban a legfontosabb ismérveket, tulajdonságokat szedjük össze, melyek egyben útmutatóként is funkcionálhatnak azok számára, akik kacérkodnak ezzel a területtel.

1. Soft skillek

Valószínűleg némileg meglepő, hogy ezzel kezdünk, pedig a technológiai tudás mellett legalább olyan fontos, ha nem fontosabb, hogy egy jó DevOps-os jól kommunikáljon a kollégákkal. Gondoljunk csak bele, maga a DevOps is arról szól, hogy lebontja a korábban megszokott falakat és betagozódásokat a fejlesztési és üzemeltetési csapatok között. Ha mindehhez valaki nem túl szociális és/vagy rosszul kommunikál, az biztos, hogy a falak lebontása helyett folyamatosan újabbakba fog ütközni a szervezeten belül.

2. Széleskörű technológiai ismeret

Ezen már biztos nem lepődik meg senki. Egy jó DevOps-os mindig képben van a legújabb technológiákkal, eszközökkel, folyamatosan fejleszti magát. Ha konkrétabbak szeretnénk lenni, akkor nagyjából ezek a legfontosabb területek:

  • verziókezelők (pl. Git, GitLab, GitHub, Bitbucket, SVN, VSTS)
  • continuous integration (pl. Jenkins, Bamboo, VSTS)
  • infrastruktúrával kapcsolatos automatizálás (pl. Puppet, Chef, Ansible)
  • deployment (pl. Jenkins, VSTS, Octopus Deploy)
  • container alapú megoldások, és azok menedzsmentje (pl. Docker, LXD, Kubernetes, Mesos, Swarm)
  • cloud (pl. AWS, Azure, GCP, Openstack)
  • monitoring (pl. Nagios, splunk, New Relic)
  • tesztelés (pl. Selenium, Watir, JUnit)

3. Magabiztos IT security ismeretek

Azzal, hogy a DevOps szemlélet megveti a lábát egy cégnél, és ez által gördülékenyebb, kompaktabb lesz a fejlesztés, a deployment és az üzemeletetés folyamata, sajnos a hibázásra is több esély nyílik. Épp ezért elengedhetetlen, hogy egy jó DevOps-os stabil biztonsági ismeretekkel rendelkezzen üzemeltetési és fejlesztési oldalon egyaránt, ráadásul tisztában kell lennie a kettő egymásra gyakorolt hatásaival is. Ez tipikusan egy olyan szakterület, amit érdemes lehet egy profi tréningen elsajátítani, vagy tökéletesíteni.

4. Infrastrukturális automatizálás

Ha azt mondjuk automatizálás, a legtöbben azért még mindig a deployment vagy a tesztfolyamatok automatizálására gondolnak, pedig van még egy olyan terület, ahol szinte csak előnyt kovácsolhatunk abból, ha minimalizáljuk az emberi tényezőt: ez a különböző környezetek, vagyis az infrastruktúra automatizálása. Rengeteg időt és energiát spórolunk meg, valamint számos hibalehetőségnek vesszük elejét, ha az infrastruktúra konfigurációját is "kóddal" végezzük, erre a leginkább elterjedt eszközök a Puppet, a Chef és az Ansible, de a sor még folytatható.

5. Tesztelés

A CD egyik legfontosabb alappillére a tesztelés. Ráadásul mivel automata folyamatokról beszélünk, ezért nem arra a tesztelésre gondolunk, amikor valaki kenyéren és vízen 3 napig regressziózza a monolitikus alkalmazásunkat, hanem arra, amikor rendesen megírt unit és felületteszteink vannak. Ilyenkor biztosak lehetünk abban, hogy ha egy build sikeresen végbemegy, akkor az azért történik, mert valóban minden rendben van az újonnan élesítendő kódunkkal. A modern tesztelési módszertanok, eszközök ismerete nélkül éppen ezért szinte kizárt, hogy valakiből jó DevOps-os legyen.

6. Fejlesztői tudás

Ahogy már magában a szóban is benne van, egy jó DevOps-osnak rendelkeznie kell magabiztos fejlesztői ismeretekkel is. Ez a gyakorlatban nem azt jelenti, hogy legalább 10 nyelvből szakértőnek kell lennie valakinek, de az, hogy valamilyen - az adott projekten is használt, vagy legalább ahhoz hasonló - nyelvben jártas legyen, elengedhetetlen.

7. Hálózati ismeretek

Ha valaki azt gondolja, hogy a hálózat konfigurációja a network engineer dolga, és nem a DevOps-é, az nagyot téved. HTTP, FTP, DNS, TLS, és a sor még elég hosszan folytatható, ezekhez mind értenie kell annak, aki igazán sikeres akar lenni ezen a területen.

KIhagytunk valamit? Szerintetek mitől lesz valaki jó DevOps-os?