jobs.deployment.strategy.rolling definition
Una implementación gradual reemplaza las instancias de la versión anterior de una aplicación por instancias de la nueva versión de la aplicación en un conjunto fijo de máquinas virtuales (conjunto gradual) en cada iteración.
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.
Definiciones que hacen referencia a esta definición: jobs.deployment.strategy
Propiedades
maxParallel
cadena.
Número máximo de trabajos que se ejecutan en paralelo.
preDeploy
preDeployHook.
enlace de implementación previa para la estrategia de implementación gradual.
deploy
deployHook.
Enlace de implementación para la estrategia de implementación gradual.
routeTraffic
routeTrafficHook.
enlace de tráfico de enrutamiento para la estrategia de implementación gradual.
postRouteTraffic
postRouteTrafficHook .
enlace posterior al tráfico de enrutamiento para la estrategia de implementación gradual.
on
onSuccessOrFailureHook.
Enlace de éxito o error para la estrategia de implementación gradual.
Observaciones
Actualmente, Azure Pipelines solo admite la estrategia gradual para los recursos de máquina virtual.
Por ejemplo, una implementación gradual suele esperar a que se completen las implementaciones en cada conjunto de máquinas virtuales antes de continuar con el siguiente conjunto de implementaciones. Puede realizar una comprobación de estado después de cada iteración y, si se produce un problema significativo, se puede detener la implementación gradual.
Las implementaciones graduales se pueden configurar especificando la palabra clave rolling:
en el nodo strategy:
.
La variable strategy.name
está disponible en este bloque de estrategia, que toma el nombre de la estrategia. En este caso, rodando.
Se admiten todos los enlaces de ciclo de vida y se crean trabajos de enlace de ciclo de vida para ejecutarse en cada máquina virtual.
preDeploy
, deploy
, routeTraffic
y postRouteTraffic
se ejecutan una vez por tamaño de lote definido por maxParallel
.
A continuación, se ejecuta on: success
o on: failure
.
Con maxParallel: <# or % of VMs>
, puede controlar el número o porcentaje de destinos de máquina virtual en los que realizar la implementación en paralelo. Esto garantiza que la aplicación se ejecuta en estas máquinas y es capaz de controlar las solicitudes mientras la implementación se realiza en el resto de las máquinas, lo que reduce el tiempo de inactividad general.
Nota:
Hay algunas lagunas conocidas en esta característica. Por ejemplo, cuando vuelva a intentar una fase, volverá a ejecutar el despliegue en todas las máquinas virtuales, incluidas las fallidas.
Descripciones de enlaces de ciclo de vida
preDeploy
: se usa para ejecutar pasos que inicializan los recursos antes de que se inicie la implementación de la aplicación.
deploy
: se usa para ejecutar los pasos que implementan la aplicación. La tarea descargar artefacto solo se insertará automáticamente en el enlace de deploy
para trabajos de implementación. Para detener la descarga de artefactos, use - download: none
o elija artefactos específicos para descargar especificando tarea Descargar artefacto de canalización.
routeTraffic
: se usa para ejecutar pasos que sirven el tráfico a la versión actualizada.
postRouteTraffic
: se usa para ejecutar los pasos después de enrutar el tráfico. Normalmente, estas tareas supervisan el estado de la versión actualizada para el intervalo definido.
on: failure
o on: success
: se usa para ejecutar pasos para las acciones de reversión o la limpieza.
Ejemplos
En el ejemplo de estrategia gradual siguiente para las máquinas virtuales se actualizan hasta cinco destinos en cada iteración.
maxParallel
determinará el número de destinos en los que se puede implementar, en paralelo. La selección tiene en cuenta el número absoluto o el porcentaje de destinos que deben permanecer disponibles en cualquier momento, excepto los destinos en los que se implementan. También se usa para determinar las condiciones de éxito y error durante la implementación.
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