Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La stratégie de déploiement Canary déploie les modifications apportées à 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
liste de chaînes.
taille de lot maximale pour le déploiement.
deploy
deployHook.
Déployer le hook pour la stratégie de déploiement canary.
routeTraffic
routeTrafficHook.
router le hook de trafic pour la stratégie de déploiement canary.
postRouteTraffic
postRouteTrafficHook.
Post route traffic hook for canary deployment strategy.
on
onSuccessOrFailureHook.
Sur le hook de réussite ou d’échec pour la stratégie de déploiement canary.
Remarques
La stratégie de déploiement Canary est une stratégie de déploiement avancée qui permet d’atténuer le risque impliqué dans le déploiement de nouvelles versions d’applications. À l’aide de cette stratégie, vous pouvez d’abord déployer les modifications apportées à 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 Canary prend en charge le hook de cycle de vie preDeploy
(exécuté une seule fois) et effectue une itération avec les deploy
, les routeTraffic
et les crochets de cycle de vie postRouteTraffic
. Il sort ensuite avec le success
ou le crochet failure
.
Les variables suivantes sont disponibles dans cette stratégie :
strategy.name
: nom de la stratégie. Par exemple, canary.
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 n’est disponible que dans deploy
, routeTraffic
et postRouteTraffic
crochets de cycle de vie.
Descriptions des crochets de cycle de vie
preDeploy
: permet d’exécuter les étapes qui initialisent les ressources avant le démarrage du déploiement de l’application.
deploy
: utilisé pour exécuter des étapes qui déploient votre application. La tâche de téléchargement d’artefact est injectée automatiquement uniquement dans le deploy
hook 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 tâche Télécharger l’artefact de pipeline.
routeTraffic
: utilisé pour exécuter les étapes qui servent le trafic vers 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 surveillent l’intégrité de la version mise à jour pour un intervalle défini.
on: failure
ou on: success
: permet d’exécuter des étapes pour les actions de restauration ou le nettoyage.
Exemples
Dans l’exemple suivant, la stratégie canary pour AKS déploie d’abord les modifications avec 10 % de pods, suivie de 20 %, tout en surveillant l’intégrité pendant postRouteTraffic
. Si tout va bien, il va promouvoir à 100 pour cent.
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...