Sdílet prostřednictvím


Doporučení pro zlepšení rychlosti sestavení

Platí pro toto doporučení kontrolního seznamu pro efektivitu provozu azure Well-Architected Framework:

OE:04 Optimalizujte procesy vývoje softwaru a zajištění kvality pomocí osvědčených postupů pro vývoj a testování. V případě jednoznačného označení role 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žití kontinuální integrace

Tato příručka popisuje doporučení pro zlepšení výkonu infrastruktury nasazení. Je důležité mít proces sestavení spuštěný první den vývoje produktu. Sestavení jsou prezenčním signálem systému průběžného doručování, protože stav sestavení se zobrazuje, když je produkt možné nasadit. Buildy poskytují důležité informace o stavu produktu, proto byste měli vždy usilovat o rychlé buildy.

Problém se sestavením je obtížné vyřešit, pokud jeho sestavení trvá déle. Když dochází ke zpožděním a normalizují se, týmy mají tendenci být méně motivované k vyřešení problému.

Klíčové strategie návrhu

Časy 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 hodinou a minutou. Pokud jsou vaše kanály ve službě Azure Pipelines, můžete úlohy spouštět pomocí agenta hostovaného Microsoftem. Když používáte agenty hostované Microsoftem, o údržbu a upgrady se postaráte za vás. Další informace viz Agenti hostovaní Microsoftem.

  • Optimalizace umístění buildového serveru: Při sestavování kódu se data odesílají po síti. 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ů, testovacích sestav, 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í buildovací server, ujistěte se, že se buildovací server nachází v blízkosti zdrojů a cílového umístění. Rychlé nahrávání a stahování může zkrátit celkovou dobu sestavení.

  • Škálování buildových serverů na více instancí: Pro malý produkt může stačit jeden buildovací server. Se zvyšováním velikosti a rozsahu produktu a počtu týmů, které na produktu pracují, nemusí jeden server stačit. Po dosažení limitu horizontálně škálujte infrastrukturu na více počítačích. Další informace najdete v tématu Vytvoření a správa fondů agentů.

  • Optimalizace sestavení:

    • Přidáním paralelních úloh urychlíte proces sestavení. Další informace najdete v tématu Konfigurace a platby za paralelní úlohy.

    • Povolte paralelní spuštění testovací sady, 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 libovolný test runner.

    • Použijte pojem multiplikátoru, kde můžete škálovat sestavení na více agentů sestavení. Další informace viz Zadání úloh v kanálu.

    • Zvažte přesun integračních testů, 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 k 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 znovu použít artefakt sestavení.

Lidský zásah

Vaše organizace se může rozhodnout pro optimalizaci doby sestavení vytvořit několik různých druhů sestavení. Mezi možná sestavení patří:

  • Sestavení kontinuální integrace (CI): Účelem tohoto sestavení je zajistit, aby se kód zkompiloval a spustily testy jednotek. Toto sestavení se aktivuje při každém potvrzení. Slouží jako prezenční signál projektu a okamžitě poskytuje kvalitní zpětnou vazbu týmu. Další informace najdete v tématu Určení událostí, které aktivují kanály.

  • Noční sestavení: Účelem nočního sestavení není jen zkompilovat kód, ale také zajistit, aby se všechny větší testovací sady, které jsou neefektivní, spouštěly v pravidelných intervalech pro každé sestavení. Mezi tyto testy obvykle patří integrační, 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é kompiluje 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. Tento build poskytuje zlatou kopii, která se nasdílí 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 na vaší strategii nasazení.

Usnadnění Azure

Azure DevOps je kolekce služeb, které vám pomůžou vytvářet postupy pro spolupráci, efektivní a konzistentní vývoj.

Pomocí Azure Pipelines můžete sestavovat a vydávat služby, které podporují kontinuální integraci a průběžné doručování (CI/CD) vašich aplikací.

Použití GitHub Actions pro Azure k automatizaci procesů CI/CD a přímé integraci s Azure, aby se zjednodušila nasazení. Můžete také vytvořit pracovní postupy, které sestaví a otestují každou žádost o přijetí změn do úložiště, nebo můžete nasadit sloučené žádosti o přijetí změn do produkčního prostředí pomocí GitHub Actions pro Azure.

Agenti hostovaní Microsoftem jsou k dispozici nativně v Azure Pipelines. Tito agenti jsou virtuální počítače na jedno použití, které se používají jenom pro jednu úlohu a pak se zahodí, což umožňuje snadnou správu sestavení.

Kontrolní seznam provozní efektivity

Projděte si kompletní sadu doporučení.