CI/CD Pipeline: Tanuljon példával
Mi az a CI/CD pipeline?
A CI/CD folyamat automatizálja a szoftverszállítás folyamatát. Kódot készít, teszteket futtat, és segít a szoftver új verziójának biztonságos üzembe helyezésében. A CI/CD folyamat csökkenti a kézi hibák számát, visszajelzést ad a fejlesztőknek, és lehetővé teszi a gyors termékiterációkat.
A CI/CD pipeline automatizálást és folyamatos felügyeletet vezet be a szoftvertermékek teljes életciklusa során. Ez magában foglalja az integrációs és tesztelési szakaszt a szállításig és a telepítésig. Ezeket az összekapcsolt gyakorlatokat CI/CD-folyamatnak nevezzük.
Mi a folyamatos integráció, a folyamatos szállítás és a folyamatos telepítés?
- Folyamatos integráció egy olyan szoftverfejlesztési módszer, ahol a csapat tagjai naponta legalább egyszer integrálhatják munkájukat. Ebben a módszerben minden integrációt egy automatikus build ellenőriz a hiba keresése érdekében.
- Folyamatos szállítás egy olyan szoftverfejlesztési módszer, amelyben egy csapat szoftvertermékeket fejleszt egy rövid ciklus alatt. Ez biztosítja, hogy a szoftver bármikor könnyen kiadható legyen.
- Folyamatos telepítés egy szoftverfejlesztési folyamat, amelyben a termékfunkciók automatikus telepítéssel kerülnek szállításra. Segít a tesztelőknek ellenőrizni, hogy a kódbázis módosításai helyesek-e, és hogy stabilak-e vagy sem.
A CI/CD folyamat szakaszai
A CI/CD folyamat egy futtatható specifikációja azoknak a lépéseknek, amelyeket minden fejlesztőnek végre kell hajtania bármely szoftver új verziójának beszerzéséhez. Minden egyes szakasz sikertelensége e-mailben értesíti, Slack, vagy más kommunikációs platformokon. Lehetővé teszi a felelős fejlesztők számára, hogy tájékozódjanak a fontos kérdésekről.
Íme a CI/CD folyamat fontos szakaszai:

Forrás Stage
A forrás szakaszban a CI/CD folyamatot egy kódtár indítja el. A program bármely módosítása értesítést küld a CI/CD eszköznek, amely egyenértékű folyamatot futtat. Egyéb gyakori triggerek közé tartoznak a felhasználó által kezdeményezett munkafolyamatok, az automatizált ütemezések és más folyamatok eredményei.
Építési színpad
Ez a CI/CD Pipeline második szakasza, amelyben egyesíti a forráskódot és annak függőségeit. Főleg egy futtatható szoftverpéldány létrehozására szolgál, amelyet potenciálisan elküldhet a végfelhasználónak.
Olyan nyelveken írt programok, mint pl C++, Java, C vagy Go nyelvet kell lefordítani. Másrészt, JavaForgatókönyv, Python, és a Ruby programok az összeállítási szakasz nélkül is működhetnek.
Az összeállítási szakasz elmulasztása azt jelenti, hogy alapvetően rossz a projekt konfigurációja, ezért jobb, ha azonnal orvosolja ezt a problémát.
Tesztszakasz
A Test Stage magában foglalja az automatizált tesztek végrehajtását a kód helyességének és a szoftver viselkedésének ellenőrzésére. Ez a szakasz megakadályozza, hogy a könnyen reprodukálható hibák eljussanak az ügyfelekhez. Az automatizált tesztek megírása a fejlesztők felelőssége.
Telepítse a szakaszt
Ez az utolsó szakasz, amikor a termék életbe lép. Miután a build sikeresen átment az összes szükséges tesztforgatókönyvön, készen áll az éles kiszolgálón való üzembe helyezésre.
Példa a CI/CD csővezetékre
Íme egy példa a CI/CD folyamatra:
- Forráskód vezérlése: Gazdakód a GitHubon privát tárhelyként. Ez segít abban, hogy alkalmazását integrálja a főbb szolgáltatásokkal és szoftverekkel.
- Folyamatos integráció: Folyamatos integrációs és szállítási platform használata CircleCI és végrehajtani minden kódot. Amikor a változások értesítik, ez az eszköz lekéri a GitHubban elérhető kódot, és feldolgozza a teszt létrehozását és futtatását.
- Kód telepítése az UAT-ba: konfigurálása CircleCI hogy telepítse a kódot az AWS UAT-kiszolgálóra.
- Üzembe helyezés: Folyamatos integrációs lépéseket újra fel kell használnia a kód UAT-ba való üzembe helyezéséhez.
CI/CD pipeline legjobb gyakorlatok
Íme egy CI/CD-folyamat bevált gyakorlatai:
- Írja le az aktuális fejlesztési folyamatot, így ismerheti a változtatást igénylő és könnyen automatizálható eljárásokat.
- Kezdje a projekt egy kis bizonyításával, mielőtt továbblépne, és fejezze be az egész fejlesztési folyamatot egyszerre.
- Hozzon létre egy több szakaszból álló folyamatot, amelyben először a gyors alaptesztek futnak le.
- Minden munkafolyamatot ugyanabból a tiszta és elszigetelt környezetből indíthat.
- Futtasson nyílt forráskódú eszközöket, amelyek a kódstílustól a biztonsági ellenőrzésig mindent lefednek.
- Állítson be egy jobb kódközpontot a kód minőségének folyamatos ellenőrzéséhez azáltal, hogy minden ágon futtatja a szabványos tesztkészletet.
- A szakértői kód minden lekérési kérelmet felülvizsgál a probléma együttműködési módon történő megoldása érdekében.
- A CD-automatizálásra való átállás megkezdése előtt meg kell határoznia a sikermutatókat. Ez segít Önnek a szoftver következetes elemzésében, és a fejlesztési előrehaladást segíti a finomításban, ahol szükséges.
A CI/CD csővezetékek előnyei
Íme a CI/CD Pipeline előnyei/előnyei:
- Az építés és a tesztelés manuálisan egyszerűen elvégezhető.
- Javíthatja a kód konzisztenciáját és minőségét.
- Javítja a rugalmasságot, és képes új funkciók szállítására.
- A CI/CD csővezeték egyszerűsítheti a kommunikációt.
- Automatizálhatja a szoftverszállítás folyamatát.
- Segít gyorsabb ügyfél-visszajelzés elérésében.
- A CI/CD folyamat segít a termék láthatóságának növelésében.
- Lehetővé teszi a kézi hibák eltávolítását.
- Csökkenti a költségeket és a munkaerőt.
- A CI/CD folyamatok felgyorsíthatják a szoftverfejlesztés életciklusát.
- Automatizált csővezeték-telepítéssel rendelkezik.
- A CD-folyamat gyors visszacsatolást biztosít a fejlesztőtől az ügyfélig.
- Javítja a kommunikációt a szervezet alkalmazottai között.
- Lehetővé teszi a fejlesztők számára, hogy megtudják, hogy a build mely változtatásai fordulhatnak a közvetítő felé, és hogy ezeket a jövőben elkerüljék.
- Az automatizált tesztek, valamint néhány kézi tesztfutás segítik az esetlegesen felmerülő problémák megoldását.
Fontos CI/CD eszközök
Íme a fontos CI/CD eszközök:
1) Jenkins
A Jenkins egy nyílt forráskódú folyamatos integrációs kiszolgáló, amely segít a folyamatos integrációs folyamat (és nem csak) automatikus megvalósításában. A Jenkins ingyenes, és teljesen be van írva Java. A Jenkins egy világszerte széles körben használt alkalmazás, amely körülbelül 300 XNUMX telepítéssel rendelkezik, és napról napra növekszik.
Jellemzők:
- A Jenkin a nap folyamán sokszor elkészíti és teszteli a kódot.
- Automatizált építési és tesztelési folyamat, amely időt takarít meg és csökkenti a hibákat.
- A kód minden sikeres felépítés és tesztelés után kerül telepítésre.
- A fejlesztési ciklus gyors.
Link: https://www.jenkins.io/download/
2) Bamboo
Bamboo egy folyamatos integrációs összeállítású szerver, amely egyetlen helyen hajt végre – automatikus összeállítást, tesztelést és kiadást. Zökkenőmentesen működik a JIRA szoftverrel és a Bitbucket-tel.
Jellemzők:
- Futtasson párhuzamos kötegelt teszteket
- Felállítása Bamboo elég egyszerű
- A környezetenkénti engedélyek funkció lehetővé teszi a fejlesztők és a minőségbiztosítási szervek számára, hogy telepítsék a környezetükben
- Beépített Git elágazás és munkafolyamatok. Automatikusan egyesíti az ágakat.
Link: https://www.atlassian.com/software/bamboo
3) CircleCi
CircleCi egy rugalmas CI-eszköz, amely bármilyen környezetben fut, például egy többplatformos mobilalkalmazásban, Python API-kiszolgáló vagy Docker-fürt. Ez az eszköz csökkenti a hibákat és javítja az alkalmazás minőségét.
Jellemzők:
- Lehetővé teszi a Build Environment kiválasztását
- Számos nyelvet támogat, beleértve C++, JavaScript, NET, PHP, Python, és Ruby
- A Docker támogatásával testreszabott környezetet konfigurálhat.
- Automatikusan megszakít minden sorban álló vagy futó buildet, ha egy újabb build aktiválódik.
Link: https://circleci.com/
Miért fontos a CI/CD Pipeline az IT-vezetők számára?
- A CI/CD csővezeték javíthatja a megbízhatóságot.
- Ez vonzóbbá teszi az IT csapatot a fejlesztők számára.
- A CI/CD-folyamat segíti az IT-vezetőket, hogy kódot vonjanak ki a verziókezelésből és végrehajtsák a szoftverépítést.
- Segít a kód áthelyezésében a cél számítástechnikai környezetbe.
- Lehetővé teszi a projektvezetők számára a környezeti változók egyszerű kezelését és a célkörnyezethez való konfigurálását.
- A projektmenedzserek push alkalmazás-összetevőket tehetnek közzé olyan szolgáltatásokban, mint a webszolgáltatások, adatbázis-szolgáltatások, API-szolgáltatások stb.
- Naplóadatok és riasztások biztosítása a szállítási állapotról.
- Lehetővé teszi a programozók számára, hogy ellenőrizzék a kódmódosításokat, mielőtt továbblépnének, csökkentve annak esélyét, hogy a hibák a gyártásban végződjenek.
Ci/CD Pipeline KPI
- Ciklus vagy telepítési idő: A ciklusidő az az idő, amely az építési szakasztól a gyártásig tart. Az átlagos életciklus-időt a fejlesztési folyamat fázisainak mérésével kaphatja meg. Ez a mérőszám betekintést nyújt a folyamat szűk keresztmetszeteibe és a fejlesztési idő általános sebességébe.
- Fejlesztési gyakoriság: A fejlesztési gyakoriság lehetővé teszi az automatizálás során talált szűk keresztmetszetek elemzését. A gyakrabban előforduló kisebb kiadások csökkentik a hibák kockázatát, és ha megtalálják, javítják azokat. Ez a mérőszám a csapat hatékonyságának általános mérőszáma.
- Átfutási idő módosítása: Méri a fejlesztési szakasz kezdő időpontját a telepítésig. Ez a mérőszám a teljes fejlesztési folyamat mutatója, és azt, hogy a csapat mennyire működik együtt.
- Meghibásodási arány módosítása: Arra összpontosít, hogy hányszor sikerül a fejlesztés, illetve hányszor sikertelen.
- MTTR vs. MTTF: Az MTTR (Mean Time to Recovery) az az idő, amelyre a csapatnak szüksége van ahhoz, hogy felépüljön a kudarcból. Az MTTF (Mean Time to Failure) a javítások és a kimaradások közötti időt méri. Ezek a mutatók azt tükrözik, hogy a csapat mennyire képes reagálni és megoldani a problémákat.
Összegzésként
- A CI/CD folyamat automatizálja a szoftverszállítás folyamatát.
- A CI/CD pipeline automatizálást és folyamatos felügyeletet vezet be a szoftvertermékek teljes életciklusa során.
- A folyamatos integráció egy olyan szoftverfejlesztési módszer, ahol a csapat tagjai naponta legalább egyszer integrálhatják munkájukat.
- A folyamatos szállítás olyan szoftverfejlesztési módszer, amelyben egy csapat rövid cikluson belül szoftvertermékeket fejleszt.
- A folyamatos üzembe helyezés egy olyan szoftverfejlesztési folyamat, amelyben a termékfunkciók automatikus telepítéssel kerülnek szállításra.
- A CI/CD folyamatnak négy szakasza van: 1) Forrás szakasz, 2) Összeállítási szakasz, 3) Teszt szakasz, 4) Telepítési szakasz.
- fontos CI/CD eszközök a Jenkins, a Bambo és a Circle CI.
- A CI/CD csővezeték javíthatja a megbízhatóságot.
- A CI/CD folyamat vonzóbbá teszi az IT csapatot a fejlesztők számára.
- A ciklusidő az az idő, amely az építési szakasztól a gyártásig tart.
- A fejlesztési gyakoriság lehetővé teszi az automatizálás során talált szűk keresztmetszetek elemzését.
- A változás átfutási ideje a fejlesztési szakasz kezdő időpontját méri a telepítésig.
- A sikertelenségi arány módosítása arra összpontosít, hogy hányszor sikerült a fejlesztés, illetve a sikertelenségek száma.
- Az MTTR (Mean Time to Recovery) az az idő, amelyre a csapatnak szüksége van ahhoz, hogy felépüljön a kudarcból.
- Az MTTF (Mean Time to Failure) a javítások és a kimaradások közötti időt méri.