A gyors és hatékony szoftveres fejlődéshez elengedhetetlen egy olyan működési és gyakorlati eszköztár, mint a CI/CD – azaz continuous integration (CI) és continuous delivery (CD). De hogyan alkalmazhatóak az egyes folyamatok a digitális transzformációban, és mitől tudjuk jól alkalmazni a folyamatokat? Cikkünkben ezt vizsgáljuk meg alaposabban.
Mi is az a CI/CD?
A continuous integration – azaz folyamatos integráció – egy olyan fejlesztési folyamat és elv, amelynek fő célja az kódintegrálás, -buildelés és -tesztelés a szoftverfejlesztési környezeten belül. A gyakori integrálással a fejlesztői csapat gyorsan ki tudja szűrni az esetleges hibákat, így azokat hatékonyan ki lehet javítani. A continuous delivery – folyamatos szállítás – valójában az integráció kiterjesztése. Ennek részeként a szoftver mindig készen áll az élesítésre, a fejlesztések pedig elérhetőek és implementálhatóak, amennyiben szükség van rájuk.
CI/CD = versenyképesség?
Ezek a folyamatok adják egy jól működő, modern DevOps környezet alapját, sikerességükön pedig a vállalatok versenyképessége múlik. A GitLab 2020-as felmérése alapján azonban a válaszadók mindössze 38%-a alkalmazza a CI/CD elveit a DevOps implementációjuk során. Hasonló adatokat kapott a Codefresh is, itt kiderült, hogy a válaszadók nagyjából 60%-a úgy gondolja, szervezetük nem megfelelő mértékben implementálja az automatizálási folyamatokat. Szakértők szerint viszont ezek használata a digitális transzformáció elengedhetetlen pontja, mivel ez segíti a szolgáltatókat abban, hogy olyan gyorsan reagáljanak, ahogy a piac és a felhasználók megkövetelik.
Ha a CI/CD folyamatok megfelelően vannak alkalmazva a szervezeti struktúrában, az egyes mikroszolgáltatás-architektúrák agilisan tudnak működni. Segít abban, hogy az egyes csapatok egymástól függetlenül tudják kiépíteni és üzembe helyezni a saját szolgáltatásaikat úgy, hogy közben nem akadályozzák a többi területet. Élesítés előtt letesztelhetőek a szolgáltatások az egyes fejlesztési/tesztelési/minőségbiztosítási környezetekben, majd üzembe helyezés után az újabb verziók is gördülékenyen alkalmazhatóak. Ezek együttesen eredményezik azt, hogy már nem kell hosszú időn át várni arra, hogy az egyes újdonságok, frissítések implementálhatóak legyenek, hiszen a hibakeresés és tesztelés is felgyorsul, ezáltal pedig az ügyfélelégedettség is nagyban nő. Habár önmagában nem elég csupán ezeket a folyamatokat alkalmazni, a CI/CD adja az alapját annak, hogy az egyes agilis és lean technikák, elvek működni tudjanak szervezeti szinten.
5 hasznos tanács a CI/CD alkalmazásához
Bár már egyáltalán nem idegen a vállalatok számára az agilis szemléletmód és a DevOps környezet – ne feledjük, hogy az Agile Manifesto 2021-ben ünnepelte kiadásának 20. évfordulóját – sok szervezet a mai napig küzd a CI/CD folyamatokkal. De mit tehetünk azért, hogy hatékonyan használhassuk a folyamatok a digitális transzformáció során?
1. Foglalkozzunk a CI és a CD különféle kihívásaival
A cégeknek általában egyszerűbb dolguk van a CI folyamatok beépítésével, míg a CD alkalmazásánál már több akadályba ütköznek. Először mindenképpen érdemes megalapozni a CI elveknek, hiszen ezeken a kihívásokon könnyebben felülkerekedhetünk, közben pedig el lehet kezdeni foglalkozni azzal, hogy egy olyan környezetet építsenek ki, amely alkalmas a CD elvekkel való munkára is. Az automatizált konfigurációkhoz, teszteléshez mindenképpen át kell alakítani a rendszert és a folyamatokat.
2. A CI/CD egy ökoszisztéma, nem pedig egy egyenes út
Ha a csapatok ökoszisztémaként és nem egy egyenes útként fogják fel a CI/CD környezetet, könnyebben meg fogják érteni a technológiát, illetve annak alkalmazását a folyamatokra, gyakorlatokra, keretrendszerekre. Ebben az esetben nagyobb esély van arra is, hogy látják, melyek azok a pontok, amelyek fejlesztést igényelnek, és szívesebben fektetnek be pénzt és energiát is a folyamatok előmozdításába. Ne úgy képzeljük el, hogy egy kész terméket egészítünk ki további funkciókkal, például az automatizálással: itt sokkal inkább építkezésről van szó, egészen az alapoktól kezdve.
3. Építsük és erősítsük az új gondolkodásmódot
A CIO-k feladata az, hogy segítsenek a fejlesztőknek a CI/CD által megkövetelt újfajta gondolkodásmód elsajátításában – ezzel párhuzamosan pedig az agilis mindsetet is építeni tudják. Amíg korábban a fejlesztők számára a funkcionalitás volt az elsődleges szempont, ma már kiszélesedett a felelősségük: az ő irányításuk alá tartozik az is, hogy hogyan fog futni a kódjuk. Ez megköveteli azt is, hogy már ne csupán a kód legyen főszerepben, hanem a teljesítmény, az operáció és a futtatás is elsődleges helyen szerepeljen.
4.Támogassuk a csapatokat
CIO-ként fontos arra is figyelni, hogy ne csak a technológiára helyezzük a hangsúlyt, hanem a csapatra is, akik lehetővé teszik azt, hogy a CI/CD folyamatok működjenek. Mint minden együttműködésnél, itt is fontos, hogy a csapattagok ösztönözve és bátorítva legyenek, hiszen enélkül semmilyen projekt nem tudja kihozni magából a maximumot.
5. Mérjük a fejlődést
Kell valamilyen mértéknek lenni, amely megmutatja, mennyit fejlődött a szervezet és a csapat, hogy jobban megérthessük a még ránk váró kihívásokat: nézhetjük például, hogy mennyi ideig tart a csapat számára a kód felépítése, majd annak üzembe helyezése. Ezek a mérések segítenek megérteni a sikereket és az esetleges nehézségeket, fejlesztendő területeket akár a szervezet más területein is, emellett pedig előrejelzést nyújtanak a jövőre nézve is.
CI/CD a Stylersnél
A Stylers fejlesztőjét, Nagy Gábort kértük meg, mondja el, ő miben látja az alkalmazás előnyét a szervezeten belül: “Erősen támogatja és automatizálja a minőségbiztosítást, gyorsabb hibakeresést, gyorsabb és hibamentesebb élesítést biztosít – végeredményben sok manuális munkát levesz a fejlesztők válláról, így ők ténylegesen a fejlesztéssel tudnak foglalkozni. Megalapoz az egységes, hosszútávon fenntartható működésnek, és kikényszerít egy bizonyos szabályrendszert, így kisebb az esélye, hogy idővel “ahány fejlesztő, annyi irányt” vesz a rendszer.”
A szervezeten belüli implementálás mellett testvérszervezetünk, a Braining Hub témakörei között is megtalálható a CI/CD, csakúgy, mint az agilis és soft skill képzések, vagy a DevOps kurzusok.