Doporučení pro zlepšení rychlosti sestavování
Platí pro toto doporučení kontrolního seznamu provozní efektivity architektury Azure Well-Architected Framework:
OE:04 | Optimalizujte procesy vývoje softwaru a kontroly kvality pomocí osvědčených postupů pro vývoj a testování. Pro jednoznačné označení rolí standardizujte postupy napříč komponentami, jako jsou nástroje, správa zdrojového kódu, vzory návrhu aplikací, dokumentace a průvodci styly. |
---|
Související příručky: Doporučení pro standardizaci nástrojů a procesů | Doporučení pro používání kontinuální integrace
Tato příručka popisuje doporučení pro zlepšení výkonu infrastruktury nasazení. Je důležité, aby se proces sestavení zprovozní a spustil první den vývoje produktu. Sestavení jsou prezenční signál systému průběžného doručování, protože stav sestavení ukazuje, kdy je možné produkt nasadit. Buildy poskytují zásadní informace o stavu vašeho produktu, takže byste měli vždy usilovat o rychlé buildy.
Problém sestavení je obtížné vyřešit, pokud sestavení trvá déle. Když dojde ke zpožděním a stane se normalizováno, týmy mají tendenci být méně motivované k vyřešení problému.
Klíčové strategie návrhu
Optimalizace časů sestavení
Pokud chcete provádět rychlejší sestavení, můžete:
Zvolte agenty, kteří splňují vaše požadavky na výkon: Urychlíte sestavení výběrem správných počítačů sestavení. Rychlé počítače můžou mít rozdíl mezi hodinami a minutami. Pokud jsou vaše kanály ve službě Azure Pipelines, můžete úlohy spouštět pomocí agenta hostovaného Microsoftem. Při používání agentů hostovaných Microsoftem se o údržbu a upgrady postaráme za vás. Další informace viz Agenti hostovaní Microsoftem.
Optimalizujte umístění buildového serveru: Při sestavování kódu se data odesílají přes drát. Vstupy do sestavení se načítají z úložiště správy zdrojového kódu a úložiště artefaktů. Výstup z procesu sestavení je potřeba zkopírovat, včetně zkompilovaných artefaktů, sestav testů, výsledků pokrytí kódu a symbolů ladění. Je důležité, aby se tyto akce kopírování spouštěly rychle. Pokud používáte vlastní buildový server, ujistěte se, že se buildový server nachází poblíž zdrojů a cílového umístění. Rychlé nahrávání a stahování může zkrátit celkovou dobu sestavení.
Horizontální navýšení kapacity buildovacích serverů: Pro malý produkt může stačit jeden buildovací server. S tím, jak se velikost a rozsah produktu a počet týmů pracujících na produktu zvyšuje, nemusí být jeden server dostatečný. Škálujte infrastrukturu horizontálně na více počítačů, jakmile dosáhnete limitu. Další informace najdete v tématu Vytváření a správa fondů agentů.
Optimalizace sestavení:
Přidejte paralelní úlohy, které urychlují proces sestavení. Další informace najdete v tématu Konfigurace a platba za paralelní úlohy.
Povolte paralelní běhy sady testů, které často šetří velké množství času, zejména při spouštění integračních testů a testů uživatelského rozhraní. Další informace najdete v tématu Paralelní spouštění testů pro všechny spouštěče testů.
Použijte pojem násobitele, kde můžete škálovat sestavení na více agentů sestavení. Další informace viz Zadání úloh v kanálu.
Zvažte přesun integrace, uživatelského rozhraní a orientačních testů do kanálu verze. Přechod na kanál verze zlepšuje rychlost sestavení a rychlost smyčky zpětné vazby sestavení.
Publikujte artefakty sestavení do řešení pro správu balíčků, jako je NuGet nebo Maven. Publikování do řešení pro správu balíčků umožňuje snadněji používat artefakt sestavení.
Minimalizace lidského zásahu
Vaše organizace se může rozhodnout vytvořit několik různých druhů sestavení pro optimalizaci časů sestavení. Mezi možné buildy patří:
Sestavení kontinuální integrace (CI): Účelem tohoto sestavení je zajistit kompilaci kódu a spuštění testů jednotek. Toto sestavení se aktivuje při každém potvrzení. Slouží jako prezenční signál projektu a okamžitě poskytuje týmu kvalitní zpětnou vazbu. Další informace naleznete v tématu Určení událostí, které aktivují kanály.
Noční sestavení: Účelem nočního sestavení není pouze kompilovat kód, ale také zajistit, aby všechny větší testovací sady, které jsou neefektivní při pravidelném tempu jednotlivých sestavení. Tyto testy obvykle zahrnují integraci, uživatelské rozhraní nebo orientační testy. Další informace najdete v tématu Konfigurace plánů pro kanály.
Sestavení vydané verze: Kromě kompilace a spouštění testů toto sestavení také zkompiluje dokumentaci k rozhraní API, sestavy dodržování předpisů, podepisování kódu a další kroky, které se nevyžadují při každém sestavení kódu. Toto sestavení poskytuje zlatou kopii, která se odešle do kanálu verze, aby se nakonec nasadila v produkčním prostředí.
Typy sestavení, které vaše organizace potřebuje, závisí na faktorech, mezi které patří vyspělost vašeho týmu a organizace, druh produktu, na kterém pracujete, a strategii nasazení.
Usnadnění azure
Azure DevOps je kolekce služeb, které vám pomůžou vytvořit efektivní a konzistentní vývojový postup pro spolupráci.
Využijte Azure Pipelines k vytváření a vydávání služeb pro podporu kontinuální integrace a průběžného doručování (CI/CD) vašich aplikací.
Pomocí GitHub Actions pro Azure můžete automatizovat procesy CI/CD a integrovat je přímo s Azure, abyste zjednodušovali nasazení. Můžete také vytvářet pracovní postupy, které sestavují a testují všechny žádosti o přijetí změn ve vašem úložišti nebo nasazují sloučené žádosti o přijetí změn do produkčního prostředí pomocí GitHub Actions pro Azure.
Agenti hostovaní Microsoftem jsou nativně k dispozici v Azure Pipelines. Tito agenti jsou virtuální počítače s jedním použitím, které se používají jenom pro jednu úlohu, a pak se zahodí, což poskytuje možnost snadné správy pro vaše sestavení.
Související odkazy
- Azure DevOps
- Azure Pipelines
- Konfigurace a placení paralelních úloh
- Konfigurace plánů pro kanály
- Vytváření a správa fondů agentů
- GitHub for Actions for Azure
- Agenti hostovaní Microsoftem
- Paralelní spouštění testů pro všechny spouštěče testů
- Určení událostí, které aktivují kanály
- Zadání úloh v kanálu
Kontrolní seznam pro efektivitu provozu
Projděte si kompletní sadu doporučení.