jobs.deployment.strategy.canary definition
Strategia wdrażania kanarowego wprowadza zmiany w małym podzestawie serwerów.
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.
Definicje odwołujące się do tej definicji: jobs.deployment.strategy
Właściwości
increments
lista ciągów.
Maksymalny rozmiar partii dla wdrożenia.
preDeploy
preDeployHook.
Wstępnie wdrażaj hak dla strategii wdrażania kanarowego.
deploy
deployHook.
Wdrażanie haka dla strategii wdrażania kanarowego.
routeTraffic
routeTrafficHook.
Kierowanie punktów zaczepienia ruchu do strategii wdrażania kanarowego.
postRouteTraffic
postRouteTrafficHook.
Post route traffic hook for canary deployment strategy .Post route traffic hook for canary deployment strategy (Post route traffic hook for canary deployment strategy).
on
onSuccessOrFailureHook.
W przypadku powodzenia lub niepowodzenia haka dla strategii wdrażania kanarowego.
Uwagi
Strategia wdrażania kanarowego to zaawansowana strategia wdrażania, która pomaga ograniczyć ryzyko związane z wdrażaniem nowych wersji aplikacji. Korzystając z tej strategii, można najpierw wdrożyć zmiany w małym podzestawie serwerów. W miarę zwiększenia zaufania do nowej wersji możesz zwolnić ją na więcej serwerów w infrastrukturze i kierować do niego większy ruch.
Strategia wdrażania Kanary obsługuje preDeploy
punkt zaczepienia cyklu życia (wykonywany raz) i iteruje z deploy
punktami zaczepianymi , routeTraffic
i postRouteTraffic
cyklem życia. Następnie kończy się za pomocą haka success
lub failure
.
W tej strategii są dostępne następujące zmienne:
strategy.name
: nazwa strategii. Na przykład canary.
strategy.action
: Akcja do wykonania w klastrze Kubernetes. Na przykład wdróż, podwyższ poziom lub odrzuć.
strategy.increment
: wartość przyrostowa używana w bieżącej interakcji. Ta zmienna jest dostępna tylko w deploy
punktach zaczepień , routeTraffic
i postRouteTraffic
cyklu życia.
Opisy punktów zaczepienia cyklu życia
preDeploy
: służy do uruchamiania kroków, które inicjują zasoby przed rozpoczęciem wdrażania aplikacji.
deploy
: służy do uruchamiania kroków wdrażania aplikacji. Zadanie pobierania artefaktu zostanie automatycznie wprowadzone tylko w haku deploy
dla zadań wdrażania. Aby zatrzymać pobieranie artefaktów, użyj - download: none
lub wybierz określone artefakty do pobrania, określając zadanie Pobierz artefakt potoku.
routeTraffic
: służy do uruchamiania kroków obsługujących ruch do zaktualizowanej wersji.
postRouteTraffic
: służy do uruchamiania kroków po kierowaniu ruchu. Zazwyczaj te zadania monitorują kondycję zaktualizowanej wersji dla zdefiniowanego interwału.
on: failure
lub on: success
: służy do uruchamiania kroków dla akcji wycofywania lub czyszczenia.
Przykłady
W poniższym przykładzie strategia kanargu dla usługi AKS najpierw wdroży zmiany z 10 procentami zasobników, a następnie 20 procent podczas monitorowania kondycji podczas postRouteTraffic
. Jeśli wszystko pójdzie dobrze, będzie promować do 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...