definitie jobs.deployment.strategy.canary
De canary-implementatiestrategie implementeert wijzigingen in een kleine subset van servers.
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.
Definities die naar deze definitie verwijzen: jobs.deployment.strategy
Eigenschappen
increments
tekenreekslijst.
Maximale batchgrootte voor implementatie.
preDeploy
preDeployHook.
Pre deploy hook for canary-implementatiestrategie.
deploy
deployHook.
Implementeer hook voor kanary-implementatiestrategie.
routeTraffic
routeTrafficHook.
Route traffic hook voor canary-implementatiestrategie.
postRouteTraffic
postRouteTrafficHook.
Postroute verkeershook voor canary-implementatiestrategie.
on
onSuccessOrFailureHook.
Bij succes of mislukking hook voor canary-implementatiestrategie.
Opmerkingen
Canary-implementatiestrategie is een geavanceerde implementatiestrategie die helpt het risico te beperken dat gepaard gaat met het implementeren van nieuwe versies van toepassingen. Met behulp van deze strategie kunt u de wijzigingen eerst implementeren in een kleine subset van servers. Naarmate u meer vertrouwen krijgt in de nieuwe versie, kunt u deze vrijgeven aan meer servers in uw infrastructuur en er meer verkeer naartoe routeren.
De canary-implementatiestrategie ondersteunt de preDeploy
levenscyclushook (eenmaal uitgevoerd) en herhaalt met de deploy
, routeTraffic
en postRouteTraffic
levenscyclushook. Het verlaat vervolgens met de success
haak of failure
.
De volgende variabelen zijn beschikbaar in deze strategie:
strategy.name
: naam van de strategie. Bijvoorbeeld canary.
strategy.action
: de actie die moet worden uitgevoerd op het Kubernetes-cluster. Bijvoorbeeld implementeren, promoveren of weigeren.
strategy.increment
: de verhogingswaarde die wordt gebruikt in de huidige interactie. Deze variabele is alleen beschikbaar in deploy
, routeTraffic
en postRouteTraffic
levenscyclushaken.
Beschrijvingen van levenscyclushook
preDeploy
: wordt gebruikt om stappen uit te voeren waarmee resources worden geïnitialiseerd voordat de implementatie van de toepassing wordt gestart.
deploy
: wordt gebruikt om stappen uit te voeren waarmee uw toepassing wordt geïmplementeerd. De taak voor het downloaden van artefacten wordt alleen automatisch geïnjecteerd in de deploy
hook voor implementatietaken. Als u wilt stoppen met het downloaden van artefacten, gebruikt - download: none
of kiest u specifieke artefacten die u wilt downloaden door de taak Pijplijnartefact downloaden op te geven.
routeTraffic
: Wordt gebruikt om stappen uit te voeren die het verkeer naar de bijgewerkte versie verwerken.
postRouteTraffic
: wordt gebruikt om de stappen uit te voeren nadat het verkeer is gerouteerd. Normaal gesproken controleren deze taken de status van de bijgewerkte versie voor het gedefinieerde interval.
on: failure
of on: success
: wordt gebruikt om stappen uit te voeren voor terugdraaiacties of opschonen.
Voorbeelden
In het volgende voorbeeld implementeert de canary-strategie voor AKS eerst de wijzigingen met 10 procent pods, gevolgd door 20 procent, tijdens het bewaken van de status tijdens postRouteTraffic
. Als alles goed gaat, zal het promoveren naar 100 procent.
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...