Sdílet prostřednictvím


Klasické kanály pro nasazení

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Klasické kanály verzí poskytují vývojářům architekturu pro efektivní a bezpečné nasazování aplikací do více prostředí. Pomocí klasických kanálů verzí můžete automatizovat procesy testování a nasazení, nastavit flexibilní strategie nasazení, začlenit schvalovací pracovní postupy a zajistit hladké přechody aplikací v různých fázích.

Jak fungují vydávací potrubí

V rámci každého nasazení azure Pipelines provádí následující kroky:

  1. Schválení před nasazením:

    Když se aktivuje nová žádost o nasazení, Azure Pipelines před nasazením verze do fáze ověří, jestli je nezbytné schválení předběžného nasazení. Pokud je schválení potřeba, pošle příslušné schvalovatelům e-mailová oznámení.

  2. Úloha nasazení fronty:

    Azure Pipelines naplánuje úlohu nasazení na dostupném agentu.

  3. Výběr agenta:

    Dostupný agent převezme úlohu nasazení. Vydávací kanál lze nakonfigurovat tak, aby během provádění dynamicky vybral vhodného agenta.

  4. Stažení artefaktů:

    Agent načte a stáhne všechny artefakty zadané ve vydané verzi.

  5. Spusťte úlohy nasazení:

    Agent vykonává všechny úkoly v úloze nasazení.

  6. Vytvořit protokoly o průběhu

    Agent generuje komplexní protokoly pro každý krok nasazení a odesílá je zpět do Azure Pipelines.

  7. Schválení po nasazení:

    Po dokončení nasazení do fáze Azure Pipelines ověří, jestli je pro danou fázi nezbytné schválení po nasazení. Pokud není potřeba schválení nebo jakmile je získáno požadované schválení, zahájí nasazení do další fáze.

Snímek obrazovky znázorňující kroky nasazení ve službě Azure Pipelines

Model nasazení

Kanály vydání Azure podporují širokou škálu zdrojů artefaktů, včetně Jenkins, Azure Artifacts a TeamCity. Následující příklad znázorňuje model nasazení zahrnující využití kanálů pro vydání v Azure.

V následujícím příkladu se kanál skládá ze dvou artefaktů sestavení pocházejících z samostatných kanálů sestavení. Aplikace se nejprve nasadí do fáze vývoje a pak do dvou samostatných fází kontroly kvality . Pokud je nasazení úspěšné v obou fázích kontroly kvality, aplikace se nasadí do okruhu Prod 1 a pak do okruhu Prod 2. Každý produkční okruh představuje více instancí stejné webové aplikace nasazené do různých umístění po celém světě.

Snímek obrazovky znázorňující kroky nasazení vydávacího kanálu.

Vydání vs. nasazování

Vydání je konstrukce, která obsahuje verzovanou sadu artefaktů specifikovaných v CI/CD kanálu. Obsahuje snímek všech informací potřebných k provedení všech úkolů a akcí v potrubí vydání, jako jsou fáze, úlohy a zásady, včetně triggerů, schvalovatelů a možností nasazení. Z jednoho vydávacího kanálu může být více vydání a informace o každém z nich se ukládají a zobrazují v Azure Pipelines po stanovené období uchovávání.

Nasazení je akce spuštění úloh pro jednu fázi, která může zahrnovat spouštění automatizovaných testů, nasazování artefaktů sestavení nebo jakékoli další akce určené pro danou fázi. Spuštění vydání zahájí každou implementaci na základě nastavení a zásad definovaných v původním konstrukčním kanálu vydání. Pro každé vydání může být více nasazení, dokonce i v rámci jedné fáze. Pokud nasazení verze ve fázi selže, můžete stejnou verzi znovu nasadit do této fáze. Pokud chcete znovu nasadit verzi, jednoduše přejděte k verzi, kterou chcete nasadit, a vyberte nasazení.

Následující diagram znázorňuje vztah mezi verzí, procesy vydání a nasazením.

Diagram znázorňující rozdíl mezi verzemi a nasazeními

časté otázky

Otázka: Proč nebylo moje nasazení spuštěno?

A: Vytvoření potrubí pro uvolnění automaticky nespustí nasazení. Tady je několik důvodů, proč k tomu může dojít:

  • Spouštěče nasazení: Definované spouštěče nasazení mohou způsobit, že nasazení bude pozastaveno. K tomu může dojít u plánovaných spouští nebo v případě, že dojde ke zpoždění, dokud není nasazení do jiné fáze dokončeno.

  • Zásady řízení front: Tyto zásady určují pořadí spuštění a kdy jsou vydané verze zařazeny do fronty pro nasazení.

  • Schválení před nasazením nebo brány: Konkrétní fáze mohou vyžadovat schválení nebo brány před nasazením, což brání nasazení, dokud nebudou splněny všechny definované podmínky.

Otázka: Jak můžu upravovat proměnné v době vydání?

A: Na kartě Proměnné vašeho nasazovacího potrubí, zaškrtněte políčko Nastavitelné v době vydání pro proměnné, které chcete upravit, když je verze zařazena do fronty.

Snímek obrazovky znázorňující, jak povolit funkci settable v době vydání

Následně při generování nové verze máte možnost upravit hodnoty těchto proměnných.

Snímek obrazovky znázorňující, jak upravit proměnné v době vydání

Otázka: Kdy by bylo vhodnější upravit vydání namísto kanálu, který ho definuje?

A: Můžete upravit schválení, úkoly a proměnné instance vydání. Tyto úpravy se však budou vztahovat pouze na tuto instanci. Pokud chcete, aby se změny použily pro všechna budoucí vydání, upravte místo toho pipeline vydání.

Otázka: Jaké jsou scénáře, ve kterých je užitečná funkce "opuštění verze"?

A: Pokud nechcete verzi znovu použít nebo chcete zabránit jejímu použití, můžete verzi opustit následujícím způsobem : Pipelines> (...) >Opustit. Zrušit verzi nemůžete, když probíhá nasazování; musíte nejprve zrušit samotné nasazení.

Snímek obrazovky znázorňující, jak opustit vydání

Jak spravovat pojmenování nových verzí?

A: Výchozí konvence pojmenování pro vydávací kanály je pořadové číslování, kde vydání jsou pojmenována Release-1, Release-2 a tak dále. Můžete ale přizpůsobit schéma pojmenování úpravou masky formátu názvu verze. Na kartě Možnosti vašeho publikačního kanálu přejděte na stránku Obecné a upravte formát názvu vydání tak, aby vyhovoval vašim preferencím.

Při zadávání masky formátu můžete použít následující předdefinované proměnné. Příklad: Následující formát názvu verze: Release $(Rev:rrr) pro build $(Build.BuildNumber) $(Build.DefinitionName) vytvoří následující verzi: Verze 002 pro build 20170213.2 MySampleAppBuild.

Proměnná Popis
Rev: rr Automaticky inkrementované číslo s alespoň zadaným počtem číslic.
Datum / Datum: MMddyy Aktuální datum s výchozím formátem MMddyy. Podporují se všechny kombinace M/MM/MMM/MMMM, d/dd/ddd/dddd, y/yy/yyyy/yyyy, h/hh/H/HH, m/mm, s/ss.
System.TeamProject Název projektu, do kterého tento build patří.
Release.ReleaseId ID vydané verze, která je jedinečná pro všechny verze v projektu.
Release.DefinitionName Název vydávacího kanálu, do kterého aktuální verze patří.
Build.BuildNumber Počet sestavení obsažených ve vydané verzi. Pokud má verze více sestavení, je to číslo primárního sestavení.
Build.DefinitionName Název kanálu sestavení obsaženého ve vydané verzi. Pokud má verze více sestavení, jedná se o název kanálu primárního sestavení.
Artifact.ArtifactType Typ zdroje artefaktu propojeného s vydáním. Může to být například Azure Pipelines nebo Jenkins.
Build.SourceBranch Větev primárního zdroje artefaktů. U Gitu je to ve formě main, pokud je větev refs/heads/main. U Řízení verzí Team Foundation se jedná o formát branch, pokud je cesta ke kořenovému serveru pro pracovní prostor $/teamproject/branch. Tato proměnná není nastavená pro Jenkinse ani jiné zdroje artefaktů.
Vlastní proměnná Hodnota vlastnosti globální konfigurace definované ve vydávacím kanálu. Název vydané verze můžete aktualizovat vlastními proměnnými pomocí příkazů protokolování vydané verze.

Otázka: Jak můžu definovat dobu uchovávání pro své verze?

A: Podívejte se na zásady uchovávání informací, abyste se dozvěděli, jak nastavit zásady uchovávání informací pro vaše kanály vydání.