jobs.deployment.strategy.rolling tanımı
Sıralı dağıtım, bir uygulamanın önceki sürümünün örneklerini, her yinelemedeki sabit bir sanal makine kümesindeki (sıralı küme) uygulamanın yeni sürümünün örnekleriyle değiştirir.
rolling:
maxParallel: string # Maximum number of jobs running in parallel.
preDeploy: # Pre deploy hook for rolling 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 rolling 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 rolling 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 rolling 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 rolling 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
maxParallel
Dize.
Paralel çalışan iş sayısı üst sınırı.
preDeploy
preDeployHook.
Sıralı dağıtım stratejisi için dağıtım öncesi kancası.
deploy
deployHook.
Sıralı dağıtım stratejisi için kanca dağıtma.
routeTraffic
routeTrafficHook.
Sıralı dağıtım stratejisi için yol trafiği kancası.
postRouteTraffic
postRouteTrafficHook.
Sıralı dağıtım stratejisi için rota sonrası trafik kancası.
on
onSuccessOrFailureHook.
Sıralı dağıtım stratejisi için başarı veya başarısızlık kancası.
Açıklamalar
Azure Pipelines şu anda yalnızca VM kaynaklarına yönelik sıralı stratejiyi desteklemektedir.
Örneğin, sıralı dağıtım genellikle bir sonraki dağıtım kümesine geçmeden önce her sanal makine kümesindeki dağıtımların tamamlanmasını bekler. Her yinelemeden sonra bir sistem durumu denetimi yapabilirsiniz ve önemli bir sorun oluşursa sıralı dağıtım durdurulabilir.
Sıralı dağıtımlar, düğümün altında strategy:
anahtar sözcük rolling:
belirtilerek yapılandırılabilir.
strategy.name
değişkeni, stratejinin adını alan bu strateji bloğunda kullanılabilir. Bu durumda, yuvarlanıyor.
Tüm yaşam döngüsü kancaları desteklenir ve yaşam döngüsü kancası işleri her VM'de çalıştırılacak şekilde oluşturulur.
preDeploy
, deploy
, routeTraffic
ve postRouteTraffic
tarafından tanımlanan maxParallel
toplu iş boyutu başına bir kez yürütülür.
on: success
Ardından veya on: failure
yürütülür.
ile maxParallel: <# or % of VMs>
, paralel olarak dağıtılacak sanal makine hedeflerinin sayısını/yüzdesini denetleyebilirsiniz. Bu, uygulamanın bu makinelerde çalışmasını ve dağıtım makinelerin geri kalanında gerçekleşirken istekleri işleyebilmesini sağlar ve bu da genel kapalı kalma süresini azaltır.
Not
Bu özellikte bilinen birkaç boşluk vardır. Örneğin, bir aşamayı yeniden denediğinizde, yalnızca başarısız olan hedeflerde değil tüm VM'lerde dağıtımı yeniden çalıştırır.
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
VM'ler için aşağıdaki sıralı strateji örneği, her yinelemede en fazla beş hedefi güncelleştirir. maxParallel
, paralel olarak dağıtılacak hedef sayısını belirler. Seçim, dağıtılmakta olan hedefler hariç olmak üzere herhangi bir zamanda kullanılabilir kalması gereken hedeflerin mutlak sayısını veya yüzdesini hesaplar. Ayrıca dağıtım sırasında başarı ve başarısızlık koşullarını belirlemek için de kullanılır.
jobs:
- deployment: VMDeploy
displayName: web
environment:
name: smarthotel-dev
resourceType: VirtualMachine
strategy:
rolling:
maxParallel: 5 #for percentages, mention as x%
preDeploy:
steps:
- download: current
artifact: drop
- script: echo initialize, cleanup, backup, install certs
deploy:
steps:
- task: IISWebAppDeploymentOnMachineGroup@0
displayName: 'Deploy application to Website'
inputs:
WebSiteName: 'Default Web Site'
Package: '$(Pipeline.Workspace)/drop/**/*.zip'
routeTraffic:
steps:
- script: echo routing traffic
postRouteTraffic:
steps:
- script: echo health check post-route traffic
on:
failure:
steps:
- script: echo Restore from backup! This is on failure
success:
steps:
- script: echo Notify! This is on success