Menggunakan strategi deployment canary

Dokumen ini menjelaskan cara mengonfigurasi dan menggunakan strategi deployment canary.

Apa itu deployment canary?

Deployment canary adalah peluncuran aplikasi yang progresif yang membagi traffic antara versi yang sudah di-deploy dan versi baru, yang diluncurkan ke sebagian pengguna sebelum diluncurkan sepenuhnya.

Jenis target yang didukung

Deployment canary di Cloud Deploy mendukung semua jenis target, termasuk yang berikut:

Canary juga berfungsi dengan multi-target.

Mengapa menggunakan strategi deployment canary?

Deployment canary memberi Anda kesempatan untuk merilis sebagian aplikasi. Dengan cara ini, Anda dapat memastikan versi baru aplikasi dapat diandalkan sebelum mengirimkannya kepada semua pengguna.

Misalnya, jika men-deploy ke GKE atau GKE Enterprise, Anda akan men-deploy versi baru aplikasi ke pod dalam jumlah terbatas. Versi lama akan terus berjalan, tetapi dengan lebih banyak traffic yang dikirim ke pod baru.

Jika Anda men-deploy ke Cloud Run, Cloud Run sendiri akan membagi traffic antara revisi lama dan baru, sesuai dengan persentase yang Anda konfigurasi.

Jenis-jenis canary

Dengan Cloud Deploy, Anda dapat mengonfigurasi jenis deployment canary berikut:

  • Otomatis

    Dengan deployment canary otomatis, Anda dapat mengonfigurasi Cloud Deploy dengan serangkaian persentase yang menunjukkan deployment progresif. Cloud Deploy melakukan operasi tambahan untuk Anda, untuk membagi persentase traffic antara versi lama dan baru.

  • Otomatis kustom

    Untuk canary otomatis kustom, Anda dapat menyediakan hal berikut:

    • Nama fase
    • Sasaran persentase
    • Profil Skaffold yang akan digunakan untuk fase
    • Apakah akan menyertakan tugas verifikasi atau tidak

    Namun, Anda tidak perlu memberikan informasi penyeimbangan traffic. Cloud Deploy membuat resource yang diperlukan, seperti yang dijelaskan di sini.

  • Khusus

    Dengan canary kustom, Anda mengonfigurasi setiap fase canary secara terpisah, termasuk hal berikut:

    • Nama fase
    • Sasaran persentase
    • Profil Skaffold yang akan digunakan untuk fase
    • Apakah akan menyertakan tugas verifikasi atau tidak

    Selain itu, untuk canary yang sepenuhnya kustom, Anda memberikan semua konfigurasi load balancing, seperti yang dijelaskan di sini.

Fase-fase deployment canary

Saat Anda membuat rilis untuk deployment canary, peluncuran tersebut akan dibuat dengan satu fase untuk setiap penambahan canary, ditambah fase stable akhir sebesar 100%.

Misalnya, jika Anda mengonfigurasi canary untuk peningkatan 25%, 50%, dan 75%, peluncuran akan memiliki fase berikut:

  • canary-25
  • canary-50
  • canary-75
  • stable

Anda dapat membaca selengkapnya tentang fase peluncuran, tugas, dan tugas yang berjalan di Mengelola peluncuran.

Apa yang terjadi selama panggilan canary otomatis atau kustom otomatis

Untuk mendukung deployment canary, Cloud Deploy menyertakan langkah-langkah pemrosesan khusus saat merender manifes Kubernetes atau konfigurasi layanan Cloud Run:

GKE/GKE Enterprise (jaringan)

Berikut cara Cloud Deploy menjalankan deployment canary di GKE dan GKE Enterprise berbasis jaringan:

  1. Anda memberikan nama resource Deployment dan resource Layanan.

  2. Cloud Deploy membuat resource Deployment tambahan dengan nama Deployment saat ini ditambah -canary.

  3. Cloud Deploy mengubah Layanan untuk menyesuaikan pemilih guna memilih pod di Deployment saat ini dan pod canary.

    Cloud Deploy menghitung jumlah pod yang akan digunakan untuk canary berdasarkan penghitungan yang dijelaskan di sini. Penghitungan tersebut berbeda-beda bergantung pada apakah Anda mengaktifkan atau menonaktifkan penyediaan berlebih pod.

    Jika kita melewati ke fase stable, Cloud Deploy akan menambahkan label yang akan digunakan untuk mencocokkan pod sehingga tersedia untuk operasi canary berikutnya.

    Cloud Deploy membuat Deployment yang menyertakan persentase pod tertentu pada fase tertentu, yang akan mengupdatenya untuk setiap fase. Hal ini dilakukan dengan menghitung jumlah pod sebagai persentase dari jumlah asli pod. Hal ini dapat menyebabkan pemisahan traffic yang tidak tepat. Jika memerlukan pemisahan traffic yang tepat, Anda dapat melakukannya menggunakan Gateway API.

    Selain itu, Rahasia dan ConfigMaps juga disalin dan diganti namanya dengan -canary.

  4. Selama fase stable, Deployment -canary akan diperkecil menjadi nol, dan Deployment asli akan diganti dengan Deployment baru.

    Cloud Deploy tidak mengubah Deployment asli hingga fase stable.

Cloud Deploy menyediakan pod untuk mencapai persentase canary yang diminta sedekat mungkin. Hal ini didasarkan pada jumlah pod, bukan traffic ke pod. Jika ingin canary didasarkan pada traffic, Anda harus menggunakan Gateway API.

Untuk canary berbasis jaringan GKE, Anda dapat mengaktifkan atau menonaktifkan penyediaan berlebih pod. Bagian berikut menjelaskan cara Cloud Deploy menghitung jumlah pod yang akan disediakan untuk deployment canary bagi setiap fase canary.

Penyediaan pod dengan penyediaan berlebih diaktifkan

Dengan mengaktifkan penyediaan berlebih (disablePodOverprovisioning: false), Cloud Deploy membuat pod tambahan yang cukup untuk menjalankan persentase canary yang Anda inginkan, berdasarkan jumlah pod yang menjalankan deployment yang ada. Formula berikut menunjukkan cara Cloud Deploy menghitung jumlah pod yang akan disediakan untuk deployment canary untuk setiap fase canary, saat penyediaan yang berlebihan pod diaktifkan:

math.Ceil( percentage * ReplicaCountOfDeploymentOnCluster / (100-percentage))

Dengan formula ini, jumlah replika saat ini (jumlah pod yang sudah Anda miliki, sebelum canary ini) dikalikan dengan persentase canary untuk fase tersebut, dan hasilnya dibagi dengan (100 dikurangi persentase).

Misalnya, jika Anda memiliki 4 pod aleady, dan fase canary adalah 50%, jumlah pod canary adalah 4. (Hasil 100-percentage digunakan sebagai persentase: 100-50=50, yang diperlakukan sebagai .50.)

Penyediaan berlebih pod adalah perilaku default.

Penyediaan pod dengan penyediaan berlebih dinonaktifkan

Anda dapat menonaktifkan penyediaan yang berlebihan (disablePodOverprovisioning: true), untuk memastikan Cloud Deploy tidak meningkatkan jumlah replika Anda.

Formula berikut menunjukkan cara Cloud Deploy menghitung penyediaan pod untuk deployment canary bagi setiap fase canary, saat penyediaan yang berlebihan pod dinonaktifkan:

math.Ceil( (ReplicaCountOfDeploymentOnCluster + ReplicaCountOfCanaryDeploymentOnCluster) * percentage)

Dalam formula ini, ReplicaCountOfCanaryDeploymentOnCluster hanya ada jika sudah ada fase canary. Jika ini adalah fase canary pertama, tidak akan ada ReplicaCountOfCanaryDeploymentOnCluster.

Jika Anda memulai dengan 4 pod, jumlah tersebut dikalikan dengan persentase canary (misalnya, 50%, atau .5) untuk mendapatkan 2. Oleh karena itu, deployment asli kini diperkecil menjadi 2, dan 2 pod baru dibuat untuk deployment canary. Jika kemudian Anda memiliki tahap canary 75%, berarti Anda memiliki 2 (deployment asli) +2 (tahap canary pertama), *.75, untuk mendapatkan pod canary 3 dan pod 1 yang menjalankan deployment asli.

GKE/GKE Enterprise (Gateway)

Berikut cara Cloud Deploy mengeksekusi deployment canary di GKE dan GKE Enterprise menggunakan Gateway API:

  1. Selain referensi Deployment dan Service, Anda juga harus menyediakan resource HTTPRoute, dengan aturan backendRefs yang mereferensikan Service.

  2. Cloud Deploy membuat Deployment baru dengan nama Deployment asli Anda plus -canary, dan Service baru dengan nama Service asli plus -canary.

    Selain itu, Secret, ConfigMaps, dan Autoscaler Pod Horizontal juga disalin dan diganti namanya dengan -canary.

  3. Untuk setiap fase canary, Cloud Deploy memodifikasi HTTPRoute untuk memperbarui pembobotan antara pod Deployment asli dan pod Deployment canary, berdasarkan persentase untuk fase tersebut.

    Karena kemungkinan ada penundaan yang menyebarkan perubahan pada resource HTTPRoute, Anda dapat menyertakan properti routeUpdateWaitTime dalam konfigurasi Anda, sehingga sistem menunggu selama jangka waktu tertentu untuk penerapan ini.

  4. Selama fase stable, Deployment -canary diperkecil menjadi nol, dan Deployment asli diupdate untuk menggunakan Deployment rilis baru.

    Selain itu, HTTPRoute kini dikembalikan ke aslinya yang Anda berikan.

    Cloud Deploy tidak mengubah Deployment atau Layanan asli hingga fase stable.

Cloud Run

Berikut cara Cloud Deploy menjalankan deployment canary untuk Cloud Run:

  • Untuk deployment canary ke Cloud Run, jangan berikan stanza traffic di YAML layanan Anda.

  • Saat membuat peluncuran baru untuk canary, Cloud Deploy membagi traffic antara revisi sebelumnya yang berhasil di-deploy oleh Cloud Deploy dan revisi baru.

Jika ingin melihat perbedaan di antara fase deployment canary, Anda dapat melihat perubahan dalam manifes per fase yang dirender yang tersedia di release inspector. Anda dapat melakukannya bahkan sebelum peluncuran dimulai. Selain itu, jika menggunakan deployment paralel, Anda juga dapat memeriksa manifes yang dirender setiap turunan.

Mengonfigurasi deployment canary

Bagian ini menjelaskan cara mengonfigurasi pipeline pengiriman dan target Anda untuk deployment canary.

Petunjuk di sini hanya mencakup apa yang spesifik untuk konfigurasi canary. Dokumen Men-deploy aplikasi Anda berisi petunjuk umum untuk mengonfigurasi dan menjalankan pipeline deployment Anda.

Pastikan Anda memiliki izin yang diperlukan

Selain izin Identity and Access Management lain yang diperlukan untuk menggunakan Cloud Deploy, Anda memerlukan izin berikut agar dapat melakukan tindakan tambahan yang mungkin diperlukan untuk deployment canary:

  • clouddeploy.rollouts.advance
  • clouddeploy.rollouts.ignoreJob
  • clouddeploy.rollouts.cancel
  • clouddeploy.rollouts.retryJob
  • clouddeploy.jobRuns.get
  • clouddeploy.jobRuns.list
  • clouddeploy.jobRuns.terminate

Baca artikel Peran dan izin IAM untuk mengetahui informasi selengkapnya tentang peran yang tersedia, termasuk izin ini.

Menyiapkan skaffold.yaml

Seperti deployment standar, canary Anda memerlukan file skaffold.yaml, yang menentukan cara manifes dan definisi layanan dirender dan di-deploy.

skaffold.yaml yang Anda buat untuk deployment canary tidak memiliki persyaratan khusus selain yang dibutuhkan untuk deployment standar.

Menyiapkan definisi manifes atau layanan

Seperti deployment standar, canary Anda memerlukan manifes Kubernetes atau definisi layanan Cloud Run.

GKE dan GKE Enterprise

Untuk canary, manifes Anda harus memiliki hal berikut:

  • Deployment dan Layanan.

  • Service harus menentukan pemilih app, dan harus memilih Pod Deployment yang ditentukan.

  • Jika Anda menggunakan canary berbasis Gateway API, manifes juga harus memiliki HTTPRoute.

Cloud Run

Untuk canary di Cloud Run, file definisi layanan Cloud Run normal Anda sudah cukup, tetapi tanpa stanza traffic. Cloud Deploy mengelola pemisahan traffic antara revisi terakhir yang berhasil dan revisi baru.

Mengonfigurasi canary otomatis

Petunjuk berikut ditujukan untuk target jaringan berbasis layanan Cloud Run, GKE, dan GKE Enterprise. Jika Anda menggunakan Kubernetes Gateway API dengan GKE atau GKE Enterprise, lihat dokumentasi ini.

Anda mengonfigurasi canary otomatis dalam definisi pipeline pengiriman Anda:

GKE dan GKE Enterprise

Pada tahap pipeline, sertakan properti strategy, seperti berikut:

serialPipeline:
  stages:
  - targetId: prod
    profiles: []
    strategy:
      canary:
        runtimeConfig:
          kubernetes:
            serviceNetworking:
              service: "SERVICE_NAME"
              deployment: "DEPLOYMENT_NAME"
        canaryDeployment:
          percentages: [PERCENTAGES]
          verify: true|false

Dalam konfigurasi ini...

  • SERVICE_NAME adalah nama Layanan Kubernetes, yang ditentukan dalam manifes Anda.

  • DEPLOYMENT_NAME adalah nama Deployment Kubernetes Anda, yang ditentukan dalam manifes.

  • PERCENTAGES adalah daftar nilai persentase yang dipisahkan koma yang mewakili penambahan canary, misalnya [5, 25, 50].

    Selain itu, ini tidak mencakup 100, karena deployment 100% persen diasumsikan dalam canary, dan ditangani oleh fase stable.

  • Anda dapat mengaktifkan verifikasi deployment (verify: true). Jika Anda melakukannya, tugas verify akan diaktifkan di setiap fase.

Cloud Run

Pada tahap pipeline, sertakan properti strategy, seperti berikut:

serialPipeline:
  stages:
  - targetId: prod
    profiles: []
    strategy:
      canary:
        runtimeConfig:
          cloudRun:
            automaticTrafficControl: true
        canaryDeployment:
          percentages: [PERCENTAGES]
          verify: true|false

Dalam konfigurasi ini...

  • PERCENTAGES adalah daftar nilai persentase yang dipisahkan koma yang mewakili penambahan canary, misalnya [25, 50, 75]. Perhatikan bahwa ini tidak mencakup 100, karena deployment 100% persen diasumsikan dalam canary, dan ditangani oleh fase stable.
  • Anda dapat mengaktifkan verifikasi deployment (verify: true). Jika Anda melakukannya, tugas verify akan ditambahkan ke setiap fase canary.

Mengonfigurasi canary kustom

Anda dapat mengonfigurasi canary secara manual, bukan sepenuhnya mengandalkan otomatisasi yang disediakan oleh Cloud Deploy. Dengan konfigurasi canary kustom, Anda menentukan hal berikut dalam definisi pipeline pengiriman:

  • Nama fase peluncuran

    Dalam canary yang sepenuhnya otomatis, Cloud Deploy memberi nama fase untuk Anda (misalnya, canary-25, canary-75, stable). Namun, dengan canary kustom, Anda dapat memberi nama setiap fase, selama unik di antara semua fase untuk tahap canary ini, dan mematuhi batasan nama resource. Namun, nama fase akhir (100%) harus stable.

  • Sasaran persentase untuk setiap fase

    Tentukan persentase secara terpisah, per fase.

  • Profil Skaffold yang akan digunakan untuk fase

    Anda dapat menggunakan profil Skaffold terpisah untuk setiap fase, atau profil yang sama, atau kombinasi apa pun. Setiap profil dapat menggunakan manifes Kubernetes atau definisi layanan Cloud Run yang berbeda. Anda juga dapat menggunakan lebih dari satu profil untuk fase tertentu. Cloud Deploy menggabungkannya.

  • Apakah ada tugas verifikasi untuk fase tersebut

    Ingat bahwa jika mengaktifkan verifikasi, Anda juga perlu configure skaffold.yaml untuk verifikasi.

Semua jenis target didukung untuk canary khusus.

Elemen konfigurasi canary kustom

YAML berikut menunjukkan konfigurasi untuk fase-fase deployment canary yang sepenuhnya kustom:

strategy:
  canary:
    # Custom configuration for each canary phase
    ​customCanaryDeployment:
      phaseConfigs:
      - phaseId: "PHASE1_NAME"
        percentage: PERCENTAGE1
        profiles: [ "PROFILE_NAME" ]
        verify: true | false
      - …
      - phaseId: "stable"
        percentage: 100
        profiles: [ "LAST_PROFILE_NAME" ]
        verify: true|false

Dalam YAML ini

  • PHASE1_NAME

    Adalah nama fase. Setiap nama fase harus unik.

  • [ "PROFILE_NAME" ]

    Adalah nama profil yang akan digunakan untuk fase. Anda dapat menggunakan profil yang sama untuk setiap fase, atau profil yang berbeda untuk setiap fase, atau kombinasi apa pun. Selain itu, Anda dapat menentukan lebih dari satu profil. Cloud Deploy menggunakan semua profil yang Anda tentukan, ditambah profil atau manifes yang digunakan oleh keseluruhan tahap.

  • PERCENTAGE1

    Merupakan persentase yang akan di-deploy untuk fase pertama. Setiap fase harus memiliki nilai persentase yang unik, dan nilai tersebut harus berupa persentase keseluruhan (bukan 10.5, misalnya), dan fase harus dalam urutan menaik.

  • verify: true|false

    Memberi tahu Cloud Deploy apakah akan menyertakan tugas verifikasi untuk fase tersebut. Perhatikan bahwa agar setiap fase menggunakan verifikasi, Skaffold menggunakan profil yang sama untuk verifikasi yang ditentukan untuk render dan deploy untuk fase tersebut.

  • stable

    Fase terakhir harus diberi nama stable.

Persentase untuk fase terakhir harus 100. Fase dijalankan sesuai dengan urutan yang Anda konfigurasi dalam stanza ​customCanaryDeployment ini, tetapi jika nilai persentase tidak dalam urutan menaik, perintah untuk mendaftarkan pipeline pengiriman akan gagal dengan error.

Perhatikan bahwa konfigurasi untuk canary kustom tidak menyertakan stanza runtimeConfig. Jika Anda menyertakan runtimeConfig, konten ini dianggap sebagai kenari otomatis kustom.

Mengonfigurasi canary kustom otomatis

Canary otomatis kustom mirip dengan canary kustom karena Anda menentukan fase canary terpisah, dengan nama fase kustom, nilai persentase, profil Skaffold, dan verifikasi tugas. Namun, dengan canary kustom, Anda tidak perlu menyediakan konfigurasi yang menentukan pembagian traffic. Cloud Deploy melakukannya untuk Anda, tetapi Anda tetap menyediakan profil Skaffold yang akan digunakan untuk setiap tahap.

Untuk mengonfigurasi canary otomatis kustom, sertakan stanza runtimeConfig, seperti yang ditampilkan di sini, dan sertakan stanza customCanaryDeployment, seperti yang ditampilkan di sini.

Mengonfigurasi deployment canary menggunakan mesh layanan Kubernetes Gateway API

Meskipun dapat menggunakan deployment canary Cloud Deploy untuk men-deploy aplikasi Anda ke jaringan berbasis layanan Kubernetes, Anda dapat menggunakan mesh layanan Gateway API Kubernetes. Bagian ini menjelaskan cara melakukannya.

Anda dapat menggunakan Gateway API dengan Istio atau implementasi yang didukung apa pun.

  1. Siapkan resource Gateway API:

    Ini hanya contoh.

  2. Dalam manifes Kubernetes, yang disediakan ke Cloud Deploy saat Anda membuat rilis, sertakan hal berikut:

    • HTTPRoute yang mereferensikan resource Gateway Anda

    • Deployment

    • Layanan

  3. Konfigurasikan pipeline pengiriman Anda dan target yang akan di-deploy secara terbatas:

    • Konfigurasi untuk target sama seperti untuk target apa pun.

    • Konfigurasi delivery pipeline, dalam urutan progres untuk target tertentu, menyertakan stanza gatewayServiceMesh untuk mereferensikan konfigurasi Kubernetes Gateway API HTTPRoute, serta Deployment dan Service Anda.

      strategy:
       canary:
         runtimeConfig:
           kubernetes:
             gatewayServiceMesh:
               httpRoute: "ROUTE"
               service: "SERVICE"
               deployment: "DEPLOYMENT"
               routeUpdateWaitTime: "WAIT_TIME"
         canaryDeployment:
           percentages:
           - 50
      

      Di mana...

      • ROUTE adalah konfigurasi httpRoute yang menentukan perilaku perutean yang Anda inginkan.

      • SERVICE adalah konfigurasi Layanan Anda, yang diperlukan Cloud Deploy untuk deployment canary ke GKE dan GKE Enterprise.

      • DEPLOYMENT adalah konfigurasi Deployment Anda, yang diperlukan Cloud Deploy untuk deployment canary ke GKE dan GKE Enterprise.

      • WAIT_TIME adalah durasi waktu yang diperlukan Cloud Deploy untuk menunggu perubahan pada resource HTTPRoute agar selesai diterapkan, guna menghindari permintaan yang berkurang. Misalnya: routeUpdateWaitTime: 60s

        Jika Anda menjalankan canary menggunakan Gateway API tanpa Istio, dan Gateway API terhubung ke load balancer Google Cloud, sejumlah kecil traffic dapat hilang ketika instance canary diturunkan skalanya. Anda dapat mengonfigurasi setelan ini jika mengamati perilaku ini.

Menggunakan deployment paralel dengan strategi deployment canary

Anda dapat menjalankan deployment canary menggunakan deployment paralel. Artinya, target yang secara bertahap Anda deploy dapat terdiri dari dua atau beberapa target turunan. Misalnya, Anda dapat men-deploy secara bertahap ke cluster di region terpisah, secara bersamaan.

Apa perbedaan antara canary paralel dengan burung kenari target tunggal

  • Sama seperti deployment canary target tunggal, jika men-deploy ke target GKE, Anda memerlukan konfigurasi Deployment Kubernetes dan konfigurasi Layanan Kubernetes dalam manifes.

  • Seperti deployment canary target tunggal, konfigurasi pipeline pengiriman Anda harus menyertakan stanza strategy.canary di dalam definisi stage untuk tahap yang berlaku.

  • Selain itu, Anda perlu mengonfigurasi multi-target, dan perlu mengonfigurasi target turunan yang merupakan referensi multi-target.

  • Saat Anda membuat rilis, peluncuran pengontrol dan peluncuran turunan akan dibuat.

    Kedua jenis peluncuran—pengontrol dan turunan—memiliki fase terpisah untuk semua persentase canary yang dikonfigurasi, dan fase stable untuk 100% canary.

  • Anda tidak dapat memajukan peluncuran turunan.

    Anda hanya dapat melanjutkan peluncuran pengontrol. Saat Anda melanjutkan peluncuran pengontrol ke tahap berikutnya, peluncuran turunan juga akan dimajukan oleh Cloud Deploy.

  • Anda tidak dapat mencoba ulang tugas yang gagal dalam peluncuran pengontrol.

    Anda dapat mencoba kembali tugas dalam peluncuran turunan saja.

  • Anda tidak dapat ignore tugas yang gagal dalam peluncuran pengontrol.

    Anda dapat mengabaikan tugas yang gagal hanya dalam peluncuran turunan.

  • Anda dapat membatalkan peluncuran pengontrol, tetapi tidak dapat membatalkan peluncuran turunan.

  • Anda dapat menghentikan tugas yang berjalan hanya dari peluncuran turunan, bukan peluncuran pengontrol.

Apa yang harus dilakukan jika peluncuran paralel gagal di canary

Jika peluncuran turunan gagal, peluncuran pengontrol dapat ditransisikan ke status yang berbeda, bergantung pada apa yang terjadi dengan peluncuran turunan:

  • Jika satu atau beberapa peluncuran turunan gagal, namun setidaknya satu peluncuran turunan tetap IN_PROGRESS, peluncuran pengontrol akan tetap IN_PROGRESS.

  • Jika satu atau beberapa peluncuran turunan gagal, tetapi setidaknya satu peluncuran turunan berhasil, peluncuran pengontrol akan berstatus HALTED jika ada beberapa fase setelah peluncuran saat ini.

    Jika ini adalah fase stable, peluncuran pengontrol adalah FAILED.

    HALTED memberi Anda kesempatan untuk ignore, mencoba lagi tugas yang gagal dalam peluncuran turunan yang gagal, atau membatalkan peluncuran pengontrol dan mencegah tindakan lebih lanjut pada peluncuran turunan.

  • Jika peluncuran pengontrol berada dalam status HALTED karena peluncuran turunan yang gagal, dan Anda mengabaikan tugas yang gagal dalam peluncuran turunan, peluncuran pengontrol akan kembali ke status IN_PROGRESS.

Menjalankan canary yang dikonfigurasi

Untuk menjalankan deployment canary:

  1. Daftarkan target dan pipeline pengiriman yang dikonfigurasi.

    gcloud deploy apply --file=PIPELINE
    

    Pipeline pengiriman mencakup konfigurasi canary otomatis atau kustom, untuk runtime yang Anda pilih.

    Perintah ini mengasumsikan bahwa target Anda ditentukan dalam file yang sama atau telah terdaftar. Jika tidak, pastikan untuk mendaftarkan target Anda juga.

  2. Membuat rilis:

    gcloud deploy releases create RELEASE_NAME \
                                  --delivery-pipeline=PIPELINE_NAME \
                                  --region=REGION
    

    Pipeline pengiriman yang diidentifikasi oleh PIPELINE_NAME berisi konfigurasi canary otomatis atau kustom yang dijelaskan dalam dokumen ini.

  3. Tingkatkan keterampilan dalam menggunakan canary:

    gcloud CLI

    gcloud deploy rollouts advance ROLLOUT_NAME \
                                --release=RELEASE_NAME \
                                --delivery-pipeline=PIPELINE_NAME \
                                --region=REGION
    

    Dengan keterangan:

    ROLLOUT_NAME adalah nama peluncuran saat ini yang akan Anda lanjutkan ke fase berikutnya.

    RELEASE_NAME adalah nama rilis yang menjadi bagian dari peluncuran ini.

    PIPELINE_NAME adalah nama pipeline pengiriman yang Anda gunakan untuk mengelola deployment rilis ini.

    REGION adalah nama wilayah tempat rilis dibuat, misalnya us-central1. Wajib diisi.

    Baca referensi Google Cloud SDK untuk mengetahui informasi lebih lanjut tentang perintah gcloud deploy rollouts advance.

    Konsol Google Cloud

    1. Buka halaman pipeline Pengiriman.

    2. Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.

      Halaman detail pipeline Pengiriman menunjukkan representasi grafis dari progres pipeline pengiriman Anda.

    3. Di tab Peluncuran, di bagian Detail pipeline pengiriman, klik nama peluncuran Anda.

      Halaman detail peluncuran ditampilkan, untuk peluncuran tersebut.

      detail peluncuran di Konsol Google Cloud

      Perhatikan bahwa dalam contoh ini, peluncuran memiliki fase canary-50 dan fase stable. Peluncuran Anda mungkin memiliki beberapa fase atau fase yang berbeda.

    4. Klik Peluncuran lanjutan.

      Peluncuran ini dilanjutkan ke fase berikutnya.

Fase yang dilewati

Jika Anda men-deploy canary dan aplikasi belum di-deploy ke runtime tersebut, Cloud Deploy akan melewati fase canary dan menjalankan fase stabil. Lihat Melewati fase pertama kali untuk mengetahui alasan hal ini terjadi.

Langkah selanjutnya