Konfigurer programmer og virtuelle maskiner
Det er almindeligt at bygge apps og anden brugerdefineret kode til din Azure-løsning. Brugerdefinerede apps kan omfatte websteder, API'er og baggrundsapps, der kører uden menneskelig interaktion. I dette undermodul lærer du, hvordan du designer en pipeline for at bygge og udrulle en app sammen med dens infrastruktur.
Byg apps
Mange typer apps skal kompileres eller bygget, før de kan bruges. Buildprocessen tager kildekoden til appen, udfører en række aktiviteter på den og opretter derefter et sæt udrullelige filer.
Buildprocessen kompilerer kildekoden til binære filer eller eksekverbare filer, men den inkluderer normalt også andre aktiviteter:
- Komprimerer de billedfiler, der betjenes af webstedets brugere.
- Linting din kode for at bekræfte, at den følger gode kodningspraksisser.
- Kørsel enhedstests, der bekræfter funktionsmåden for individuelle dele af din app.
Ud over disse trin kan du også udføre trin som f.eks. digitalt signering af filerne for at sikre, at de ikke kan ændres.
Uanset hvilken række trin der kan være, er resultatet af buildprocessen et udrulleligt artefakt. Artefaktet gemmes normalt i pipelineagentens filsystem. Senere faser i pipelinen skal arbejde med artefaktet for at udrulle det via dine miljøer og teste det, efterhånden som det skrider frem gennem de kvalitetsporte, du definerer i definitionen af pipelinen.
Seddel
Du har måske hørt om begreberne kontinuerlig integration og kontinuerlig udrulningeller CI- og cd-. En buildproces er placeret i den kontinuerlige integrationsdel af din pipeline.
Pipelineartefakter
De artefakter, der genereres i din pipeline, gemmes ikke i dit Git-lager. De er afledt af kildekoden, men er ikke selve koden, og de hører derfor ikke til i et kildekontrollager. De oprettes i pipelineagentens filsystem. Der oprettes en ny agent for hvert pipelinejob, så du skal bruge en metode til at dele filerne mellem job og agenter.
Pipelineartefakter gøre det muligt at gemme filer i Azure Pipelines, og de er knyttet til den bestemte kørsel af din pipeline. Du kan bruge den PublishBuildArtifacts
indbyggede pipelineopgave til at instruere Azure Pipelines i at publicere en fil eller mappe fra agentens filsystem som en pipelineartefakt:
- task: PublishBuildArtifacts@1
displayName: Publish folder as a pipeline artifact
inputs:
artifactName: my-artifact-name
pathToPublish: '$(Build.ArtifactStagingDirectory)/my-folder'
Egenskaben pathToPublish
er den placering, der indeholder dine kompilerede kode- eller outputfiler i pipelineagentens filsystem. Indholdet på denne placering er publiceret til artefaktet. Du kan angive en enkelt fil eller mappe.
Hver artefakt har et navn, som du angiver ved hjælp af artifactName
opgaveegenskab. Du kan bruge artefaktnavnet til at referere til det senere i pipelinen. Efterfølgende pipelinejob og -faser kan downloade artefaktet, så de kan arbejde med det for f.eks. at installere webstedet på den server, der er vært for det:
Når du bruger udrulningsjob, downloades pipelineartefakter automatisk som standard. Hvis du bruger almindelige job, skal du bruge DownloadBuildArtifacts
opgave til at downloade en pipelineartefakt:
- task: DownloadBuildArtifacts@0
inputs:
buildType: current
downloadType: single
artifactName: my-artifact-name
downloadPath: '$(System.ArtifactsDirectory)'
Installér apps
Buildprocessen for en app genererer og udgiver en udrullelig artefakt. I de senere faser af pipelinen udrulles artefaktet. Den måde, du installerer en app på, afhænger af den tjeneste, du bruger til at hoste den.
Udrul til Azure App Service
Dit legetøjsfirma bruger Azure App Service til at hoste sit websted. Du kan oprette og konfigurere en App Service-app ved hjælp af Bicep. Men når det kommer til udrulning af appen, har du flere muligheder for at få den kompilerede app til hostinginfrastrukturen. Disse indstillinger administreres som en del af App Service-dataplanet.
Den mest almindelige fremgangsmåde er at bruge opgaven AzureRmWebAppDeployment
Azure Pipelines:
- task: AzureRmWebAppDeployment@4
inputs:
azureSubscription: MyServiceConnection
ResourceGroupName: MyResourceGroup
WebAppName: my-app-service
Package: '$(Pipeline.Workspace)/my-artifact-name/website.zip'
Du skal angive flere oplysninger for at installere din app i App Service. Disse oplysninger omfatter ressourcegruppen og ressourcenavnet på App Service-appen, som du angiver ved hjælp af ResourceGroupName
og WebAppName
input. Som du har lært i det foregående undermodul, skal du føje et output til din Bicep-fil og bruge en pipelinevariabel til at overføre appnavnet via din pipeline. Du skal også angive en .zip fil med appen, der skal installeres, ved hjælp af det Package
input, som normalt er stien til en pipelineartefakt.
App Service har sit eget godkendelsessystem for dataplan, som den bruger til udrulninger. Den AzureRmWebAppDeployment
opgave håndterer automatisk godkendelsesprocessen for dig:
Den AzureRmWebAppDeployment
opgave bruger den tjenesteprincipal, der er knyttet til tjenesteforbindelsen, til automatisk at oprette og hente de nødvendige legitimationsoplysninger til installation
. Den bruger derefter legitimationsoplysningerne til udrulningen, når den kommunikerer med Api'en til App Service-dataplanet
.
App Service indeholder også et par andre udrulningsrelaterede funktioner, herunder udrulningsstik. Slots hjælper dig med sikkert at installere nye versioner af dine apps uden nedetid. De hjælper dig også med at forberede og varme den nye version af dit program, før du sender produktionstrafik til den. Vi bruger ikke slots i dette modul, men vi giver et link til flere oplysninger om dem på siden Oversigt i slutningen af modulet.
Udrul apps til andre Azure-tjenester
Azure indeholder mange andre muligheder for at hoste dine apps, som hver især har sin egen tilgang til udrulning.
Azure Functions er bygget på App Service og bruger en udrulningsproces, der ligner den, der er beskrevet tidligere.
Hvis du installerer på en virtuel maskine, skal du normalt oprette forbindelse til forekomsten af den virtuelle maskine for at installere din app. Du skal ofte bruge specialiserede værktøjer, f.eks. Chef, Puppet eller Ansible, til at orkestrere en udrulning til virtuelle maskiner.
Hvis du bruger Kubernetes eller Azure Kubernetes Service (AKS), vil du bruge en lidt anden tilgang til at bygge og udrulle din løsning. Når din app er bygget, opretter din pipeline et objektbeholderbillede og publicerer det i en objektbeholderregistreringsdatabase, som kubernetes-klyngen derefter læser fra. Da registreringsdatabasen for objektbeholderen bevarer det kompilerede program, bruger du normalt ikke en pipelineartefakt.
I dette modul fokuserer vi på Azure App Service for at illustrere de involverede pipelinekoncepter. På siden Oversigt i slutningen af modulet indeholder vi links til flere oplysninger om udrulning til andre hostingtjenester.
Test apps i din pipeline
I et tidligere modul lærte du om værdien og vigtigheden af at køre automatiserede test fra din pipeline. Når du udruller en app, er det en god idé for pipelinen at køre nogle test, der aktiverer appens kode. Sådanne test reducerer risikoen for, at en app eller installationsfejl kan medføre nedetid. I mere avancerede scenarier kan du endda udføre et sæt testcases mod din app, f.eks. aktivering af API'er eller indsendelse og overvågning af en syntetisk transaktion.
Mange apps implementerer slutpunkter for tilstandskontrol . Når et slutpunkt for tilstandskontrol modtager en anmodning, udfører det en række kontroller på webstedet, f.eks. for at sikre, at databaser og netværkstjenester kan nås fra appmiljøet. Det svar, som webstedet returnerer, angiver, om appen er i orden. Udviklere kan skrive og tilpasse deres egne tilstandstjek, så de passer til appens krav. Hvis din app har et slutpunkt for tilstandskontrol, giver det ofte mening at overvåge den fra din pipeline, når udrulningsfasen er afsluttet.
Din udrulningspipeline
I den næste øvelse skal du opdatere din udrulningspipeline for at tilføje nye job for at bygge dit websteds program og udrulle det i hvert miljø: