définition jobs.deployment.strategy.canary
La stratégie de déploiement Canary déploie des modifications sur un petit sous-ensemble de serveurs.
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.
Définitions qui font référence à cette définition : jobs.deployment.strategy
Propriétés
increments
string list.
Taille maximale des lots pour le déploiement.
preDeploy
preDeployHook.
Pré-déploiement du hook pour la stratégie de déploiement canary.
deploy
deployHook.
Déployer le hook pour la stratégie de déploiement canary.
routeTraffic
routeTrafficHook.
Router le crochet de trafic pour la stratégie de déploiement canary.
postRouteTraffic
postRouteTrafficHook.
Crochet de trafic post-routage pour la stratégie de déploiement canary.
on
onSuccessOrFailureHook.
En cas de réussite ou d’échec de la stratégie de déploiement canary.
Notes
La stratégie de déploiement avec contrôle de validité est une stratégie de déploiement avancée qui permet d’atténuer les risques liés au déploiement de nouvelles versions d’applications. En utilisant cette stratégie, vous pouvez d’abord déployer les changements sur un petit sous-ensemble de serveurs. Quand la nouvelle version vous semble fiable, vous pouvez la publier sur davantage de serveurs de votre infrastructure et lui envoyer plus de trafic.
La stratégie de déploiement avec contrôle de validité prend en charge le hook de cycle de vie preDeploy
(exécuté une seule fois) et itère avec les hooks de cycle de vie deploy
, routeTraffic
et postRouteTraffic
. Elle se termine ensuite avec le hook success
ou failure
.
Les variables suivantes sont disponibles dans cette stratégie :
strategy.name
: Nom de la stratégie. Exemple : « canari ».
strategy.action
: Action à effectuer sur le cluster Kubernetes. Par exemple, déployer, promouvoir ou rejeter.
strategy.increment
: Valeur d’incrément utilisée dans l’interaction actuelle. Cette variable est disponible uniquement dans les hooks de cycle de vie deploy
, routeTraffic
et postRouteTraffic
.
Descriptions des hooks de cycle de vie
preDeploy
: Utilisé pour exécuter les étapes qui initialisent les ressources avant le démarrage du déploiement de l’application.
deploy
: Utilisé pour exécuter les étapes qui déploient votre application. La tâche de téléchargement des artefacts est injectée automatiquement uniquement dans le hook deploy
pour les travaux de déploiement. Pour arrêter le téléchargement d’artefacts, utilisez - download: none
ou choisissez des artefacts spécifiques à télécharger en spécifiant la tâche Télécharger un artefact de pipeline.
routeTraffic
: Utilisé pour exécuter les étapes qui servent le trafic à la version mise à jour.
postRouteTraffic
: Utilisé pour exécuter les étapes après le routage du trafic. En règle générale, ces tâches supervisent l’intégrité de la version mise à jour pendant une période définie.
on: failure
ou on: success
: Utilisé pour exécuter les étapes de nettoyage ou des actions de restauration.
Exemples
Dans l’exemple suivant, la stratégie canary pour AKS déploie d’abord les modifications avec des pods de 10 %, puis 20 %, tout en surveillant l’intégrité pendant postRouteTraffic
. Si tout se passe bien, une promotion jusqu’à 100 pour cent aura lieu.
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...