Nem várok! (Mocsányi Ákos folytatja a konténerizáció izgalmas témáját)

A Kubernetes technológiáról korábbi cikkünkben már részletesen írtunk. Akkor a horizontális skálázással kapcsolatban emeltük ki a megoldás előnyeit. Léteznek azonban más helyzetek is, amelyekben áttörést hozott e technológia.

Tekintsük ehhez a szoftverkészítés tevékenységét a korszerű, agilis megközelítésben. Ez egy részfeladatok rendszeres ismétlésére épülő folyamat, mely magába foglalja szoftverfejlesztési életciklus minden elemét. Úgymint: tervezés, elemzés, programozás, futtatható formátumra hozás, egység tesztelés, átvételi tesztelés.

A programozási fázis utáni feladatok nagyban automatizálhatók, amire szükség is van ahhoz, hogy a tesztelés ne vonjon el emberi erőforrást a csapattól, valamint, hogy minél gyorsabb visszacsatolás érkezzen a fejlesztőkhöz a legutóbbi változtatások helyességéről. Ezek az automatikus lépések gyakorlatilag folyamatosan integrálják a fejlesztők által eszközölt forráskód módosításokat az alkalmazásba. Innen a fázis neve: Continuous Integration. Könnyen belátható, hogy ez a módszertan a hagyományos, vízesés jellegű metódusokhoz képest – ahol a visszacsatolásokra sokszor hónapokat kellett várni – sokkal rugalmasabb, alacsonyabb kockázatú, az üzleti környezet folyamatos változásaihoz sokkal könnyebben alkalmazkodni képes projekteket eredményez.

A Continuous Integration továbbgondolása a Continuous Delivery és a Continuous Deployment. A Continuous Delivery az újonnan a programba épített funkció elérhetővé tételét jelenti. Ennek keretében kitelepítik egy tesztszerverre – ez még nem az ügyfélé –, megint csak automatizáltan. Ez egy közbülső rendszer, ahol már a potenciális felhasználók is meg tudják nézni. Itt egyfajta minőségbiztosítási eljáráson esik át a funkció.

A Continuous Deployment pedig az utolsó fázis, amikor mindez – automatizmus útján – kikerül az éles rendszerre.

A cél az egész folyamat során az, hogy idejekorán és automatikusan minél pontosabban leteszteljük a programot. A rengeteg teszt lefuttatása azonban nagyon sok időt vesz igénybe, és nagymértékben leterheli a rendszert. Ehhez erőforrások kellenek.

És itt juthat ismét szerephez a Kubernetes.

Minthogy bizonyos folyamatok több erőforrást igényelnek, mások kevesebbet – a tesztek számától és jellegétől, a tesztelt rendszerelemek szükségleteitől, az automatizmusok párhuzamosítottságának mértékétől függően – dinamikusan kell a végrehajtásba bevont erőforrásokat skálázni. Ennek egyik lehetséges technológiája a konténerizáció, annak pedig egy jól működő, nyílt forrású támogató platformja a Kubernetes.

A feladat ugyanakkor csupán messziről tekintve tűnhet egyszerűnek, ahogy közelebb ér az ember, kiderül, hogy rendkívül komplex. Mint a repülés: jól néz ki, hogy csak felszállunk a gépre és az elrepít nyaralni, de közben a pilótafülke gombok százaiból áll. Itt is ez a helyzet. Könnyű elkezdeni a Kubernetes-szel dolgozni, de a hatékony használathoz már nagyon kell hozzá érteni.

A világ ugyanakkor erre tart.

A fejlesztői társadalom ugyanis valósággal „rácuppant”, hiszen ezzel a megoldással nagyon sok hasznos dolgot el lehet érni, amire eddig nem nyílt lehetőség. A kapcsolódó eszközök fejlődési üteme szédítő: havonta számos újdonság lát napvilágot a közösség jóvoltából, tovább könnyítve a használatát. Folyamatos tanulásban vagyunk.

Az ügyfelek pedig igazán elégedettek lehetnek.

A CI/CD koncepció gyakorlati alkalmazása ugyanis nagyban hozzájárul az erőforrások hatékonyabb kihasználásához, így profibb, kevesebb hibalehetőséget tartalmazó programot kap a megrendelő, kedvezőbb áron.  Hiszen, mint említettem, minden változtatás azonnal tesztelésen esik át, nem veszítünk tehát időt, villámgyorsan zajlik a visszacsatolás. Míg korábban ahhoz is idő kellett, hogy az üzemeltető csapat kitegye a programot az éles rendszerre, itt ez most fel sem merül. A felhasználói élmény (user experience) is azonnal rendelkezésre áll.

Mindennek persze előfeltétele az agilitás. A korábbi, Vízesés modell még a hagyományos, hatvanas évekbeli mérnöki szemléletből – a felhőkarcolók, hidak, látványos beruházások idejéből – ered. A szoftveriparban azonban óriás pazarlás volt ezt alkalmazni, megérett hát az idő a paradigmaváltásra. Hiszen az ügyfél nem ér rá.

Mostantól nem is kell várnia.


Vissza a Tech Corner oldalra