Principy úloh pracovních postupů
Pracovní postupy umožňují automatizovat kroky v procesu nasazení. Váš proces může obsahovat několik logických skupin úloh, které chcete spustit. V této lekci se dozvíte o úlohách pracovních postupů a o tom, jak je používáte k přidání procesů řízení kvality do nasazení Bicep.
Co jsou úlohy pracovního postupu?
Úlohy vám pomůžou rozdělit pracovní postup do několika logických bloků. Každá úloha může obsahovat jeden nebo více kroků.
Úlohy můžete v pracovním postupu použít k označení oddělení obav. Když například pracujete s kódem Bicep, ověření kódu je samostatným problémem od nasazení souboru Bicep. Při použití automatizovaného pracovního postupu se sestavení a testování kódu často označuje jako kontinuální integrace (CI). Nasazení kódu v automatizovaném pracovním postupu se často označuje jako průběžné nasazování (CD).
V úlohách CI zkontrolujete platnost změn provedených v kódu. Úlohy CI poskytují záruku kvality. Můžou se spouštět, aniž by to mělo vliv na vaše živé produkční prostředí.
V mnoha programovacích jazycích je potřeba vytvořit kód, aby ho někdo mohl spustit. Při nasazení souboru Bicep se převedou nebo převedou z Bicep na JSON. Nástroje tento proces provádí automaticky. Ve většině situací nemusíte kód Bicep vytvářet ručně do šablon JSON v rámci pracovního postupu. Termín kontinuální integrace stále používáme, když ale mluvíme o kódu Bicep, protože ostatní části CI stále platí, například ověřování kódu.
Po úspěšném spuštění úloh CI byste měli získat větší jistotu, že provedené změny se také úspěšně nasadí. V úlohách CD nasadíte kód do každého prostředí. Obvykle začínáte s testovacími a jinými neprodukčními prostředími a pak přejdete do produkčních prostředí. V tomto modulu nasadíme do jednoho prostředí. V budoucím modulu se dozvíte, jak rozšířit pracovní postup nasazení na více prostředí, jako jsou neprodukční a produkční prostředí.
Úlohy se ve výchozím nastavení spouští paralelně. Můžete řídit, jak a kdy se jednotlivé úlohy spustí. Úlohy CD můžete například nakonfigurovat tak, aby běžely až po úspěšném spuštění úloh CI. Nebo můžete mít několik úloh CI, které se musí spouštět v sekvenci, například k sestavení kódu a jeho následnému otestování. Můžete také zahrnout úlohu vrácení zpět , která se spustí jenom v případě, že předchozí úlohy nasazení selhaly.
Posun doleva
Pomocí úloh můžete před nasazením ověřit kvalitu kódu. Tento proces se někdy označuje jako posun doleva.
Představte si časovou osu aktivit, které provádíte při psaní kódu. Časová osa začíná fázemi plánování a návrhu. Pak se přesune do fází sestavování a testování. Nakonec nasadíte a budete muset podporovat vaše řešení.
Je to dobře pochopitelné pravidlo při vývoji softwaru, které dříve v procesu, kdy najdete chybu – blíže nalevo od časové osy – tím jednodušší, rychlejší a levnější je opravit. Později v procesu, který zachytíte chybu, tím obtížnější a složitější bude oprava.
Cílem je tedy posunout zjišťování problémů směrem nalevo od předchozího diagramu. V tomto modulu se dozvíte, jak do pracovního postupu přidat další ověřování a testování.
Ověření můžete dokonce přidat ještě před zahájením nasazení. Když pracujete s nástroji, jako je GitHub, žádosti o přijetí změn obvykle představují změny, které chce někdo ve vašem týmu provést v kódu ve vaší hlavní větvi. Je užitečné vytvořit další pracovní postup, který automaticky spustí kroky CI během procesu kontroly žádosti o přijetí změn. Tato technika pomáhá ověřit, že kód stále funguje i s navrhovanými změnami. Pokud ověření proběhne úspěšně, máte jistotu, že změna nezpůsobí problémy při sloučení do hlavní větve. Pokud se kontrola nezdaří, víte, že existuje ještě více práce, než bude žádost o přijetí změn připravená ke sloučení. V budoucím modulu se dozvíte více o nastavení správného procesu vydávání verzí pomocí žádostí o přijetí změn a strategií větvení.
Důležité
Automatizované ověřování a testy jsou stejně efektivní jako testy, které píšete. Je důležité vzít v úvahu věci, které potřebujete otestovat, a kroky, které potřebujete provést, abyste měli jistotu, že vaše nasazení je v pořádku.
Definování úlohy pracovního postupu
Každý pracovní postup obsahuje alespoň jednu úlohu a můžete definovat více úloh tak, aby vyhovovaly vašim požadavkům. Úlohy se ve výchozím nastavení spouští paralelně. Typ účtu GitHubu, který máte, určuje počet úloh, které můžete spustit současně při použití spouštěčů hostovaných na GitHubu.
Představte si, že jste vytvořili soubor Bicep, který potřebujete nasadit dvakrát: jednou do infrastruktury v USA a jednou do infrastruktury v Evropě. Chcete také ověřit kód Bicep v pracovním postupu. Tady je obrázek pracovního postupu s více úlohami, který definuje podobný proces:
Všimněte si, že tento příklad má tři úlohy. Úloha Ověření je podobná úloze CI. Potom se spustí úlohy Deploy US and Deploy Europe (Nasadit USA a Nasadit Evropu). Každý nasadí kód do jednoho z prostředí. Ve výchozím nastavení se úlohy spouští paralelně.
Úlohy se definují v souboru YAML pracovního postupu:
name: learn-github-actions
on: [push]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- run: echo "Here is where you'd perform the validation steps."
deployUS:
runs-on: windows-latest
steps:
- run: echo "Here is where you'd perform the steps to deploy to the US region."
deployEurope:
runs-on: ubuntu-latest
steps:
- run: echo "Here is where you'd perform the steps to deploy to the European region."
Řízení posloupnosti úloh
Můžete přidat závislosti mezi úlohami a změnit pořadí. Když budete pokračovat v předchozím příkladu, pravděpodobně budete chtít před spuštěním úloh nasazení ověřit svůj kód, například takto:
Pomocí klíčového needs
slova můžete určit závislosti mezi úlohami:
name: learn-github-actions
on: [push]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- run: echo "Here is where you'd perform the validation steps."
deployUS:
runs-on: windows-latest
needs: validate
steps:
- run: echo "Here is where you'd perform the steps to deploy to the US region."
deployEurope:
runs-on: ubuntu-latest
needs: validate
steps:
- run: echo "Here is where you'd perform the steps to deploy to the European region."
Když použijete needs
klíčové slovo, pracovní postup čeká na úspěšné dokončení závislé úlohy, než spustí další úlohu. Pokud pracovní postup zjistí, že všechny závislosti pro více úloh byly splněny, může tyto úlohy spustit paralelně.
Poznámka:
Ve skutečnosti se úlohy spouští paralelně jenom v případě, že máte dostatek spouštěčů pro spouštění více úloh najednou. Počet spouštěčů hostovaných na GitHubu, které můžete použít, závisí na typu účtu GitHubu, který máte. Pokud potřebujete více paralelních úloh, můžete si koupit jiný plán účtu GitHub.
Někdy chcete spustit úlohu, když předchozí úloha selže. Tady je například jiný pracovní postup. Pokud nasazení selže, úloha s názvem vrácení zpět se spustí okamžitě poté:
Pomocí klíčového if
slova zadáte podmínku, která se má splnit před spuštěním úlohy:
name: learn-github-actions
on: [push]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- run: echo "Here is where you'd perform the validation steps."
deploy:
runs-on: windows-latest
needs: validate
steps:
- run: echo "Here is where you'd perform the steps to deploy."
rollback:
runs-on: ubuntu-latest
needs: deploy
if: ${{ failure() }}
steps:
- run: echo "Here is where you'd perform the steps to roll back a failure."
V předchozím příkladu, když všechno funguje dobře, pracovní postup nejprve spustí testovací úlohu a pak spustí úlohu Nasazení . Přeskočí úlohu Vrácení zpět . Pokud ale úloha Test nebo Deploy selže, pracovní postup spustí úlohu vrácení zpět. O vrácení zpět se dozvíte později v tomto modulu.
Úlohy nasazení Bicep
Typický pracovní postup nasazení Bicep obsahuje několik úloh. S tím, jak pracovní postup prochází úlohami, je cílem stále větší jistotu, že pozdější úlohy budou úspěšné. Tady jsou běžné úlohy pracovního postupu nasazení Bicep:
- Lint: Pomocí linteru Bicep ověřte, že je soubor Bicep správně vytvořený a neobsahuje žádné zjevné chyby.
- Ověření: Pomocí předběžného ověřovacího procesu Azure Resource Manageru můžete zkontrolovat problémy, ke kterým může dojít při nasazení.
- Preview: Pomocí příkazu citlivostní analýza ověřte seznam změn, které se použijí ve vašem prostředí Azure. Požádejte člověka, aby ručně zkontroloval výsledky citlivostní kontroly a schválil pracovní postup, aby pokračoval.
- Nasazení: Odešlete nasazení do Resource Manageru a počkejte na dokončení.
- Orientační test: Spusťte základní kontroly po nasazení u některých důležitých prostředků, které jste nasadili. Tyto kontroly se nazývají orientační testy infrastruktury.
Vaše organizace může mít jinou posloupnost úloh nebo možná budete muset integrovat nasazení Bicep do pracovního postupu, který nasazuje další komponenty. Jakmile pochopíte, jak úlohy fungují, můžete navrhnout pracovní postup tak, aby vyhovoval vašim potřebám.
Každá úloha se spustí v nové instanci spouštěče, která začíná z čistého prostředí. V každé úloze tedy obvykle musíte jako první krok rezervovat zdrojový kód. Musíte se také přihlásit ke svému prostředí Azure v každé úloze, která komunikuje s Azure.
V tomto modulu se dozvíte více o těchto úlohách a postupně vytvoříte pracovní postup, který zahrnuje každou úlohu. Naučíte se také:
- Jak pracovní postupy zastaví proces nasazení, pokud se v některé z předchozích úloh něco neočekávaně stane.
- Jak nakonfigurovat pracovní postup tak, aby se pozastavil, dokud ručně neověřete, co se stalo v předchozí úloze.