Ringkasan Cloud Deploy

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

Cara kerja pipeline Cloud Deploy

Pipeline pengiriman Cloud Deploy berisi informasi berikut:

  • Nama, yang Anda gunakan saat merujuk ke 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 target atau target yang sama, tetapi target tertentu hanya dapat digunakan sekali dalam pipeline pengiriman tertentu.

Proses pengiriman Cloud Deploy

Berikut adalah deskripsi tentang hal yang terjadi dalam skenario deployment berkelanjutan Cloud Deploy sederhana.

  1. Anda menentukan pipeline pengiriman dalam file konfigurasi YAML.

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

    Anda juga memerlukan konfigurasi untuk Skaffold, yang diperlukan Cloud Deploy untuk melakukan operasi render dan deployment.

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

  3. Anda mendaftarkan pipeline dengan layanan Cloud Deploy.

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

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

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

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

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

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

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

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

    Proses pembuatan dan promosi rilis dijelaskan secara lebih mendetail di Arsitektur layanan Cloud Deploy.

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

Promosi

Untuk mempromosikan rilis, deploy rilis ke target berikutnya dalam urutan promosi yang ditentukan di pipeline Anda. Panggilan pertama ke Cloud Deploy akan 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 target mana pun. Misalnya, Anda mungkin ingin mewajibkan persetujuan untuk promosi ke target produksi. Untuk mewajibkan persetujuan target, tetapkan properti requireApproval di definisi target.

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

Lihat Memerlukan persetujuan untuk mengetahui informasi selengkapnya tentang promosi dan mengelola persetujuan untuk promosi.

Notifikasi

Cloud Deploy memberikan notifikasi Pub/Sub untuk peristiwa berikut:

  • Merender: mulai, berhasil, dan gagal
  • Men-deploy: mulai, 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 mengetahui detail selengkapnya.

Rollback

Cloud Deploy mendukung rollback aplikasi yang di-deploy di semua target. Rollback di Cloud Deploy terdiri dari memicu peluncuran terhadap rilis terakhir yang berhasil di-deploy. Peluncuran baru menggunakan parameter yang sama dengan yang digunakan dalam deployment yang berhasil.

Lihat Melakukan rollback deployment untuk detail selengkapnya.

Tentang Skaffold dan Cloud Deploy

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

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

Cloud Deploy dengan alat Google Cloud lainnya

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

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

Jika Anda sebagian besar menggunakan alat Google Cloud, alur source-to-prod Anda 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 pembuatan aplikasi yang akan di-deploy dan dijalankan di Google Cloud.

  2. Gunakan Skaffold untuk mengelola loop pengembangan lokal Anda.

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

  3. Build aplikasi Anda menggunakan Cloud Build.

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

  4. Simpan artefak Anda di Artifact Registry.

    Cloud Deploy mengambil satu atau beberapa image container dari Artifact Registry, yang memungkinkan Anda menyimpan artefak dan dependensi secara terpusat.

  5. Konfigurasikan pipeline pengiriman di Cloud Deploy untuk mengambil image container dan men-deploynya dalam progres target n.

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

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

    GKE adalah lingkungan terkelola 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 Google Cloud Observability.

    Google Cloud Observability menawarkan pemantauan dan logging terintegrasi untuk aplikasi Anda.

Langkah selanjutnya