jobs.deployment.strategy.canary-definitie
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
lijst met tekenreeksen.
maximale batchgrootte voor implementatie.
preDeploy
preDeployHook.
Haak vooraf implementeren voor canary-implementatiestrategie.
deploy
deployHook.
Hook implementeren voor canary-implementatiestrategie.
routeTraffic
routeTrafficHook.
Route traffic hook for canary deployment strategy.
postRouteTraffic
postRouteTrafficHook.
Post route traffic hook for canary deployment strategy.
on
onSuccessOrFailureHook.
Over geslaagde of mislukte hook voor canary-implementatiestrategie.
Opmerkingen
Canary-implementatiestrategie is een geavanceerde implementatiestrategie waarmee het risico wordt beperkt dat gepaard gaat met het implementeren van nieuwe versies van toepassingen. Met 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 meer verkeer naar de versie routeren.
Canary-implementatiestrategie ondersteunt de preDeploy
levenscyclushook (eenmaal uitgevoerd) en herhaalt de deploy
, routeTraffic
en postRouteTraffic
levenscyclushook. Vervolgens wordt het afgesloten met de success
of failure
haak.
De volgende variabelen zijn beschikbaar in deze strategie:
strategy.name
: naam van de strategie. Bijvoorbeeld kanarie.
strategy.action
: de actie die moet worden uitgevoerd op het Kubernetes-cluster. Bijvoorbeeld implementeren, promoveren of weigeren.
strategy.increment
: de incrementele waarde die wordt gebruikt in de huidige interactie. Deze variabele is alleen beschikbaar in deploy
, routeTraffic
en postRouteTraffic
levenscyclushook.
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. Downloadartefacttaak wordt alleen automatisch geïnjecteerd in de deploy
hook voor implementatietaken. Als u wilt stoppen met het downloaden van artefacten, gebruikt u - download: none
of kiest u specifieke artefacten die u wilt downloaden door taak Pijplijnartefact downloadenop te geven.
routeTraffic
: wordt gebruikt om stappen uit te voeren die het verkeer naar de bijgewerkte versie leveren.
postRouteTraffic
: wordt gebruikt om de stappen uit te voeren nadat het verkeer is gerouteerd. Normaal gesproken bewaken deze taken de status van de bijgewerkte versie voor een gedefinieerd 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, terwijl de status tijdens postRouteTraffic
wordt bewaakt. Als alles goed gaat, zal het promoveren tot 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...