definitie jobs.deployment.strategy.rolling
Een rolling implementatie vervangt exemplaren van de vorige versie van een toepassing door exemplaren van de nieuwe versie van de toepassing op een vaste set virtuele machines (rolling set) in elke iteratie.
rolling:
maxParallel: string # Maximum number of jobs running in parallel.
preDeploy: # Pre deploy hook for rolling deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where pre deploy steps will run.
deploy: # Deploy hook for rolling deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where deploy steps will run.
routeTraffic: # Route traffic hook for rolling deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where route traffic steps will run.
postRouteTraffic: # Post route traffic hook for rolling deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where post route traffic steps will run.
on: # On success or failure hook for rolling deployment strategy.
failure: # Runs on failure of any step.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where post on failure steps will run.
success: # Runs on success of all of the steps.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where on success steps will run.
Definities die naar deze definitie verwijzen: jobs.deployment.strategy
Eigenschappen
maxParallel
Tekenreeks.
Maximum aantal taken dat parallel wordt uitgevoerd.
preDeploy
preDeployHook.
Pre deploy hook voor rolling implementatiestrategie.
deploy
deployHook.
Implementeer een hook voor een rolling implementatiestrategie.
routeTraffic
routeTrafficHook.
Routeverkeershook voor rolling implementatiestrategie.
postRouteTraffic
postRouteTrafficHook.
Verkeershook voor doorlopende implementatiestrategie na route.
on
onSuccessOrFailureHook.
Bij geslaagde of mislukte hook voor rolling implementatiestrategie.
Opmerkingen
Azure Pipelines bieden momenteel alleen ondersteuning voor de rolling-strategie voor VM-resources.
Een doorlopende implementatie wacht bijvoorbeeld meestal totdat implementaties op elke set virtuele machines zijn voltooid voordat u doorgaat met de volgende set implementaties. U kunt na elke iteratie een statuscontrole uitvoeren. Als er een belangrijk probleem optreedt, kan de rolling implementatie worden gestopt.
Rolling implementaties kunnen worden geconfigureerd door het trefwoord rolling:
onder het strategy:
knooppunt op te geven.
De strategy.name
variabele is beschikbaar in dit strategieblok, dat de naam van de strategie aanneemt. In dit geval rollend.
Alle levenscyclushooks worden ondersteund en er worden levenscyclushooktaken gemaakt om op elke VM te worden uitgevoerd.
preDeploy
, deploy
, routeTraffic
en postRouteTraffic
worden eenmaal uitgevoerd per batchgrootte die is gedefinieerd door maxParallel
.
Vervolgens wordt of on: success
on: failure
uitgevoerd.
Met maxParallel: <# or % of VMs>
kunt u het aantal/percentage virtuele-machinedoelen bepalen waarop u parallel wilt implementeren. Dit zorgt ervoor dat de app wordt uitgevoerd op deze machines en aanvragen kan verwerken terwijl de implementatie plaatsvindt op de rest van de machines, waardoor de algehele downtime wordt verminderd.
Notitie
Er zijn enkele bekende hiaten in deze functie. Wanneer u bijvoorbeeld een fase opnieuw probeert, wordt de implementatie opnieuw uitgevoerd op alle VM's en niet alleen op mislukte doelen.
Beschrijvingen van levenscyclushook
preDeploy
: wordt gebruikt om stappen uit te voeren waarmee resources worden geïnitialiseerd voordat de implementatie van de toepassing wordt gestart.
deploy
: wordt gebruikt om stappen uit te voeren waarmee uw toepassing wordt geïmplementeerd. De taak voor het downloaden van artefacten wordt automatisch alleen geïnjecteerd in de deploy
hook voor implementatietaken. Als u wilt stoppen met het downloaden van artefacten, gebruikt - download: none
of kiest u specifieke artefacten die u wilt downloaden door de taak Pijplijnartefact downloaden op te geven.
routeTraffic
: wordt gebruikt om stappen uit te voeren die het verkeer naar de bijgewerkte versie verwerken.
postRouteTraffic
: wordt gebruikt om de stappen uit te voeren nadat het verkeer is gerouteerd. Normaal gesproken bewaken deze taken de status van de bijgewerkte versie voor het gedefinieerde interval.
on: failure
of on: success
: wordt gebruikt om stappen uit te voeren voor terugdraaiacties of opschonen.
Voorbeelden
In het volgende voorbeeld van een rolling strategie voor VM's worden maximaal vijf doelen in elke iteratie bijgewerkt. maxParallel
bepaalt het aantal doelen waarop de implementatie parallel kan worden uitgevoerd. Bij de selectie wordt rekening gehouden met een absoluut aantal of percentage doelen dat op elk gewenst moment beschikbaar moet blijven, met uitzondering van de doelen waarop wordt geïmplementeerd. De selectie wordt ook gebruikt om de voorwaarden voor een geslaagde of mislukte implementatie te bepalen.
jobs:
- deployment: VMDeploy
displayName: web
environment:
name: smarthotel-dev
resourceType: VirtualMachine
strategy:
rolling:
maxParallel: 5 #for percentages, mention as x%
preDeploy:
steps:
- download: current
artifact: drop
- script: echo initialize, cleanup, backup, install certs
deploy:
steps:
- task: IISWebAppDeploymentOnMachineGroup@0
displayName: 'Deploy application to Website'
inputs:
WebSiteName: 'Default Web Site'
Package: '$(Pipeline.Workspace)/drop/**/*.zip'
routeTraffic:
steps:
- script: echo routing traffic
postRouteTraffic:
steps:
- script: echo health check post-route traffic
on:
failure:
steps:
- script: echo Restore from backup! This is on failure
success:
steps:
- script: echo Notify! This is on success