jobs.deployment.strategy.rolling definition
Nasazení se zajištěním provozu nahradí instance předchozí verze aplikace instancemi nové verze aplikace na pevné sadě virtuálních počítačů (rolling set) v každé iteraci.
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.
Definice, které odkazují na tuto definici: jobs.deployment.strategy
Vlastnosti
maxParallel
Řetězec.
Maximální počet paralelně spuštěných úloh
preDeploy
preDeployHook.
Háček před nasazením pro strategii postupného nasazení
deploy
deployHook.
Nasazení hooku pro strategii postupného nasazení
routeTraffic
routeTrafficHook.
Háček směrování provozu pro strategii postupného nasazení
postRouteTraffic
postRouteTrafficHook.
Háček provozu po směrování pro strategii postupného nasazení
on
onSuccessOrFailureHook.
Při úspěchu nebo selhání pro strategii postupného nasazení.
Poznámky
Azure Pipelines v současné době podporuje pouze strategii postupného zavádění prostředků virtuálních počítačů.
Například nasazení se zajištěním provozu obvykle čeká na dokončení nasazení na každé sadě virtuálních počítačů, než přejde k další sadě nasazení. Po každé iteraci můžete provést kontrolu stavu, a pokud dojde k významnému problému, nasazení se zajištěním provozu je možné zastavit.
Nasazení se zajištěním provozu je možné nakonfigurovat zadáním klíčového slova rolling:
v strategy:
uzlu.
Proměnná strategy.name
je k dispozici v tomto bloku strategie, který přebírá název strategie. V tomto případě to bude klouzavý.
Podporují se všechny hooky životního cyklu a vytvářejí se úlohy zavěšení životního cyklu, které se poběží na každém virtuálním počítači.
preDeploy
, deploy
, routeTraffic
a postRouteTraffic
se spouštějí jednou pro každou velikost dávky definovanou parametrem maxParallel
.
Pak se provede buď nebo on: success
on: failure
.
Pomocí maxParallel: <# or % of VMs>
nástroje můžete řídit počet/procento cílů virtuálních počítačů, na které se mají nasadit paralelně. Tím se zajistí, že aplikace běží na těchto počítačích a bude schopná zpracovávat požadavky, zatímco nasazení probíhá na zbývajících počítačích, což snižuje celkové prostoje.
Poznámka
Tato funkce obsahuje několik známých mezer. Například při opakování fáze se nasazení znovu spustí na všech virtuálních počítačích, nejen na neúspěšných cílech.
Popisy zachycení životního cyklu
preDeploy
: Slouží ke spuštění kroků, které inicializují prostředky před spuštěním nasazení aplikace.
deploy
: Slouží ke spuštění kroků, které nasadí vaši aplikaci. Úloha artefaktu stažení se automaticky vloží jenom do háku deploy
pro úlohy nasazení. Pokud chcete zastavit stahování artefaktů, použijte - download: none
nebo zvolte konkrétní artefakty ke stažení zadáním úlohy Stáhnout artefakt kanálu.
routeTraffic
: Slouží ke spuštění kroků, které obsluhují provoz do aktualizované verze.
postRouteTraffic
: Slouží ke spuštění kroků po směrování provozu. Tyto úlohy obvykle monitorují stav aktualizované verze po definovaný interval.
on: failure
nebo on: success
: Slouží ke spuštění kroků pro akce vrácení zpět nebo vyčištění.
Příklady
Následující příklad strategie zajištění provozu pro virtuální počítače aktualizuje v každé iteraci až pět cílů. maxParallel
určí počet cílů, na které je možné paralelně nasadit. Výběr počítá s absolutním počtem nebo procentem cílů, které musí zůstat kdykoli dostupné, s výjimkou cílů, na které se nasazují. Používá se také k určení podmínek úspěchu a selhání během nasazení.
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