Men-deploy ke beberapa target secara bersamaan

Dengan Cloud Deploy, Anda dapat men-deploy ke target yang dikonfigurasi untuk mewakili beberapa target, dan aplikasi Anda di-deploy ke target tersebut secara paralel (serentak). 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 progresi (misalnya, dari pengembangan ke staging ke produksi).

Dan 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, dan bukan mereferensikan cluster atau layanan runtime, target ini mereferensikan satu atau beberapa target lain, menggunakan multiTarget.targetIds.

  • Target turunan

    Target turunan adalah target apa pun 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.

  • Peluncuran turunan

    Lihat Batasan untuk mengetahui informasi selengkapnya tentang hal yang dapat dan tidak dapat Anda lakukan dengan peluncuran turunan.

Menyiapkan deployment paralel

Menyiapkan deployment paralel terdiri dari menentukan satu multi-target dan jumlah target turunan yang Anda perlukan (hingga batas). Definisi target sama dengan semua target, kecuali untuk hal berikut:

  • Multi-target menyertakan properti multiTarget.
  • Target turunan tidak menyertakan properti multiTarget, tetapi direferensikan dari multi-target menggunakan properti multiTarget.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 tersebut akan mewarisi lingkungan yang ditentukan dalam definisi multi-target, atau default. Lihat Lingkungan eksekusi dan deployment paralel untuk mengetahui detail selengkapnya.

Mengonfigurasi multi-target

Multi-target adalah satu target yang diidentifikasi sebagai tahap dalam pipeline pengiriman, tetapi mengarah ke satu atau beberapa target turunan.

Konfigurasi multi-target menyertakan properti multiTarget. Multi-target tidak boleh memiliki properti gke atau run atau anthosCluster. Konfigurasi untuk multi-target sama, terlepas dari runtime tempat Anda men-deploy.

Di YAML pipeline pengiriman atau dalam 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 pengiriman, properti stages.targetId.

  • CHILD_TARGET1, CHILD_TARGET2,...CHILD_TARGETn adalah nama target turunan tempat multi-target ini di-deploy. Setiap nama sesuai dengan properti name dalam definisi target turunan.

Kehadiran properti multiTarget.targetIds membuat target ini menjadi multi-target.

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 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 sama seperti target GKE standar. Satu-satunya hal yang menjadikannya target turunan adalah karena 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 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 sama seperti target Cloud Run standar. Satu-satunya hal yang menjadikannya target turunan adalah karena 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...

Target ini dikonfigurasi sama seperti target GKE Enterprise standar. Satu-satunya hal yang menjadikannya target turunan adalah karena direferensikan oleh properti multiTarget.targetIds dalam multi-target.

Meneruskan parameter deploy ke target

Anda dapat membedakan antara target turunan dengan menyertakan parameter dalam manifes dan nilai dalam definisi pipeline pengiriman. 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 pengiriman, beserta label pada target turunan yang akan dicocokkan untuk setiap pasangan parameter-nilai.

Pelajari parameter deployment lebih lanjut.

Membuat rilis

Dengan target multi-target dan turunan yang dikonfigurasi, buat pipeline pengiriman dan resource target, lalu buat rilis, seperti biasa.

Siklus proses pipeline pengiriman sama dengan siklus proses target dan pipeline Cloud Deploy lainnya, kecuali saat mencapai tahap dengan multi-target, Cloud Deploy akan membuat peluncuran pengontrol untuk multi-target dan peluncuran turunan untuk men-deploy aplikasi ke setiap target turunan.

Pesan Pub/Sub sebagai respons terhadap operasi Cloud Deploy membedakan antara peluncuran pengontrol dan peluncuran turunan.

Batasan

  • Multi-target tidak boleh memiliki lebih dari 100 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 tidak memiliki turunan, dan tidak dapat mereferensikan dirinya sendiri atau multi-target lain 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.

    Saat Anda men-deploy ke multi-target, semua peluncuran turunan akan di-deploy secara bersamaan, hingga batas konkurensi Cloud Build. Jika Anda memiliki lebih banyak target turunan daripada batas tersebut, tugas deployment untuk beberapa target tidak akan berjalan hingga tugas lainnya selesai, yang berarti Cloud Deploy tidak men-deploy ke semua target turunan secara bersamaan, dalam hal ini.

    Selain itu, jika target menyertakan tugas verifikasi, satu atau beberapa tugas verifikasi tersebut dapat dimulai sebelum aplikasi di-deploy ke semua target turunan.

    Jika Anda perlu men-deploy secara serentak ke lebih banyak target daripada batas yang ditentukan dalam dokumentasi Cloud Build, Anda memiliki dua opsi:

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 eksekusi non-default dari 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 mempermudah penyebaran lingkungan eksekusi ke target turunan dari multi-target, sehingga Anda tidak perlu menentukan atau mengubah lingkungan eksekusi untuk setiap target turunan, sekaligus 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 melakukan roll back deployment dari beberapa target paralel, rollback multi-target, seperti yang dijelaskan dalam Melakukan roll back target.

Persetujuan untuk deployment paralel

Seperti target lainnya, Anda dapat mengonfigurasi deployment paralel untuk mewajibkan persetujuan. Namun, dengan deployment paralel, Anda hanya dapat mengonfigurasi persetujuan di multi-target. Persetujuan atau penolakan akan memengaruhi semua target turunan secara bersamaan.

Melihat deployment paralel di konsol Google Cloud

Anda dapat melihat detail untuk multi-target, target turunan, peluncuran kontroler, dan peluncuran turunan di konsol Google Cloud.

Saat Anda melihat daftar target untuk pipeline pengiriman tertentu, di Detail Pipeline Pengiriman, multi-target akan tercantum, tetapi target turunan tidak. 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 inspector rilis, Anda dapat melihat, dan membandingkan, manifes yang dirender untuk peluncuran turunan.

Menggunakan deployment paralel dengan strategi deployment

Anda dapat men-deploy secara paralel saat menggunakan strategi deployment canary. Lihat Menggunakan deployment paralel dengan strategi deployment canary untuk mengetahui informasi selengkapnya.

Langkah selanjutnya