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.
Kapcsolódó hivatkozások
- Azure DevOps
- Azure Pipelines
- Párhuzamos feladatok konfigurálása és kifizetése
- Folyamatok ütemezésének konfigurálása
- Ügynökkészletek létrehozása és kezelése
- GitHub for Actions for Azure
- Microsoft által üzemeltetett ügynökök
- Tesztek párhuzamos futtatása bármely tesztfuttatóhoz
- Folyamatokat elindító események megadása
- Feladatok meghatározása a folyamatban
Működési kiválósági ellenőrzőlista
Tekintse meg a javaslatok teljes készletét.