Konfigurace aplikací a virtuálních počítačů
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 pipelinu pro sestavení a nasazení aplikace a její infrastruktury.
Vytváření aplikací
Před jejich používáním je potřeba zkompilovat nebo sestavit. Proces sestavení vezme zdrojový kód aplikace, provede sekvenci aktivit v aplikaci a pak vytvoří sadu nasaditelných souborů.
Proces sestavení zkompiluje zdrojový kód do binárních souborů nebo spustitelných souborů, ale obvykle zahrnuje i další aktivity:
- Komprese obrazových souborů doručovaných uživatelům vašeho webu.
- lintování kódu, abyste ověřili, že se řídí osvědčenými postupy kódování.
- Spuštění testů jednotek , které ověřují chování jednotlivých částí aplikace.
Kromě těchto kroků můžete také provést kroky, jako je digitální podepisování souborů, abyste zajistili, že nemohou být upraveny.
Bez ohledu na řadu kroků je výstupem procesu sestavení nasaditelný artefakt. Artefakt se obvykle ukládá do systému souborů agenta pipeline. Pozdější fáze vašeho pipeline musí pracovat s artefaktem, aby jej nasadily prostřednictvím vašich prostředí, a otestovat jej při procházení branami kvality, které definujete v definici pipeline.
Poznámka
Možná jste slyšeli o pojmech kontinuální integrace a kontinuální nasazování, nebo CI a CD. Proces sestavení se nachází v rámci kontinuální integrace části kanálu.
Artefakty kanálu
Artefakty generované ve vašem nasazovacím řetězci se neukládají do vašeho úložiště Git. Jsou odvozeny ze zdrojového kódu, ale nejsou samy o sobě, a proto nepatří do úložiště správy zdrojového kódu. Vytvoří se v systému souborů agenta úlohového kanálu. Pro každou úlohu v pipeline se vytvoří nový agent, takže potřebujete způsob, jak sdílet soubory mezi úlohami a agenty.
Artefakty pipeline poskytují způsob, jak ukládat soubory ve službě Azure Pipelines a jsou spojeny s konkrétním spuštěním vaší pipeline. Pomocí vestavěné úlohy PublishBuildArtifacts
můžete dát službě Azure Pipelines pokyn, aby publikovala soubor nebo složku ze souborového systému agenta jako artefakt kanálu.
- task: PublishBuildArtifacts@1
displayName: Publish folder as a pipeline artifact
inputs:
artifactName: my-artifact-name
pathToPublish: '$(Build.ArtifactStagingDirectory)/my-folder'
Vlastnost pathToPublish
je umístění, které obsahuje zkompilovaný kód nebo výstupní soubory v souborovém systému agenta pipeline. Obsah na tomto místě je publikován do artefaktu. Můžete zadat jeden soubor nebo složku.
Každý artefakt má název, který zadáte pomocí vlastnosti artifactName
úkolu. Název artefaktu použijete k pozdějšímu odkazování v procesu. Následné úlohy a fáze v kanálu mohou stáhnout artefakt, aby s ním mohly pracovat a například nasadit webovou stránku na server, který ji hostuje.
Při použití úloh nasazení se artefakty kanálu automaticky stáhnou ve výchozím nastavení. Pokud používáte běžné úlohy, použijte úlohu DownloadBuildArtifacts
ke stažení artefaktu pipeline.
- task: DownloadBuildArtifacts@0
inputs:
buildType: current
downloadType: single
artifactName: my-artifact-name
downloadPath: '$(System.ArtifactsDirectory)'
Nasazení aplikací
Proces sestavení aplikace vygeneruje a publikuje nasaditelný artefakt. Pozdější fáze potrubí zpřístupní artefakt. Způsob nasazení aplikace závisí na službě, kterou používáte k hostování.
Nasazení do služby Azure App Service
Vaše společnost toy používá k hostování svého webu službu Azure App Service. Aplikaci App Service můžete vytvořit a nakonfigurovat pomocí Bicep. Pokud ale přijde čas nasadit aplikaci, 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í úlohy AzureRmWebAppDeployment
Azure Pipelines:
- task: AzureRmWebAppDeployment@4
inputs:
azureSubscription: MyServiceConnection
ResourceGroupName: MyResourceGroup
WebAppName: my-app-service
Package: '$(Pipeline.Workspace)/my-artifact-name/website.zip'
K nasazení aplikace do služby App Service je potřeba zadat několik informací. Tyto informace zahrnují skupinu prostředků a název prostředku aplikace App Service, které zadáte pomocí vstupů ResourceGroupName
a WebAppName
. 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 potrubí k propagaci názvu aplikace prostřednictvím potrubí. Musíte také zadat soubor .zip s aplikací, který chcete nasadit pomocí vstupu Package
, což je obvykle cesta k artefaktu z kanálu.
App Service má vlastní systém ověřování roviny dat, který používá pro nasazení. Úloha AzureRmWebAppDeployment
automaticky zpracuje proces ověřování za vás:
Úloha AzureRmWebAppDeployment
používá instanční objekt přidružený k vašemu připojení ke službě k automatickému vytvoření a stažení potřebných přihlašovacích údajů pro nasazení
. Potom 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í, které souvisí s nasazením, včetně slotů nasazení. Sloty pomáhají bezpečně nasazovat nové verze aplikací bez výpadků. Pomohou vám také připravit a zahřát novou verzi aplikace, než na ni pošlete produkční provoz. V tomto modulu nepoužíváme sloty, ale na konci modulu poskytujeme odkaz na další informace o nich.
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 popsanému výše.
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), použili byste k sestavení a nasazení řešení trochu jiný přístup. Po sestavení aplikace váš kanál vytvoří image kontejneru a publikuje ji do registru kontejnerů , který poté využívá váš cluster Kubernetes. Vzhledem k tomu, že registr kontejneru uchovává kompilovanou aplikaci, obecně nepoužíváte artefakt kanálu.
V tomto modulu se zaměříme na Službu Azure App Service a k demonstraci použijeme koncepty pipeline, které s ní souvisejí. Na stránce Souhrn na konci modulu poskytujeme odkazy na další informace o nasazení do jiných hostitelských služeb.
Testujte aplikace ve vašem pipeline
V předchozím modulu jste se dozvěděli o hodnotě a důležitosti spouštění automatických testů z vašeho kanálu. Když nasadíte aplikaci, je vhodné, aby pipeline provedla 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 monitorovat z pipelines po dokončení nasazovací fáze.
Váš kanál nasazení
V dalším cvičení aktualizujete kanál nasazení, abyste přidali nové úlohy pro sestavení aplikace webu a nasadíte ho do každého prostředí: