Dengan menggunakan Cloud Deploy, Anda dapat men-deploy ke target yang dikonfigurasi untuk mewakili beberapa target, dan aplikasi Anda akan di-deploy ke target tersebut secara paralel (secara bersamaan). Target yang Anda identifikasi sebagai tahap dalam pipeline disebut multi-target, dan target yang terdiri dari multi-target disebut target turunan.
Anda dapat menggunakan deployment paralel dengan jenis target apa pun yang didukung Cloud Deploy, termasuk Google Kubernetes Engine, Cloud Run, dan GKE Enterprise.
Alasan deployment paralel
Anda dapat menggunakan deployment paralel, misalnya, untuk men-deploy aplikasi ke beberapa target produksi. Dalam hal ini, Anda tidak perlu men-deploy ke setiap target secara berurutan, karena tidak ada progres (misalnya, dari pengembangan ke staging hingga produksi).
Selain itu, deployment paralel ini dapat menjadi bagian dari progres pipeline
pengiriman normal:
dev -> staging -> prod [prod1, prod2, prod3, prod4, ...]
.
Resource Cloud Deploy yang digunakan untuk deployment paralel
Deployment paralel menggunakan resource khusus Cloud Deploy berikut:
multi-target
Multi-target adalah target yang dikonfigurasi dengan properti
multiTarget
, di tingkat teratas YAML konfigurasi target. Target ini merujuk ke satu atau beberapa layanan target lain menggunakanmultiTarget.targetIds
, bukan merujuk ke cluster atau layanan runtime.Target turunan
Target turunan adalah target yang direferensikan oleh multi-target sebagai
multiTarget.targetIds
. Turunan juga harus mereferensikan jenis target yang didukung (Google Kubernetes Engine, GKE Enterprise, atau Cloud Run.Peluncuran pengontrol
Peluncuran pengontrol adalah peluncuran yang sesuai dengan multi-target.
Lihat Batasan untuk mengetahui informasi selengkapnya tentang hal yang dapat dan tidak dapat Anda lakukan dengan peluncuran pengontrol.
-
Lihat Batasan untuk mengetahui informasi selengkapnya tentang hal yang dapat dan tidak dapat Anda lakukan dengan peluncuran turunan.
Menyiapkan deployment paralel
Penyiapan deployment paralel terdiri dari penetapan satu multi-target dan jumlah target turunan yang Anda perlukan (hingga batas). Definisi target sama seperti semua target, kecuali untuk hal berikut:
- Multi-target mencakup properti
multiTarget
. - Target turunan tidak menyertakan properti
multiTarget
, tetapi direferensikan dari multi-target menggunakan propertimultiTarget.targetIds
. - Anda dapat mengonfigurasi multi-target untuk persetujuan, tetapi tidak untuk target turunan,
yang tidak dapat menyertakan
requireApproval:true
.
Multi-target dan target turunan dapat menyertakan konfigurasi lingkungan eksekusi kustom. Jika target turunan tidak menentukan lingkungan eksekusi, target turunan akan mewarisi lingkungan yang ditentukan dalam definisi multi-target, atau lingkungan default. Lihat Lingkungan eksekusi dan deployment paralel untuk mengetahui detail selengkapnya.
Mengonfigurasi multi-target
Multi-target adalah target tunggal yang diidentifikasi sebagai tahap dalam pipeline penayangan, tetapi mengarah ke satu atau beberapa target turunan.
Konfigurasi multi-target mencakup properti multiTarget
. Multi-target tidak boleh memiliki properti gke
, run
, atau anthosCluster
.
Konfigurasi untuk multi-target sama saja, terlepas dari runtime yang Anda
deploy.
Di pipeline pengiriman Anda atau di file YAML terpisah, buat definisi target dasar, termasuk multiTarget
:
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: TARGET_NAME
description: TARGET_DESCRIPTION
multiTarget:
targetIds: [ CHILD_TARGET1, CHILD_TARGET2, CHILD_TARGETn ]
Dalam YAML ini...
TARGET_NAME adalah nama multi-target ini, yang digunakan dalam definisi pipeline penayangan, properti
stages.targetId
.CHILD_TARGET1, CHILD_TARGET2,...CHILD_TARGETn adalah nama turunan yang menjadi target deployment multi-target ini. Setiap nama sesuai dengan properti
name
dalam definisi target turunan.
Keberadaan properti multiTarget.targetIds
menjadikan target ini multitarget.
Mengonfigurasi target turunan
Untuk setiap target yang diidentifikasi sebagai turunan dalam konfigurasi multi-target, konfigurasikan target lain sebagai target turunan:
Di YAML pipeline pengiriman atau dalam file YAML terpisah, buat definisi target dasar:
GKE
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: CHILD_TARGET1
description: TARGET_DESCRIPTION
gke:
cluster: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
Dalam YAML ini...
CHILD_TARGET1 adalah nama target turunan ini. Nama ini sesuai dengan satu anggota dalam daftar target di properti
multiTarget.targetIds
dalam definisi multi-target.Nilai properti
gke.cluster
adalah nama resource cluster yang dirujuk target ini, termasuk project ID, region, dan nama cluster.
Target ini dikonfigurasi dengan target GKE standar.
Satu-satunya hal yang menjadikannya target turunan adalah properti tersebut direferensikan oleh properti multiTarget.targetIds
dalam multi-target.
Cloud Run
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: CHILD_TARGET1
description: TARGET_DESCRIPTION
run:
location: projects/PROJECT_ID/locations/REGION
Dalam YAML ini...
CHILD_TARGET1 adalah nama target turunan ini. Nama ini sesuai dengan satu anggota dalam daftar target di properti
multiTarget.targetIds
dalam definisi multi-target.Nilai properti
run.location
adalah nama resource layanan Cloud Run yang dirujuk oleh target ini, termasuk project ID dan region.
Target ini dikonfigurasi dengan cara yang sama seperti target Cloud Run standar. Satu-satunya hal yang menjadikannya sebagai target turunan adalah properti tersebut direferensikan oleh properti multiTarget.targetIds
dalam multi-target.
GKE Enterprise
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
name: CHILD_TARGET1
description: TARGET_DESCRIPTION
anthosCluster:
membership: projects/PROJECT_ID/locations/global/memberships/MEMBERSHIP_NAME
Dalam YAML ini...
CHILD_TARGET1 adalah nama target turunan ini. Nama ini sesuai dengan satu anggota dalam daftar target di properti
multiTarget.targetIds
dalam definisi multi-target.MEMBERSHIP_NAME adalah nama yang Anda pilih saat mendaftarkan cluster pengguna GKE Enterprise ke fleet.
Target ini dikonfigurasi dengan cara yang sama dengan target GKE Enterprise standar. Satu-satunya hal yang menjadikannya sebagai target turunan adalah properti tersebut direferensikan oleh properti multiTarget.targetIds
dalam multi-target.
Membuat rilis
Setelah multi-target dan target turunan dikonfigurasi, buat pipeline pengiriman dan resource target, lalu buat rilis seperti biasa.
Siklus proses pipeline pengiriman sama dengan target dan pipeline Cloud Deploy lainnya, kecuali saat mencapai tahap dengan multi-target, Cloud Deploy membuat peluncuran pengontrol untuk multi-target dan peluncuran turunan guna men-deploy aplikasi ke setiap target turunan.
Pesan Pub/Sub sebagai respons terhadap operasi Cloud Deploy yang membedakan antara peluncuran pengontrol dan peluncuran turunan.
Batasan
Multi-target tidak boleh memiliki lebih dari 50 target turunan.
Semua target turunan dari satu multi-target harus memiliki runtime target yang sama (misalnya semua GKE, atau semua GKE Enterprise).
Dalam pipeline pengiriman, target turunan hanya dapat memiliki satu multi-target induk.
Multi-target tidak boleh tanpa turunan, dan tidak dapat mereferensikan dirinya sendiri atau multi-target lainnya sebagai target turunan.
Anda tidak dapat menggunakan target turunan lebih dari sekali dalam satu pipeline pengiriman, tetapi Anda dapat menggunakannya kembali di pipeline yang berbeda.
Kumpulan default memiliki batas konkurensi, tetapi kumpulan pribadi tidak memilikinya.
Saat Anda melakukan deployment ke multi-target, semua peluncuran turunan akan di-deploy secara bersamaan, hingga batas serentak Cloud Build. Jika Anda memiliki target turunan lebih banyak dari batas tersebut, tugas deployment untuk beberapa target tidak akan berjalan sampai target yang lain selesai, yang berarti dalam hal ini Cloud Deploy tidak men-deploy ke semua target turunan secara bersamaan.
Selain itu, jika targetnya menyertakan tugas verifikasi, satu atau beberapa tugas verifikasi tersebut mungkin akan dimulai sebelum aplikasi di-deploy ke semua target turunan.
Jika Anda harus dapat men-deploy secara serentak ke lebih banyak target daripada batas yang ditentukan dalam dokumentasi Cloud Build, Anda memiliki dua opsi:
Minta peningkatan jumlah build serentak yang dapat Anda jalankan.
Siapkan kolam pribadi dan konfigurasi target Anda untuk menggunakan kumpulan tersebut.
Lingkungan eksekusi dan deployment paralel
Setiap target dapat dikonfigurasi untuk menggunakan lingkungan eksekusi non-default.
Jika multi-target memiliki lingkungan eksekusi non-default, semua target turunan yang menggunakan lingkungan eksekusi default, mewarisi lingkungan non-default dari lingkungan multi-target
Jika multi-target menggunakan lingkungan eksekusi default, setiap target turunan yang dikonfigurasi dengan lingkungan eksekusi non-default akan menggunakan lingkungan eksekusi non-default tersebut.
Aturan ini memudahkan penyebaran lingkungan eksekusi ke target turunan dari multi-target, sehingga Anda tidak perlu menentukan atau mengubah lingkungan eksekusi untuk setiap target turunan, sambil tetap memungkinkan Anda menyesuaikan lingkungan eksekusi untuk satu atau beberapa target turunan jika perlu.
Lihat Menggunakan lingkungan eksekusi Google Cloud Deploy untuk mengetahui informasi selengkapnya tentang lingkungan eksekusi di Cloud Deploy.
Me-roll back deployment paralel
Jika Anda perlu me-roll back deployment dari beberapa target paralel, Roll back multi-target, seperti yang dijelaskan dalam Me-roll back target.
Persetujuan untuk deployment paralel
Seperti target lainnya, Anda dapat mengonfigurasi deployment paralel agar memerlukan persetujuan. Namun, dengan deployment paralel, Anda hanya dapat mengonfigurasi persetujuan pada multi-target. Persetujuan atau penolakan memengaruhi semua target turunan bersama-sama.
Lihat deployment paralel di Konsol Google Cloud
Anda dapat melihat detail untuk multi-target, target turunan, peluncuran pengontrol, dan peluncuran turunan di Konsol Google Cloud.
Saat Anda melihat daftar target untuk pipeline pengiriman tertentu, multi-target akan dicantumkan di Detail Pipeline Pengiriman, tetapi target turunan tidak dicantumkan. Namun, saat melihat detail rilis, Anda dapat melihat peluncuran pengontrol dan peluncuran turunan. Anda juga dapat melihat peluncuran pengontrol dan turunan yang tercantum di tab Peluncuran di halaman detail Pipeline Pengiriman.
Di release inspector, Anda dapat melihat, dan membedakan, manifes yang dirender untuk peluncuran turunan.
Meneruskan parameter deployment ke target
Anda dapat membedakan di antara target turunan dengan menyertakan parameter dalam manifes dan nilai dalam definisi pipeline pengiriman Anda. Nilai tersebut dapat diterapkan secara terpisah ke manifes terpisah, berdasarkan pencocokan label pada target yang sesuai.
Misalnya, Anda mungkin menginginkan jumlah replika yang berbeda untuk setiap target turunan. Untuk melakukannya, Anda harus menyertakan parameter dan nilai dalam progres pipeline penayangan, bersama dengan label pada target turunan yang akan dicocokkan untuk setiap pasangan parameter-value.
Pelajari parameter deploy lebih lanjut.
Menggunakan deployment paralel dengan strategi deployment
Anda dapat melakukan deployment secara paralel saat menggunakan strategi deployment canary. Lihat Menggunakan deployment paralel dengan strategi deployment canary untuk informasi selengkapnya.
Langkah selanjutnya
Coba panduan memulai: Men-deploy aplikasi ke beberapa target secara bersamaan.
Pelajari lebih lanjut cara menggunakan parameter deployment.
Lihat skema konfigurasi target.
Tinjau artikel Arsitektur layanan Cloud Deploy.