Compartir a través de


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 string list.
Tamaño máximo del lote para la implementación.

preDeploypreDeployHook.
Enlace previo a la implementación para la estrategia de implementación controlada.

deploydeployHook.
Implemente el enlace para la estrategia de implementación controlada.

routeTrafficrouteTrafficHook.
Enrutamiento del enlace de tráfico para la estrategia de implementación controlada.

postRouteTrafficpostRouteTrafficHook.
Después del enlace de tráfico de enrutamiento para la estrategia de implementación controlada.

ononSuccessOrFailureHook.
En el enlace de éxito o error para la estrategia de implementación controlada.

Observaciones

La estrategia de implementación de valores controlados 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 de valores controlados admite el enlace de ciclo de vida preDeploy (ejecutado una vez) e itera con los enlaces de ciclo de vida 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, "de valores controlados".
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 utilizado en la interacción actual. Esta variable solo está disponible en enlaces de ciclo de vida deploy, routeTraffic y postRouteTraffic.

Descripciones de enlaces de ciclo de vida

preDeploy: se usa para ejecutar pasos que inicializan los recursos antes de que comience la implementación de la aplicación.

deploy: se usa para ejecutar los pasos que implementan la aplicación. La tarea Descargar artefacto se insertará automáticamente solo 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 mediante la especificación de la 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 durante un intervalo definido.

on: failure u on: success: se usan para ejecutar pasos de acciones de reversión o 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, al tiempo que supervisará el estado durante postRouteTraffic. Si todo va bien, ascenderá 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... 

Consulte también