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:
- Google Kubernetes Engine
- Cloud Run (khusus layanan, bukan tugas.)
- GKE Enterprise
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:
Anda memberikan nama resource Deployment dan resource Layanan.
Cloud Deploy membuat resource Deployment tambahan dengan nama Deployment saat ini ditambah
-canary
.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
.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:
Selain referensi Deployment dan Service, Anda juga harus menyediakan resource HTTPRoute, dengan aturan
backendRefs
yang mereferensikan Service.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
.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 propertirouteUpdateWaitTime
dalam konfigurasi Anda, sehingga sistem menunggu selama jangka waktu tertentu untuk penerapan ini.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 fasestable
.Anda dapat mengaktifkan verifikasi deployment (
verify: true
). Jika Anda melakukannya, tugasverify
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 mencakup100
, karena deployment 100% persen diasumsikan dalam canary, dan ditangani oleh fasestable
. - Anda dapat mengaktifkan verifikasi deployment
(
verify: true
). Jika Anda melakukannya, tugasverify
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%) harusstable
.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.
Siapkan resource Gateway API:
Ini hanya contoh.
Dalam manifes Kubernetes, yang disediakan ke Cloud Deploy saat Anda membuat rilis, sertakan hal berikut:
HTTPRoute
yang mereferensikan resource Gateway AndaDeployment
Layanan
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 APIHTTPRoute
, 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 tetapIN_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 adalahFAILED
.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 statusIN_PROGRESS
.
Menjalankan canary yang dikonfigurasi
Untuk menjalankan deployment canary:
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.
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.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, misalnyaus-central1
. Wajib diisi.Baca referensi Google Cloud SDK untuk mengetahui informasi lebih lanjut tentang perintah
gcloud deploy rollouts advance
.Konsol Google Cloud
Klik pipeline Anda yang ditampilkan dalam daftar pipeline pengiriman.
Halaman detail pipeline Pengiriman menunjukkan representasi grafis dari progres pipeline pengiriman Anda.
Di tab Peluncuran, di bagian Detail pipeline pengiriman, klik nama peluncuran Anda.
Halaman detail peluncuran ditampilkan, untuk peluncuran tersebut.
Perhatikan bahwa dalam contoh ini, peluncuran memiliki fase
canary-50
dan fasestable
. Peluncuran Anda mungkin memiliki beberapa fase atau fase yang berbeda.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
Cobalah panduan memulai deployment canary.
Cari tahu cara mengelola siklus proses peluncuran canary.
Pelajari deployment paralel lebih lanjut.