Partager via


définition jobs.deployment.strategy.rolling

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.

preDeploy préDeployHook .
hook de prédéploiement pour la stratégie de déploiement propagée.

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, routeTrafficet 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

Voir aussi