definición jobs.deployment.strategy.canary
La estrategia de implementación controlada implementa los cambios en un pequeño subconjunto de servidores.
canary:
increments: [ string ] # Maximum batch size for deployment.
preDeploy: # Pre deploy hook for canary 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 canary 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 canary 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 canary 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 canary 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
increments
lista de cadenas.
tamaño máximo de lote para la implementación.
preDeploy
preDeployHook.
enlace De implementación previa para la estrategia de implementación controlada.
deploy
deployHook.
Enlace de implementación para la estrategia de implementación controlada.
routeTraffic
routeTrafficHook.
enrutar el enlace de tráfico para la estrategia de implementación controlada.
postRouteTraffic
postRouteTrafficHook .
enlace posterior al tráfico de enrutamiento para la estrategia de implementación controlada.
on
onSuccessOrFailureHook.
Enlace correcto o de error para la estrategia de implementación controlada.
Observaciones
La estrategia de implementación controlada es una estrategia de implementación avanzada que ayuda a mitigar el riesgo implicado en la implementación de nuevas versiones de aplicaciones. Con esta estrategia, puede implementar primero los cambios en un pequeño subconjunto de servidores. A medida que gana confianza con la nueva versión, puede usarla en más servidores de la infraestructura y enrutar más tráfico a ella.
La estrategia de implementación controlada admite el enlace de ciclo de vida de preDeploy
(ejecutado una vez) e itera con los enlaces de ciclo de vida de deploy
, routeTraffic
y postRouteTraffic
. A continuación, sale con el enlace success
o failure
.
Las siguientes variables están disponibles en esta estrategia:
strategy.name
: nombre de la estrategia. Por ejemplo, valor controlado.
strategy.action
: la acción que se va a realizar en el clúster de Kubernetes. Por ejemplo, implemente, promueva o rechace.
strategy.increment
: valor de incremento usado en la interacción actual. Esta variable solo está disponible en enlaces de ciclo de vida de deploy
, routeTraffic
y postRouteTraffic
.
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 siguiente, la estrategia de valor controlado para AKS implementará primero los cambios con pods del 10 por ciento, seguido del 20 por ciento, mientras supervisa el estado durante postRouteTraffic
. Si todo va bien, promoverá al 100 por ciento.
jobs:
- deployment:
environment: smarthotel-dev.bookings
pool:
name: smarthotel-devPool
strategy:
canary:
increments: [10,20]
preDeploy:
steps:
- script: initialize, cleanup....
deploy:
steps:
- script: echo deploy updates...
- task: KubernetesManifest@0
inputs:
action: $(strategy.action)
namespace: 'default'
strategy: $(strategy.name)
percentage: $(strategy.increment)
manifests: 'manifest.yml'
postRouteTraffic:
pool: server
steps:
- script: echo monitor application health...
on:
failure:
steps:
- script: echo clean-up, rollback...
success:
steps:
- script: echo checks passed, notify...