definisi jobs.deployment.strategy.rolling
Penyebaran bergulir menggantikan instans versi aplikasi sebelumnya dengan instans versi baru aplikasi pada sekumpulan komputer virtual tetap (set bergulir) di setiap iterasi.
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.
Definisi yang mereferensikan definisi ini: jobs.deployment.strategy
Properti
maxParallel
String.
Jumlah maksimum pekerjaan yang berjalan secara paralel.
preDeploy
preDeployHook.
Hook pra-penyebaran untuk strategi penyebaran bergulir.
deploy
deployHook.
Sebarkan hook untuk strategi penyebaran bergulir.
routeTraffic
routeTrafficHook.
Merutekan kait lalu lintas untuk strategi penyebaran bergulir.
postRouteTraffic
postRouteTrafficHook.
Posting kait lalu lintas rute untuk strategi penyebaran bergulir.
on
onSuccessOrFailureHook.
Pada keberhasilan atau kegagalan kait untuk strategi penyebaran bergulir.
Keterangan
Azure Pipelines saat ini hanya mendukung strategi bergulir ke sumber daya VM.
Misalnya, penyebaran bergulir biasanya menunggu penyebaran pada setiap set komputer virtual selesai sebelum melanjutkan ke serangkaian penyebaran berikutnya. Anda dapat melakukan pemeriksaan kesehatan setelah setiap perulangan dan jika masalah signifikan terjadi, penyebaran bergulir dapat dihentikan.
Penyebaran bergulir dapat dikonfigurasi dengan menentukan kata kunci rolling:
di bawah simpul strategy:
.
Variabel strategy.name
tersedia dalam blok strategi ini, yang mengambil nama strategi. Dalam hal ini, bergulir.
Semua kait siklus hidup didukung dan pekerjaan kait siklus hidup dibuat untuk dijalankan pada setiap VM.
preDeploy
, deploy
, routeTraffic
, dan postRouteTraffic
dijalankan sekali per ukuran batch yang ditentukan oleh maxParallel
.
Lalu, baik on: success
maupun on: failure
atau dijalankan.
Dengan maxParallel: <# or % of VMs>
, Anda dapat mengontrol jumlah/persentase target komputer virtual untuk disebarkan secara paralel. Ini memastikan bahwa aplikasi berjalan pada komputer ini dan mampu menangani permintaan saat penyebaran berlangsung di komputer lain, yang mengurangi waktu henti keseluruhan.
Catatan
Terdapat beberapa celah yang diketahui dalam fitur ini. Misalnya, ketika Anda mencoba kembali suatu tahap, penyebaran akan dieksekusi kembali pada semua mesin virtual bukan hanya target yang gagal.
Deskripsi kait siklus hidup
preDeploy
: Digunakan untuk menjalankan langkah-langkah yang menginisialisasi sumber daya sebelum penyebaran aplikasi dimulai.
deploy
: Digunakan untuk menjalankan langkah-langkah yang menyebarkan aplikasi Anda. Tugas unduh artefak akan disuntikkan secara otomatis hanya di deploy
kait untuk pekerjaan penyebaran. Untuk berhenti mengunduh artefak, gunakan - download: none
atau pilih artefak tertentu untuk diunduh dengan menentukan tugas Unduh Artefak Alur.
routeTraffic
: Digunakan untuk menjalankan langkah-langkah yang melayani lalu lintas ke versi yang diperbarui.
postRouteTraffic
: Digunakan untuk menjalankan langkah-langkah setelah lalu lintas dirutekan. Biasanya, tugas-tugas ini memantau kesehatan versi yang diperbarui untuk interval yang ditentukan.
on: failure
atau on: success
: Digunakan untuk menjalankan langkah-langkah untuk tindakan putar kembali atau pembersihan.
Contoh
Contoh strategi bergulir berikut untuk VM memperbarui hingga lima target dalam setiap perulangan. maxParallel
akan menentukan jumlah target yang dapat disebarkan, secara paralel. Pilihan memperhitungkan jumlah mutlak atau persentase target yang harus tetap tersedia setiap saat tidak termasuk target yang disebarkan. Pilihan ini juga digunakan untuk menentukan kondisi keberhasilan dan kegagalan selama penyebaran.
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