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.
Un déploiement propagé remplace les instances de la version précédente d’une application par des instances de la nouvelle version de l’application sur un ensemble fixe de machines virtuelles (jeu propagé) dans chaque itération.
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.
Définitions qui font référence à cette définition : jobs.deployment.strategy
Propriétés
chaîne maxParallel
.
nombre maximal de travaux en cours d’exécution en parallèle.
deploy
deployHook.
Déployer le hook pour la stratégie de déploiement propagée.
routeTraffic
routeTrafficHook.
router le hook de trafic pour la stratégie de déploiement propagée.
postRouteTraffic
postRouteTrafficHook.
Post route traffic hook for rolling deployment strategy.
on
onSuccessOrFailureHook.
Sur le raccordement de réussite ou d’échec pour la stratégie de déploiement propagée.
Remarques
Actuellement, Azure Pipelines prend uniquement en charge la stratégie propagée pour les ressources de machine virtuelle.
Par exemple, un déploiement propagé attend généralement que les déploiements sur chaque ensemble de machines virtuelles se terminent avant de passer au prochain ensemble de déploiements. Vous pouvez effectuer un contrôle d’intégrité après chaque itération et si un problème important se produit, le déploiement propagé peut être arrêté.
Les déploiements propagés peuvent être configurés en spécifiant le mot clé rolling:
sous le nœud strategy:
.
La variable strategy.name
est disponible dans ce bloc de stratégie, qui prend le nom de la stratégie. Dans ce cas, propagé.
Tous les hooks de cycle de vie sont pris en charge et les travaux de hook de cycle de vie sont créés pour s’exécuter sur chaque machine virtuelle.
preDeploy
, deploy
, routeTraffic
et postRouteTraffic
sont exécutés une fois par taille de lot définie par maxParallel
.
Ensuite, on: success
ou on: failure
est exécuté.
Avec maxParallel: <# or % of VMs>
, vous pouvez contrôler le nombre/pourcentage de cibles de machine virtuelle à déployer en parallèle. Cela garantit que l’application s’exécute sur ces ordinateurs et est capable de gérer les demandes pendant que le déploiement se déroule sur le reste des machines, ce qui réduit le temps d’arrêt global.
Remarque
Il existe quelques lacunes connues dans cette fonctionnalité. Par exemple, lorsque vous réessayez une étape, il réexécutera le déploiement sur toutes les machines virtuelles, pas seulement les cibles ayant échoué.
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
L’exemple de stratégie propagée suivant pour les machines virtuelles met à jour jusqu’à cinq cibles dans chaque itération.
maxParallel
détermine le nombre de cibles pouvant être déployées en parallèle. Les comptes de sélection pour le nombre absolu ou le pourcentage de cibles qui doivent rester disponibles à tout moment à l’exclusion des cibles déployées. Il est également utilisé pour déterminer les conditions de réussite et d’échec pendant le déploiement.
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