Konfigurace aplikací a virtuálních počítačů

Dokončeno

Pro vaše řešení Azure je běžné vytvářet aplikace a další vlastní kód. Vlastní aplikace můžou zahrnovat weby, rozhraní API a aplikace na pozadí, které běží bez zásahu člověka. V této lekci se dozvíte, jak navrhnout pracovní postup pro sestavení a nasazení aplikace společně s její infrastrukturou.

Sestavování aplikací

Před použitím je potřeba zkompilovat nebo sestavit mnoho typů aplikací. Proces sestavení převezme zdrojový kód aplikace, provede sekvenci aktivit na ní a pak vytvoří sadu nasaditelných souborů.

Proces sestavení zkompiluje zdrojový kód do binárních souborů nebo spustitelných souborů. Proces sestavení obvykle zahrnuje další aktivity, včetně komprimace souborů obrázků, které se budou obsluhovat uživatelům vašeho webu, lintování kódu za účelem ověření, že dodržuje správné postupy kódování, a spouštění testů jednotek, které ověřují chování jednotlivých částí aplikace. Můžete také provést kroky, jako je digitální podepisování souborů, které vám pomůžou zajistit, aby je nebylo možné upravovat.

Bez ohledu na to, jakou řadu kroků může být, je výstupem procesu sestavení nasaditelný artefakt. Artefakt se obvykle ukládá do systému souborů spouštěče pracovních postupů. Pozdější části pracovního postupu musí pracovat s artefaktem, aby ho nasadily v prostředích, a otestovat ho při procházení bran kvality, které definujete v definici pracovního postupu.

Poznámka:

Možná jste slyšeli o termínech kontinuální integrace a průběžného nasazování nebo CI/CD. Proces sestavení je součástí průběžné integrace pracovního postupu.

Artefakty pracovního postupu

Artefakty vygenerované ve vašem pracovním postupu se neukládají do úložiště Git. Jsou odvozené ze zdrojového kódu, ale nejsou samy o sobě, takže nepatří do úložiště správy zdrojového kódu. Vytvoří se v systému souborů spouštěče pracovních postupů. Pro každou úlohu pracovního postupu se vytvoří nový spouštěč, takže potřebujete způsob, jak sdílet soubory mezi úlohami a spouštěči.

Artefakty pracovního postupu poskytují způsob, jak ukládat soubory v GitHub Actions a jsou přidružené ke konkrétnímu spuštění pracovního postupu. Pomocí actions/upload-artifact akce pracovního postupu dáte GitHub Actions pokyn k nahrání souboru nebo složky ze systému souborů spouštěče jako artefakt pracovního postupu:

- name: Upload folder as a workflow artifact
  uses: actions/upload-artifact@v3
  with:
    name: my-artifact-name
    path: ./my-folder

Vlastnost path je umístění, které obsahuje váš zkompilovaný kód nebo výstupní soubory v systému souborů spouštěče úloh. Obsah v tomto umístění se nahraje do artefaktu. Můžete zadat jeden soubor, více souborů nebo složku.

Každý artefakt má název, který zadáte pomocí name vlastnosti. Název artefaktu použijete k pozdějšímu odkazu v pracovním postupu. Následné úlohy pracovního postupu můžou stáhnout artefakt, aby s ním mohly pracovat, například nasadit web na server, který ho hostuje:

Diagram znázorňující nahrání pracovního postupu a následný odkaz na artefakt s názvem

actions/download-artifact Pomocí akce stáhněte všechny artefakty pracovního postupu:

- uses: actions/download-artifact@v3

Nebo zadejte název artefaktu pro stažení pouze konkrétního artefaktu:

- uses: actions/download-artifact@v3
  with:
    name: my-artifact-name

Nasazení aplikací

Proces sestavení aplikace vygeneruje a nahraje nasaditelný artefakt. Později úlohy v pracovním postupu nasadí artefakt. Způsob nasazení aplikace závisí na službě, kterou používáte k hostování.

Nasazení do Azure App Service

Vaše společnost toy používá k hostování svého webu službu Aplikace Azure Service. Aplikaci App Service můžete vytvořit a nakonfigurovat pomocí Bicep, ale pokud přijde čas na nasazení aplikace, máte několik možností, jak zkompilovanou aplikaci získat do hostitelské infrastruktury. Tyto možnosti se spravují jako součást roviny dat služby App Service.

Nejběžnějším přístupem je použití azure/webapps-deploy akce:

- uses: azure/webapps-deploy@v2
  with:
    app-name: my-app-service
    package: my-artifact-name/website.zip

K nasazení aplikace do služby App Service je potřeba zadat několik informací. Tyto informace zahrnují název prostředku aplikace App Service, který zadáte pomocí app-name vlastnosti. Jak jste se dozvěděli v předchozí lekci, měli byste do souboru Bicep přidat výstup a použít proměnnou pracovního postupu k rozšíření názvu aplikace prostřednictvím pracovního postupu. Musíte také zadat soubor .zip s aplikací, který se má nasadit pomocí package vlastnosti. Obvykle se jedná o cestu k artefaktu pracovního postupu.

App Service má vlastní systém ověřování roviny dat, který používá pro nasazení. Akce azure/webapps-deploy automaticky zpracuje proces ověřování za vás:

Diagram znázorňující proces výměny přihlašovacích údajů

Akce azure/webapps-deploy používá identitu přidruženou k aktivní relaci Azure vaší úlohy, kterou jste přihlásili pomocí identity úlohy. Akce vytvoří a stáhne potřebné přihlašovací údaje pro nasazení . Pak použije přihlašovací údaje pro nasazení, když komunikuje s rozhraním API roviny dat služby App Service .

App Service také poskytuje několik dalších funkcí souvisejících s nasazením, včetně slotů nasazení. Sloty pomáhají bezpečně nasazovat nové verze aplikací bez výpadků. Pomůžou vám také připravit a zahřát novou verzi aplikace před odesláním produkčního provozu. V tomto modulu nepoužíváme sloty, ale na stránce Souhrn modulu poskytujeme odkaz na další informace.

Nasazení aplikací do jiných služeb Azure

Azure nabízí řadu dalších možností hostování vašich aplikací, z nichž každá má svůj vlastní přístup k nasazení.

Služba Azure Functions je založená na službě App Service a používá proces nasazení, který je podobný procesu, který jsme popsali dříve.

Pokud nasadíte na virtuální počítač, obvykle se k instanci virtuálního počítače musíte připojit, abyste mohli aplikaci nainstalovat. K orchestraci nasazení do virtuálních počítačů často potřebujete speciální nástroje, jako je Chef, Puppet nebo Ansible.

Pokud používáte Kubernetes nebo Azure Kubernetes Service (AKS), obvykle byste k sestavení a nasazení řešení použili trochu jiný přístup. Po sestavení aplikace pracovní postup vytvoří image kontejneru a publikuje ji do registru kontejneru, ze kterého pak váš cluster Kubernetes načítá. Vzhledem k tomu, že registr kontejneru uchovává kompilovanou aplikaci, obvykle nepoužíváte artefakt pracovního postupu.

V tomto modulu se zaměříme na Aplikace Azure Service, abychom ilustroval související koncepty pracovních postupů. Na stránce Souhrn na konci modulu poskytujeme odkazy na další informace o nasazení do jiných hostitelských služeb.

Testování aplikací v pracovním postupu

V předchozím modulu jste se dozvěděli o hodnotě a důležitosti spouštění automatizovaných testů z pracovního postupu. Když nasadíte aplikaci, je vhodné, aby pracovní postup spustil některé testy, které vyvolávají kód aplikace. Takové testy snižují riziko, že aplikace nebo chyba nasazení můžou způsobit výpadky. V pokročilejších scénářích můžete dokonce provádět sadu testovacích případů ve vaší aplikaci, jako je vyvolání rozhraní API nebo odeslání a monitorování syntetické transakce.

Mnoho aplikací implementuje koncové body kontroly stavu. Když koncový bod kontroly stavu obdrží požadavek, provede řadu kontrol na webu, jako je například zajištění, aby databáze a síťové služby byly dostupné z aplikačního prostředí. Odpověď, kterou web vrátí, označuje, jestli je aplikace v pořádku. Vývojáři můžou psát a přizpůsobovat své vlastní kontroly stavu tak, aby vyhovovaly požadavkům aplikace. Pokud má vaše aplikace koncový bod kontroly stavu, často je vhodné ho po dokončení úlohy nasazení monitorovat z pracovního postupu.

Pracovní postup nasazení

V dalším cvičení aktualizujete pracovní postup nasazení, abyste přidali nové úlohy pro sestavení aplikace webu a nasadíte ho do každého prostředí:

Diagram znázorňující revidovaný pracovní postup, včetně nové úlohy sestavení a úlohy nasazení aplikace