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.

  • 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 yang sama, tetapi target tertentu hanya dapat digunakan satu kali dalam pipeline pengiriman tertentu.

Proses pengiriman Cloud Deploy

Berikut adalah deskripsi tentang apa yang terjadi dalam skenario pengiriman 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 rendering dan deployment.

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

  3. Anda mendaftarkan pipeline dengan layanan Cloud Deploy.

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

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

    Panggilan ini membuat resource release, yang merepresentasikan 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. 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 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.

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

  5. Saat Anda siap men-deploy aplikasi ke target berikutnya, Anda 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 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 men-deploy-nya ke target berikutnya dalam urutan promosi yang ditentukan di 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.

Approvals

Anda dapat menentukan bahwa persetujuan diperlukan untuk promosi ke target mana pun. Misalnya, Anda mungkin ingin meminta persetujuan untuk promosi ke target produksi. Untuk mewajibkan persetujuan untuk 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 Mewajibkan persetujuan untuk mengetahui informasi selengkapnya tentang promosi dan cara mengelola persetujuan untuk promosi.

Notifikasi

Cloud Deploy menyediakan notifikasi Pub/Sub untuk peristiwa berikut:

  • Render: 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 tersebut.

Lihat Mengembalikan 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 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 di 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 hilir, 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 diGoogle 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 memelihara file skaffold.yaml, tetapi tidak berarti Anda perlu menjadikan Skaffold bagian dari alur pengembangan lokal. Namun, Anda dapat memanfaatkannya untuk pengembangan berkelanjutan.

  3. Bangun aplikasi Anda menggunakan Cloud Build.

    Dengan Cloud Build, Anda dapat 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.

  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. Konfigurasi pipeline pengiriman di Cloud Deploy untuk mengambil image container dan men-deploy-nya dalam progres n target.

    Setiap target yang diidentifikasi di 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 Google Cloud lingkungan terkelola 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 berikutnya