Bagikan melalui


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.

preDeploypreDeployHook.
Hook pra-penyebaran untuk strategi penyebaran bergulir.

deploydeployHook.
Sebarkan hook untuk strategi penyebaran bergulir.

routeTrafficrouteTrafficHook.
Merutekan kait lalu lintas untuk strategi penyebaran bergulir.

postRouteTrafficpostRouteTrafficHook.
Posting kait lalu lintas rute untuk strategi penyebaran bergulir.

ononSuccessOrFailureHook.
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

Lihat juga