Bagikan melalui


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.

preDeploypreDeployHook.
Sebarkan hook sebelumnya untuk strategi penyebaran kenari.

deploydeployHook.
Sebarkan hook untuk strategi penyebaran kenari.

routeTrafficrouteTrafficHook.
Merutekan kait lalu lintas untuk strategi penyebaran kenari.

postRouteTrafficpostRouteTrafficHook.
Memposting kait lalu lintas rute untuk strategi penyebaran kenari.

ononSuccessOrFailureHook.
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 deploykait siklus hidup , , routeTrafficdan 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 deploykait 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... 

Lihat juga