Megosztás a következőn keresztül:


Javaslatok a folyamatos integráció használatához

Az Azure Well-Architected Framework működési kiválósági ellenőrzőlistájára vonatkozó javaslatra vonatkozik:

OE:04 Optimalizálja a szoftverfejlesztési és minőségbiztosítási folyamatokat az iparágban bevált fejlesztési és tesztelési eljárások követésével. A szerepkör egyértelmű megjelöléséhez szabványosítsa a különböző összetevőkre, például az eszközökre, a verziókövetésre, az alkalmazástervezési mintákra, a dokumentációra és a stílusokra vonatkozó útmutatókat.

Kapcsolódó útmutató: A build sebességének | javításaEszközök és folyamatok szabványosítása

A kód fejlesztésével, frissítésével vagy eltávolításával egy intuitív és biztonságos módszerrel integrálhatja ezeket a módosításokat a fő kódágba, így a fejlesztők értéket biztosíthatnak.

Fejlesztőként kisebb kódmódosításokat hajthat végre, leküldheti ezeket a módosításokat egy kódtárba, és szinte azonnal visszajelzést kaphat a minőségről, a tesztlefedettségről és a bevezetett hibákról. Ezzel a folyamattal gyorsabban, magabiztosabban és kevesebb kockázattal dolgozhat.

A folyamatos integráció (CI) egy olyan gyakorlat, amelyben a forrásvezérlő rendszerek és a szoftvertelepítési folyamatok integrálva vannak, hogy automatizált buildelési, tesztelési és visszajelzési mechanizmusokat biztosítsanak a szoftverfejlesztő csapatok számára.

Kulcsfontosságú tervezési stratégiák

A folyamatos integráció olyan szoftverfejlesztési gyakorlat, amellyel a fejlesztők rendszeresen integrálják a szoftverfrissítéseket egy verziókövetési rendszerbe.

A folyamatos integrációs folyamat akkor kezdődik, amikor egy mérnök létrehoz egy GitHub-lekéréses kérelmet, amely jelzi a CI-rendszernek, hogy a kódmódosítások készen állnak az integrálásra. Ideális esetben az integrációs folyamat számos alapkonfiguráció és teszt alapján ellenőrzi a kódot. Ezután visszajelzést küld a kérelmező mérnöknek a tesztek állapotáról.

Ha az alapkonfiguráció ellenőrzése és tesztelése jól megy, az integrációs folyamat létrehozza és előkészíti azokat az eszközöket, amelyek üzembe helyezik a frissített szoftvert. Ezek közé tartoznak a lefordított kód és a tárolórendszerképek.

A folyamatos integráció az alábbi műveletek végrehajtásával segíthet a kiváló minőségű szoftverek gyorsabb biztosításában:

  • Futtasson automatizált teszteket a kódon a kompatibilitástörő változások korai észleléséhez.
  • Kódelemzés futtatásával biztosíthatja a kódszabványokat, a minőséget és a konfigurációt.
  • A megfelelőségi és biztonsági ellenőrzések futtatásával győződjön meg arról, hogy a szoftver nem rendelkezik ismert biztonsági résekkel.
  • Futtasson elfogadási vagy funkcionális teszteket, hogy a szoftver a várt módon működjön.
  • Gyors visszajelzés küldése az észlelt problémákról.
  • Adott esetben üzembe helyezhető eszközöket vagy csomagokat hozhat létre, amelyek tartalmazzák a frissített kódot.

Folyamatos integrációs folyamatok

A folyamatos integráció érdekében szoftvermegoldásokkal kezelheti, integrálhatja és automatizálhatja a folyamatot. Gyakori eljárás a folyamatos integrációs folyamat használata.

A folyamatos integrációs folyamat magában foglal egy (gyakran felhőben üzemeltetett) szoftvert, amely a következőket biztosítja:

  • Automatizált tesztek futtatására szolgáló platform.
  • Megfelelőségi vizsgálatok.
  • Jelentési.
  • A folyamatos integrációs folyamatot alkotó összes többi összetevő.

A folyamatszoftver a legtöbb esetben a forrásvezérlőhöz van csatolva, így a lekéréses kérelmek létrehozásakor vagy a szoftverek egy adott ágba való egyesítésekor a rendszer futtatja a folyamatos integrációs folyamatot. A verziókövetés integrációja lehetőséget nyújt arra is, hogy a CI visszajelzést küldjön közvetlenül a lekéréses kérelmekről.

Számos megoldás, például az Azure Pipelines vagy a GitHub Actions biztosítja a folyamatos integrációs folyamatok képességeit.

Verziókövetés integrálása

A folyamatos integrációs folyamat és a verziókövetési rendszer integrálása kulcsfontosságú a gyors, önkiszolgáló kódbefizetések engedélyezéséhez.

A CI-folyamat egy újonnan létrehozott lekéréses kérelemen fut. A folyamat magában foglalja az összes tesztet, biztonsági értékelést és egyéb ellenőrzést. A CI-teszteredmények közvetlenül a lekéréses kérelemben jelennek meg, így szinte valós idejű visszajelzést kaphatnak a minőségről.

Egy másik népszerű eljárás a kis jelentések vagy jelvények készítése, amelyek a verziókövetésben megjeleníthetők, hogy láthatóvá tegyék az aktuális buildállapotokat.

Az alábbi képen a GitHub és egy Azure DevOps-folyamat közötti integráció látható. Ebben a példában egy lekéréses kérelem létrehozása aktivál egy Azure DevOps-folyamatot. A folyamat állapota megjelenik a lekéréses kérelemben.

Képernyőkép egy Azure DevOps-állapotjelvényről egy GitHub-adattárban.

Integráció tesztelése

A folyamatos integráció kulcsfontosságú eleme a kód folyamatos létrehozása és tesztelése, mivel a fejlesztők kód-hozzájárulást végeznek. A létrehozott lekéréses kérelmek tesztelése gyors visszajelzést ad arról, hogy a véglegesítés nem vezetett be kompatibilitástörő változásokat. Ennek az az előnye, hogy a folyamatos integrációs folyamat tesztjei ugyanazok a tesztek lehetnek, amelyek a tesztalapú fejlesztés során futnak.

Az alábbi kódrészlet egy Azure DevOps-folyamat tesztlépését mutatja be. A lépés két tevékenységből áll:

  • Az első feladat egy népszerű Python-tesztelési keretrendszert használ a CI-tesztek futtatásához. Ezek a tesztek a Python-kód mellett a verziókövetésben is találhatók. A teszteredmények egytest-results.xmlnevű fájlba kerülnek .
  • A második feladat felhasználja a teszteredményeket, és integrált jelentésként közzéteszi őket az Azure DevOps-folyamatban.
- script: |
    pip3 install pytest
    pytest azure-vote/azure-vote/tests/ --junitxml=junit/test-results.xml
    continueOnError: true

- task: PublishTestResults@2
    displayName: 'Publish Test Results'
    inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '**/test-results.xml'
    failTaskOnFailedTests: true
    testRunTitle: 'Python $(python.version)'

Az alábbi képen az Azure DevOps portálon megjelenő teszteredmények láthatók.

Képernyőkép az Azure DevOps-folyamattesztekről az Azure DevOps portálon.

Sikertelen tesztek

A sikertelen teszteknek ideiglenesen le kell tiltania az üzembe helyezést, és mélyebb elemzést kell végeznie a történtekről. A sikertelen tesztek a tesztek finomításához vagy a tesztek sikertelenségéhez vezető változás javulásához is vezethetnek.

CI-eredmények jelvényei

Számos fejlesztő azt mutatja, hogy a kód minősége magas, ha egy állapotjelvényt jelenít meg az adattárban. Az alábbi képen egy Azure Pipelines-jelvény látható, amely a GitHubon egy nyílt forráskódú projekt readme fájljában jelenik meg.

Képernyőkép egy Azure Pipelines-jelvényről a GitHub egy olvasófájlján.

Azure-beli segítségnyújtás

Az Azure DevOps olyan szolgáltatások gyűjteménye, amelyek segítenek egy együttműködési, hatékony és konzisztens fejlesztési gyakorlat kialakításában.

Az Azure Pipelines buildelési és kiadási szolgáltatásokat biztosít az alkalmazások folyamatos integrációjának és folyamatos továbbításának (CI/CD) támogatásához.

Az Azure-hoz készült GitHub for Actions lehetővé teszi a CI/CD-folyamatok automatizálását. Az üzembe helyezés egyszerűsítése érdekében közvetlenül integrálható az Azure-ral. Létrehozhat olyan munkafolyamatokat, amelyek létrehoznak és tesztelnek minden lekéréses kérelmet az adattárban, vagy amelyek egyesített lekéréses kérelmeket helyeznek üzembe éles környezetben.

Ismerje meg, hogyan hozhat létre folyamatos integrációs folyamatot a GitHub vagy az Azure DevOps használatával:

Megtudhatja, hogyan jeleníthet meg jelvényeket az adattárakban:

Működési kiválósági ellenőrzőlista