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


Javaslatok a buildelési sebesség javítására

Az Azure Well-Architected Framework operatív kiválósági ellenőrzőlistájára vonatkozó javaslat:

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. Az egyértelmű szerepkör-megjelöléshez szabványosítsa az összetevőkre vonatkozó eljárásokat, például az eszközkezelést, a forrásvezérlést, az alkalmazástervezési mintákat, a dokumentációt és a stíluskalauzokat.

Kapcsolódó útmutatók: Javaslatok az eszközök és folyamatok | szabványosításához– Javaslatok a folyamatos integráció használatára

Ez az útmutató az üzembehelyezési infrastruktúra teljesítményének javítására vonatkozó javaslatokat ismerteti. Fontos, hogy a termékfejlesztés első napján létrejöjjön egy összeállítási folyamat, és futtasson. A buildek a folyamatos kézbesítési rendszer szívverését képezik, mivel a build állapota azt mutatja, hogy mikor telepíthető a termék. A buildek kulcsfontosságú információkat nyújtanak a termék állapotáról, ezért mindig törekedjen a gyors buildekre.

Ha a buildelés hosszabb időt vesz igénybe, nehéz megoldani a buildelési problémát. Ha késések történnek, és normalizálódnak, a csapatok általában kevésbé lesznek motiválva a probléma megoldására.

Főbb tervezési stratégiák

Buildelési idők optimalizálása

A gyorsabb buildeléshez a következő műveleteket végezheti el:

  • Válassza ki a teljesítménykövetelményeknek megfelelő ügynököket: A megfelelő buildelési gépek kiválasztásával felgyorsíthatja a buildeket. A gyors gépek képesek különbséget tenni az órák és a percek között. Ha a folyamatok az Azure Pipelinesban találhatók, a feladatokat egy Microsoft által üzemeltetett ügynökkel futtathatja. A Microsoft által üzemeltetett ügynökök használata esetén a rendszer gondoskodik a karbantartásról és a frissítésekről. További információk: Microsoft által üzemeltetett ügynökök.

  • Optimalizálja a buildkiszolgáló helyét: A kód létrehozásakor a rendszer az adatokat a hálózaton keresztül küldi el. A buildek bemenetei egy forrásvezérlő adattárból és az összetevő-adattárból lesznek beolvasva. A buildelési folyamat kimenetét át kell másolni, beleértve a lefordított összetevőket, a tesztjelentéseket, a kódlefedettségi eredményeket és a hibakeresési szimbólumokat. Fontos, hogy ezek a másolási műveletek gyorsan fussanak. Ha saját buildkiszolgálót használ, győződjön meg arról, hogy a buildkiszolgáló a források és a célhely közelében található. A gyors feltöltések és letöltések csökkenthetik az általános buildelési időt.

  • Buildkiszolgálók vertikális felskálázása: Egy önálló buildkiszolgáló elegendő lehet egy kis termékhez. Mivel a termék mérete és hatóköre, valamint a terméken dolgozó csapatok száma nő, előfordulhat, hogy egyetlen kiszolgáló nem elegendő. Ha eléri a korlátot, horizontálisan skálázza az infrastruktúrát több gépre. További információ: Ügynökkészletek létrehozása és kezelése.

  • A build optimalizálása:

    • Párhuzamos feladatok hozzáadása a létrehozási folyamat felgyorsításához. További információ: Párhuzamos feladatok konfigurálása és fizetése.

    • Párhuzamos tesztcsomagok futtatásának engedélyezése, ami gyakran sok időt takarít meg, különösen integrációs és felhasználói felületi tesztek futtatásakor. További információ: Tesztfuttatók párhuzamos futtatása.

    • Használja a szorzó fogalmát, ahol több buildügynökön skálázhatja fel a buildeket. További információk: Feladatok meghatározása a folyamatban.

    • Fontolja meg az integrációs, felhasználói felületi és füsttesztek kiadási folyamatba való áthelyezését. A kiadási folyamatra való áttérés javítja a buildelési sebességet és a buildvisszacsatolási ciklus sebességét.

    • Tegye közzé a buildösszetevőket egy csomagkezelési megoldásban, például a NuGetben vagy a Mavenben. A csomagkezelési megoldásban való közzététel lehetővé teszi a buildösszetevő egyszerűbb újrafelhasználását.

Az emberi beavatkozás minimalizálása

A szervezet többféle buildet is létrehozhat az összeállítási idők optimalizálása érdekében. A lehetséges buildek a következők:

  • Folyamatos integrációs (CI) build: Ennek a buildnek az a célja, hogy biztosítsa a kód fordítását és az egységtesztek futtatását. Ez a build minden véglegesítésnél aktiválódik. Ez szolgál a projekt szívveréseként, és azonnal minőségi visszajelzést ad a csapatnak. További információ: Folyamatok eseményindító eseményeinek megadása.

  • Éjszakai buildelés: Az éjszakai buildek célja nem csak a kód fordítása, hanem a nagyobb, nem hatékony tesztcsomagok rendszeres futása az egyes buildekhez. Ezek a tesztek általában integrációs, felhasználói felületi vagy füsttesztek. További információ: Folyamatok ütemezésének konfigurálása.

  • Kiadási build: A tesztek összeállítása és futtatása mellett ez a build lefordítja az API dokumentációját, a megfelelőségi jelentéseket, a kódaláírást és egyéb lépéseket is, amelyek nem szükségesek minden alkalommal, amikor a kód létrejön. Ez a build biztosítja a kiadási folyamatba leküldött aranymásolatot, hogy végre üzembe helyezhesse az éles környezetben.

A szervezet által igényelt buildek típusai olyan tényezőktől függnek, mint a csapat és a szervezet érettsége, a termék típusa, amelyen dolgozik, valamint az üzembehelyezési stratégiától.

Az Azure megkönnyítése

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 használatával szolgáltatásokat hozhat létre és bocsáthat ki az alkalmazások folyamatos integrációjának és folyamatos kézbesítésének (CI/CD) támogatására.

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

A Microsoft által üzemeltetett ügynökök natív módon érhetők el az Azure Pipelinesban. Ezek az ügynökök olyan egyszer használatos virtuális gépek, amelyeket csak egy feladathoz használnak, majd elvetnek, ami könnyen kezelhető lehetőséget biztosít a buildekhez.

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

Tekintse meg a javaslatok teljes készletét.