CI/CD méretezése és optimalizálása

Egyre népszerűbb a CI/CD munkafolyamat alkalmazása az alkalmazásfejlesztéshez. Ugyanakkor a CI/CD méretezése és optimalizálása kihívást jelent.

Ma megvitatjuk, mi ez a kihívás, és pontosan megvizsgáljuk, hogyan méretezhetjük és optimalizálhatjuk a CI/CD-t. Szóval kövessetek!

Manapság az alkalmazásfejlesztés általában több fejlesztőből álló csapatokban történik. Minden személynek vagy csapatnak megvan a maga szerepe a projektben azáltal, hogy előrelép a maga elkötelezett részében.

Ezután a projekt végén találjuk magunkat, ahol több kódrészletet kell lefordítani. Mindenki munkamódszereitől függően sok időt veszíthet az integráció menedzselése.

A CI/CD, a folyamatos integráció és a folyamatos kézbesítés/telepítés megoldást kínál erre a problémára, és biztosítja a frissítések szükségtelen késedelmek és konfliktusok nélküli kiadását. Értsük meg ezt a folyamatot.

Folyamatos integráció

A CI vagy a Continuous Integration olyan folyamatokat csoportosít, amelyek célja a kódmódosítások és -kiegészítések folyamatos közzététele a projekt egy megosztott ágához. Lehetővé teszi a kód tesztelését, valamint a fejlesztések és változtatások végrehajtását valós időben. A cél az egyes elemek tesztelése tesztek létrehozásával.

Ez az állandó intézkedés lehetővé teszi, hogy ne egy blokkban mindent ellenőrizzünk a végén, és elkerüljük, hogy túl sok elemen dolgozzunk egyszerre. Az egységtesztek elvégzése ezért nagyon hasznos ennek biztosítására. Így könnyebb észlelni a hibákat, ha gondoskodunk arról, hogy a kód jól fordítsa le, és ne hozzon létre regressziót.

Folyamatos szállítás

A folyamatos szállítás vagy CD a folyamatos integrációt és tesztelést egyesíti, amelyek konténerekbe csomagolhatók és gyártásba helyezhetők. Azaz összegyűjti ezeket a kódokat és az elvégzett teszteket, és automatizálással gyártásba helyezi őket.

Még ha emberi beavatkozást is igényel, automatizálódik azáltal, hogy mindazt, ami történt, integrált és teljes módon „adásba” helyezi. Konkrétan a folyamatos forgalmazással úgy fejlesztjük az alkalmazásunkat, hogy gyártásba kerüljön, függetlenül attól, hogy mikor.

  Hogyan csatlakozz egy Discord szerverhez

Folyamatos telepítés

Bár a folyamatos szállítás és a folyamatos telepítés fogalma hasonló, vannak különbségek. Ha a céljuk azonos, vagyis az alkalmazás üzembe helyezése a termelésben, akkor az eléréséhez szükséges eszközök különböznek. Ami elválasztja a folyamatos szállítást a folyamatos telepítéstől, az a kiadás.

Valójában a folyamatos telepítés lehetővé teszi, hogy minden olyan módosítást közvetlenül telepítsünk, amely átlépi a folyamat különböző szakaszait. A folyamatos kézbesítés során a telepítéshez emberi ellenőrzési lépésre van szükség.

CI/CD méretezése

Amikor a mikroszolgáltatások száma növekszik, szinte elkerülhetetlenné válik a CI/CD méretezése. A megnövekedett mikroszolgáltatások száma egyetlen git-tárolóhoz különböző csővezetékeket eredményez, ami növeli a CI-kiszolgáló terhelését és csökkenti a teljesítményt.

A CI/CD méretezéséhez szabványos és automatizált fejlesztési folyamatot kell létrehozni minden csapat számára, és innentől kezdve biztosítani kell az egyéni fejlesztői és csapatszállítások minőségét. A csővezeték kezelését is megkönnyíti.

A méretezés egy CI folyamat meghatározásával valósítható meg az egységtesztek végrehajtására és a szállított kód minőségének ellenőrzésére.

Ezt követi egy CD-folyamat a lemezképek felépítéséhez és a környezetekben való folyamatos telepítéséhez, végül meghatározza a képfájlok felépítésének és az éles környezetben való üzembe helyezésének folyamatát.

A CI/CD méretezésének lépései

Az első lépés a csővezeték összehangolása az építészekkel, a csapatvezetők bevonásával. Követi a Git ágak környezetekhez való hozzárendelését (develop -> fejlesztés és master ->). [homologation and production]). Ezután jön a CI Job minden lehúzási kérésnél és a CD Job kirúgása a leképezett ágak minden változásánál.

A követendő CI-hez és CD-hez egyaránt létrehozható egy Job adatfolyam.

A CI Job Flow 7 lépésből áll:

  • Tekintse meg a Lehívási kérés forrás- és célágát;
  • Ellenőrzi, hogy az egyesítésben nincsenek-e olyan ütközések, amelyek kézi feloldást igényelnek;
  • Futtasson egységteszteket;
  • A csomag összeállítása az integritás és a kód lefordíthatóságának ellenőrzésére;
  • Trigger kód minőségének ellenőrzése;
  • Növelje és véglegesítse a projekt verzióját a forrás ágban;
  • Értesítés a Pull Request Git adattárnak a sikerről vagy kudarcról Webhook vagy Rest API híváson keresztül (Git Repository).

A CD munkafolyamata a következő utat követi:

  • Az értesített fiók ki van jelölve.
  • A műtermék a folyamatban lévő projekt specifikus összeállítási eszközével készül.
  • A műtermék megérkezése után a könyvtári projektek elküldésre kerülnek a Nexusba a műtermék tárolására, és a folyamat befejeződik.
  A seq parancs használata Linuxon

A következő műveleteket hajtják végre:

1. lépés: Létrejön egy Docker-kép a generált műtermékhez, amely a melléktermék verzióját alkalmazza a Docker-képre.

2. lépés: A kép feltöltődik a Docker beállításjegyzékébe.

3. lépés: Üzembe helyezés a Kubernetesen keresztüli lemezkép közzétételével.

A jóváhagyási/gyártási környezetben lévő pályázati projekteknél kövesse a fenti 1. és 2. lépést, majd a következőket:

  • Telepítés a Kubernetesen keresztüli lemezkép-kibocsátással a jóváhagyási környezetben;
  • A munka szünetet tart, hogy megvárja, amíg a bevezetést jóváhagyják a gyártáshoz;
  • Jóváhagyás esetén a jóváhagyott kép gyártásra kerül;
  • Ellenkező esetben jóváhagyóan visszagörgeti a képet.

CI/CD optimalizálás

A CI/CD javítja az alkalmazásfejlesztési ciklust, és megoldja az új kód integrálása és a kézbesítés gyakoriságának növelése által okozott problémát.

Az alábbiakban bemutatjuk, hogyan optimalizálhatja tovább a CI/CD használatát:

Prioritásként kezelje a sérült build javítását

Ha egy build meghibásodik, annak javítása legyen a csapat prioritása. Ha a build nem javítható percek alatt, a csapatnak el kell döntenie, hogy eltávolítja-e a kódot, vagy letiltja a funkciójelzőt.

A hibás build javításának az az ötlete, hogy a build mindig működő kódot fog készíteni, amelyet ki lehet adni.

Kis gyakori bevetések

Általánosságban elmondható, hogy az alkalmazás stabilitása veszélyben van, amikor egy központi telepítés megtörténik. Ezért hajlamosak vagyunk távol tartani egymástól a telepítéseket. Ennek a megközelítésnek az a problémája, hogy túl sok változást halmozunk fel. E változtatások egyike rosszul sülhet el, és arra kényszeríthet bennünket, hogy visszavonjuk a többi működőt.

Alkalmazza a fojtogató mintát, és a bonyolult változtatásokat apróra és egyszerűre bontja. Ha gyakrabban telepíti és kis tételekben dolgozik, kisebb a telepítés kockázata.

Minőségbiztosítási tesztek automatizálása a kockázatcsökkentés érdekében

Valószínűleg mindannyian részt vettünk a „helyi gépemen dolgoztam” forgatókönyvben, mert a helyi fejlesztési környezetek gyakran különböznek egymástól. A helyi környezet és a termelés helye között sok különböző dolog lehet. Optimalizálhatja a CI/CD-t a minőségbiztosítási (QA) feladatok, például a böngészőtesztelés automatizálásával, csökkentve annak kockázatát, hogy egy hiba elérje az élő alkalmazást.

Bízzon az automatizált tesztekben

A CI egy automatizált és megbízható tesztcsomagra támaszkodik annak ellenőrzésére, hogy a fejlesztő mikor integrálja az új kódot. Ha kódot kell fordítani, az első teszt az, hogy lefordítja. Ezután annyi tesztet adhat hozzá, amennyit kritikusnak ítél.

  Az inkognitóelőzmények megtekintése iPhone-on

Hány tesztet kell tartalmazni? Ennek megállapításához ne feledje, hogy a CI célja az, hogy a lehető leggyorsabban visszajelzést adjon. Ha egy fejlesztőnek egy órát kell várnia a visszajelzésre, az nem fog működni. Mindig hiányozni fognak dolgok, de ha hibát észlel a termelésben, hozzon létre egy tesztesetet, és vegye fel a CI hurokba.

Mindig vegye figyelembe a biztonságot

Fontolja meg a CI/CD eszköz biztonságát, mivel az integrálódik a meglévő konfigurációkba vagy környezetekbe. A CI/CD megköveteli, hogy az összes biztonsági tesztelőeszközt programozottan hívják meg, és eredményeiket egy helyen összesítsék. Keressen olyan eszközöket, amelyek API-kkal rendelkeznek az automatikus titkosítási ellenőrzésekhez.

A CI/CD méretezésének és optimalizálásának előnyei

A fejlesztőcsapatok hatékonyságának növelése mellett a CI/CD méretezésének és optimalizálásának más előnyei is vannak, amelyek közül néhány:

Csökkentett rezsi

A fejlesztési órák általában számlázhatók, de mi a helyzet a kód vagy fájlok kézi telepítésével eltöltött idővel? Az áramlás nagy részének automatizálása időt takarít meg a számlázható munkára, amit mindenki értékelni tud. Az automatizált tesztelés azt is lehetővé teszi, hogy hamarabb kudarcot valljon, mint hogy hibákat találjon a minőségbiztosításban vagy a gyártásban, vagy ami még rosszabb, az ügyfél megtalálja azokat. Több hiba javítása ugyanannyi idő alatt egyértelmű győzelem.

Szállítás kevesebb hibával és kisebb kockázattal

A hibákat sokkal korábban észlelheti a fejlesztési folyamat során, ha gyakrabban tesz közzé kisebb változtatásokat. Ha a fejlesztés minden szakaszában automatizált teszteket hajt végre, akkor nem kockáztatja, hogy a hibás kódot a következő szakaszba helyezze, és szükség esetén könnyebb visszaállítani a kisebb változtatásokat.

Gyorsabban reagáljon a piaci feltételekre

A piaci feltételek folyamatosan változnak. Tegyük fel, hogy felfedezi, hogy egy új termék bevétele csökken, vagy hogy több ügyfél éri el webhelyét okostelefonról, mint laptopról. Ebben az esetben sokkal könnyebb a gyors változtatás, ha optimalizálta a folyamatos szállítást.

Bizalom

Ha optimalizált CI/CD-vel rendelkezik, ami azt jelenti, hogy robusztus tesztkészlettel rendelkezik, nagymértékben megnő az önbizalma, hogy nem küld el hibát. Ha átlátható a folyamata, és kioktatja csapata többi tagját és ügyfeleit, akkor az Ön, mint fejlesztőcsapat iránti bizalom is megnő.

Végső szavak

A CI/CD gyorsabbá teszi az integrációkat és a szállításokat. Fontos azonban annak méretezése és optimalizálása annak elkerülése érdekében, hogy a folyamat a növekvő bonyolultság miatt kontraproduktívvá váljon.

Megnézheti a legjobb CI-eszközöket is.