Ringkasan Cloud Deploy

Cloud Deploy adalah layanan terkelola yang mengotomatiskan pengiriman aplikasi Anda ke serangkaian lingkungan target dalam urutan promosi yang ditentukan. Jika ingin men-deploy aplikasi yang telah diupdate, Anda harus membuat rilis, yang lifecycle dikelola oleh pipeline pengiriman.

Cara kerja pipeline Cloud Deploy

Pipeline pengiriman Cloud Deploy berisi informasi berikut:

  • Nama, yang Anda gunakan saat merujuk pada pipeline pengiriman, dan deskripsi.

  • Urutan promosi, yang menjelaskan urutan deployment ke target yang dikonfigurasi.

  • Secara opsional, label dan anotasi.

  • Selain itu, secara opsional, definisi target itu sendiri.

Target dapat ditentukan dalam file konfigurasi pipeline pengiriman yang sama, atau dalam satu atau beberapa file terpisah. Beberapa pipeline pengiriman dapat menggunakan satu atau beberapa target yang sama, tetapi satu target tertentu hanya dapat digunakan satu kali dalam pipeline pengiriman tertentu.

Proses pengiriman Cloud Deploy

Berikut adalah deskripsi tentang apa yang terjadi dalam skenario continuous delivery Cloud Deploy yang sederhana.

  1. Anda menentukan pipeline pengiriman dalam file konfigurasi YAML.

    File konfigurasi ini menentukan urutan promosi untuk men-deploy aplikasi ke serangkaian target.

    Anda juga memerlukan konfigurasi untuk Skaffold, yang diperlukan Cloud Deploy untuk menjalankan operasi render dan deploy.

  2. Anda menentukan target, baik dalam file konfigurasi pipeline maupun dalam file atau file terpisah.

  3. Anda mendaftarkan pipeline Anda ke layanan Cloud Deploy.

    Setelah mengetahui tentang aplikasi Anda, layanan akan mengelola deployment ke target sesuai dengan urutan promosi yang Anda tentukan.

  4. Output dari proses CI Anda mencakup panggilan ke Cloud Deploy untuk memulai pipeline pengiriman Anda.

    Panggilan ini akan membuat resource release yang mewakili manifes yang dirender untuk setiap target, yang masing-masing dibuat menggunakan sumber rendering yang disediakan, skaffold.yaml, dan referensi ke image container tertentu yang akan di-deploy. Agar panggilan pertama ini membuat rilis, Cloud Deploy secara otomatis membuat resource rollout, yang mengaitkan rilis dengan lingkungan target pertama. Berdasarkan peluncuran tersebut, aplikasi Anda di-deploy ke target pertama.

    Anda dapat menggunakan alat CI apa pun selama alat tersebut menghasilkan satu atau beberapa image container untuk diberikan ke pipeline pengiriman Cloud Deploy Anda.

    Selain itu, panggilan untuk membuat rilis dan memanggil pipeline pengiriman tidak harus berasal dari alat CI. Ini dapat berasal dari skrip atau sistem apa pun yang menanggapi penyelesaian proses CI.

  5. Jika sudah siap men-deploy aplikasi ke target berikutnya, panggil Cloud Deploy untuk mempromosikannya.

    Dalam setiap kasus, panggilan untuk memanggil promosi akan menyebabkan Cloud Deploy membuat peluncuran baru.

  6. Promosi berlanjut di semua target dalam urutan promosi Anda, yang terakhir adalah prod (atau nama apa pun yang Anda gunakan untuk target akhir untuk menempatkan aplikasi ke dalam produksi).

    Proses pembuatan dan promosi rilis dijelaskan secara lebih mendetail dalam arsitektur layanan Cloud Deploy.

Selama eksekusi pipeline, Cloud Deploy mengumpulkan metrik dan detail audit.

Promosi

mempromosikan rilis adalah dengan men-deploy-nya ke target berikutnya dalam urutan promosi yang ditentukan dalam pipeline Anda. Panggilan pertama ke Cloud Deploy membuat release, lalu resource rollout yang digunakan untuk men-deploy ke target pertama dalam urutan promosi. Setiap panggilan berikutnya untuk mempromosikan rilis akan menghasilkan peluncuran ke target berikutnya.

Persetujuan

Anda dapat menentukan bahwa persetujuan diperlukan untuk promosi ke semua target. Misalnya, Anda mungkin ingin mewajibkan persetujuan untuk promosi menjadi target produksi. Untuk mewajibkan persetujuan target, tetapkan properti requireApproval dalam definisi target.

Jika target memerlukan persetujuan, Cloud Deploy menghasilkan pesan Pub/Sub yang dapat digunakan oleh sistem terintegrasi. Misalnya, sistem tiket dapat berlangganan pesan untuk memulai alur kerja persetujuan.

Lihat bagian Mewajibkan persetujuan untuk informasi lebih lanjut tentang promosi dan mengelola persetujuan untuk promosi.

Notifikasi

Cloud Deploy memberikan notifikasi Pub/Sub untuk peristiwa berikut:

  • Render: awal, berhasil, dan gagal
  • Deploy: awal, berhasil, dan gagal
  • Diperlukan persetujuan
  • Persetujuan disetujui
  • Persetujuan ditolak

Cloud Deploy menggunakan topik Pub/Sub untuk mengirim notifikasi ini.

Lihat Menggunakan notifikasi Cloud Deploy untuk detail selengkapnya.

Rollback

Cloud Deploy mendukung roll back aplikasi yang di-deploy di target apa pun. Rollback di Cloud Deploy memicu peluncuran pada rilis terakhir yang berhasil di-deploy. Peluncuran baru menggunakan parameter yang sama dengan yang digunakan dalam deployment yang berhasil tersebut.

Lihat Me-roll back deployment untuk mengetahui detail selengkapnya.

Tentang Skaffold dan Cloud Deploy

Cloud Deploy menggunakan Skaffold untuk rendering, deployment, dan verifikasi. Dengan Skaffold, Anda juga dapat dengan mudah menghubungkan development loop lokal ke pipeline continuous delivery Cloud Deploy.

Untuk mempelajari lebih lanjut cara Cloud Deploy terintegrasi dengan Skaffold, lihat ringkasan Skaffold.

Cloud Deploy dengan alat Google Cloud lainnya

Cloud Deploy mendukung hampir semua alat upstream di pipeline CI/CD. Artinya, Anda dapat menggunakan lingkungan pengembangan dan repositori kode sumber, sistem continuous integration (CI), dan repositori artefak apa pun.

Downstream, Cloud Deploy men-deploy ke Google Kubernetes Engine, Cloud Run, dan GKE Enterprise.

Jika Anda sebagian besar menggunakan alat Google Cloud, alur sumber ke produksi akan terlihat seperti ini:

  1. Gunakan Cloud Code untuk membuat sumber aplikasi Anda.

    Cloud Code memperluas beberapa IDE populer (VS Code, IntelliJ, Cloud Shell) untuk mempermudah proses build aplikasi yang akan di-deploy dan dijalankan di Google Cloud.

  2. Gunakan Skaffold untuk mengelola loop pengembangan lokal.

    Cloud Deploy menggunakan Skaffold, melalui Cloud Build, untuk merender dan men-deploy manifes Anda. Dengan integrasi ini, Anda perlu mempertahankan file skaffold.yaml, tetapi bukan berarti Anda harus menjadikan Skaffold sebagai bagian dari alur pengembangan lokal Anda. Namun, Anda dapat memanfaatkannya untuk pengembangan berkelanjutan.

  3. Bangun aplikasi Anda menggunakan Cloud Build.

    Cloud Build dapat digunakan untuk menyiapkan pipeline CI yang dapat dipicu dari commit ke repositori kode sumber Anda. Output dari Cloud Build akan berupa artefak, termasuk image container yang dapat di-deploy. Anda dapat menambahkan panggilan ke Cloud Deploy untuk membuat rilis dan memanggil pipeline pengiriman Anda.

  4. Simpan artefak Anda di Artifact Registry.

    Cloud Deploy mengambil image atau image container dari Artifact Registry, sehingga Anda dapat menyimpan artefak dan dependensi secara terpusat.

  5. Konfigurasikan pipeline pengiriman Anda di Cloud Deploy untuk mengambil image container dan men-deploy-nya dalam urutan n target.

    Setiap target yang diidentifikasi dalam pipeline pengiriman Anda mewakili cluster GKE, Cloud Run, atau cluster GKE tempat aplikasi Anda pada akhirnya di-deploy.

  6. Kelola aplikasi Anda di GKE, Cloud Run, atau GKE Enterprise.

    GKE adalah lingkungan yang dikelola Google Cloud untuk menjalankan aplikasi dalam container di Kubernetes.

    Dengan Cloud Run, Anda dapat menjalankan container di lingkungan serverless.

    GKE Enterprise memberikan pengalaman pengembangan dan operasi yang konsisten untuk lingkungan cloud dan lokal.

  7. Pantau performa aplikasi Anda menggunakan Kemampuan Observasi Google Cloud.

    Kemampuan observasi Google Cloud menawarkan pemantauan dan logging terintegrasi untuk aplikasi Anda.

Langkah selanjutnya