definisi jobs.deployment.strategy.canary
Strategi penyebaran kenari meluncurkan perubahan pada subset kecil server.
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.
Definisi yang mereferensikan definisi ini: jobs.deployment.strategy
Properti
increments
daftar string.
Ukuran batch maksimum untuk penyebaran.
preDeploy
preDeployHook.
Sebarkan hook sebelumnya untuk strategi penyebaran kenari.
deploy
deployHook.
Sebarkan hook untuk strategi penyebaran kenari.
routeTraffic
routeTrafficHook.
Merutekan kait lalu lintas untuk strategi penyebaran kenari.
postRouteTraffic
postRouteTrafficHook.
Memposting kait lalu lintas rute untuk strategi penyebaran kenari.
on
onSuccessOrFailureHook.
Pada kait keberhasilan atau kegagalan untuk strategi penyebaran kenari.
Keterangan
Strategi penyebaran Kenari adalah strategi penyebaran tingkat lanjut yang membantu mengurangi risiko yang terlibat dalam meluncurkan versi aplikasi baru. Dengan menggunakan strategi ini, Anda dapat meluncurkan perubahan ke sebagian kecil server terlebih dahulu. Saat Anda semakin percaya diri dengan versi baru, Anda dapat merilisnya ke lebih banyak server di infrastruktur Anda dan mengarahkan lebih banyak lalu lintas ke sana.
Strategi penyebaran kenari mendukung preDeploy
kait siklus hidup (dijalankan sekali) dan melakukan iterasi dengan deploy
kait siklus hidup , , routeTraffic
dan postRouteTraffic
. Kemudian keluar dengan kait success
atau failure
.
Variabel berikut tersedia dalam strategi ini:
strategy.name
: Nama strategi. Misalnya, kenari.
strategy.action
: Tindakan yang akan dilakukan pada kluster Kubernetes. Misalnya, menyebarkan, mempromosikan, atau menolak.
strategy.increment
: Nilai kenaikan yang digunakan dalam interaksi saat ini. Variabel ini hanya tersedia di deploy
kait siklus hidup , routeTraffic
, dan postRouteTraffic
.
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
hook 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
Dalam contoh berikut, strategi kenari untuk AKS akan terlebih dahulu menyebarkan perubahan dengan 10 persen pod, diikuti oleh 20 persen, sambil memantau kesehatan selama postRouteTraffic
. Jika semua berjalan dengan baik, itu akan mempromosikan hingga 100 persen.
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...