jobs.deployment.strategy.canary tanımı
Kanarya dağıtım stratejisi, sunucuların küçük bir alt kümesinde yapılan değişiklikleri dağıtır.
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.
Bu tanıma başvuran tanımlar: jobs.deployment.strategy
Özellikler
increments
dize listesi.
Dağıtım için en büyük toplu iş boyutu.
preDeploy
preDeployHook.
Kanarya dağıtım stratejisi için önceden dağıtım kancası.
deploy
deployHook.
Kanarya dağıtım stratejisi için kanca dağıtma.
routeTraffic
routeTrafficHook.
Kanarya dağıtım stratejisi için yol trafiği kancası.
postRouteTraffic
postRouteTrafficHook.
Kanarya dağıtım stratejisi için rota sonrası trafik kancası.
on
onSuccessOrFailureHook.
Kanarya dağıtım stratejisi için başarı veya başarısızlık kancası.
Açıklamalar
Kanarya dağıtım stratejisi, uygulamaların yeni sürümlerinin kullanıma sunulma riskini azaltmaya yardımcı olan gelişmiş bir dağıtım stratejisidir. Bu stratejiyi kullanarak, değişiklikleri önce sunucuların küçük bir alt kümesine dağıtabilirsiniz. Yeni sürüme daha fazla güven kazandıkça, altyapınızdaki daha fazla sunucuya yayınlayabilir ve buna daha fazla trafik yönlendirebilirsiniz.
Kanarya dağıtım stratejisi yaşam döngüsü kancasını preDeploy
destekler (bir kez yürütülür) ve , routeTraffic
ve postRouteTraffic
yaşam döngüsü kancalarıyla yinelenirdeploy
. Ardından veya failure
kancasıyla success
çıkar.
Bu stratejide aşağıdaki değişkenler kullanılabilir:
strategy.name
: Stratejinin adı. Örneğin kanarya.
strategy.action
: Kubernetes kümesinde gerçekleştirilecek eylem. Örneğin, dağıtın, yükseltin veya reddedin.
strategy.increment
: Geçerli etkileşimde kullanılan artış değeri. Bu değişken yalnızca deploy
, routeTraffic
ve postRouteTraffic
yaşam döngüsü kancalarında kullanılabilir.
Yaşam döngüsü kancalarının açıklamaları
preDeploy
: Uygulama dağıtımı başlamadan önce kaynakları başlatan adımları çalıştırmak için kullanılır.
deploy
: Uygulamanızı dağıtan adımları çalıştırmak için kullanılır. Yapıt indirme görevi yalnızca dağıtım işleri için kancaya deploy
otomatik olarak eklenecektir. Yapıtları indirmeyi durdurmak için İşlem Hattı Yapıtlarını İndir görevini belirterek indirilmesi gereken belirli yapıtları kullanın - download: none
veya seçin.
routeTraffic
: Güncelleştirilmiş sürüme gelen trafiğe hizmet eden adımları çalıştırmak için kullanılır.
postRouteTraffic
: Trafik yönlendirildikten sonra adımları çalıştırmak için kullanılır. Genellikle, bu görevler tanımlı aralık için güncelleştirilmiş sürümün durumunu izler.
on: failure
veya on: success
: Geri alma eylemleri veya temizleme adımlarını çalıştırmak için kullanılır.
Örnekler
Aşağıdaki örnekte, AKS için kanarya stratejisi değişiklikleri ilk olarak yüzde 10 pod ile ve ardından yüzde 20 ile dağıtır ve sırasında postRouteTraffic
sistem durumunu izler. Her şey yolunda giderse, yüzde 100'e yükseltecektir.
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...