definizione jobs.deployment.strategy.canary
La strategia di distribuzione Canary implementa le modifiche a un piccolo subset di server.
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.
Definizioni che fanno riferimento a questa definizione: jobs.deployment.strategy
Proprietà
increments
elenco di stringhe.
Dimensioni massime del batch per la distribuzione.
preDeploy
preDeployHook.
Pre deploy hook per la strategia di distribuzione canary.
deploy
deployHook.
Distribuire hook per la strategia di distribuzione canary.
routeTraffic
routeTrafficHook.
Indirizzare l'hook del traffico per la strategia di distribuzione canary.
postRouteTraffic
postRouteTrafficHook.
Post route traffic hook per la strategia di distribuzione canary.
on
onSuccessOrFailureHook.
In caso di esito positivo o negativo per la strategia di distribuzione canary.
Commenti
La strategia di distribuzione Canary è una strategia di distribuzione avanzata che consente di ridurre il rischio coinvolto nell'implementazione di nuove versioni delle applicazioni. Usando questa strategia, è possibile implementare prima le modifiche in un piccolo sottoinsieme di server. Man mano che si acquisisce maggiore familiarità con la nuova versione, è possibile rilasciarla in più server dell'infrastruttura e instradarvi più traffico.
La strategia di distribuzione Canary supporta l'hook del ciclo di vita (eseguito una sola volta) e esegue l'iterazione preDeploy
con gli deploy
hook , routeTraffic
e postRouteTraffic
del ciclo di vita. Viene quindi chiuso con l'amo success
o failure
.
Le variabili seguenti sono disponibili in questa strategia:
strategy.name
: nome della strategia. Ad esempio, canary.
strategy.action
: azione da eseguire nel cluster Kubernetes. Ad esempio, distribuire, promuovere o rifiutare.
strategy.increment
: valore di incremento utilizzato nell'interazione corrente. Questa variabile è disponibile solo in deploy
, routeTraffic
e postRouteTraffic
gli hook del ciclo di vita.
Descrizioni degli hook del ciclo di vita
preDeploy
: usato per eseguire i passaggi che inizializzano le risorse prima dell'avvio della distribuzione dell'applicazione.
deploy
: usato per eseguire i passaggi che distribuiscono l'applicazione. L'attività Scarica artefatto verrà inserita automaticamente solo nell'hook deploy
per i processi di distribuzione. Per interrompere il download degli artefatti, usare - download: none
o scegliere elementi specifici da scaricare specificando l'attività Scarica artefatto pipeline.
routeTraffic
: usato per eseguire i passaggi che servono il traffico alla versione aggiornata.
postRouteTraffic
: usato per eseguire i passaggi dopo che il traffico viene instradato. In genere, queste attività monitorano l'integrità della versione aggiornata per l'intervallo definito.
on: failure
oppure on: success
: usato per eseguire i passaggi per eseguire azioni di rollback o pulizia.
Esempio
Nell'esempio seguente, la strategia canary per il servizio Azure Kubernetes distribuirà prima le modifiche con i pod del 10 percento, seguiti dal 20 per cento, mentre monitorerà l'integrità durante postRouteTraffic
. Se tutto va bene, verrà promosso al 100%.
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...