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:

A CI/CD csővezeték szakaszai
A CI/CD csővezeték 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.

Jenkins

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.

Bamboo

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.

CircleCi

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.