Cloud Deploy adalah layanan terkelola yang mengotomatiskan penyediaan aplikasi Anda ke serangkaian lingkungan target dalam urutan promosi yang ditentukan. Saat Anda ingin men-deploy aplikasi yang telah diupdate, Anda akan 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, definisi target itu sendiri bersifat opsional.
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 skenario continuous delivery Cloud Deploy.
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.
Anda menentukan target, baik dalam file konfigurasi pipeline maupun dalam file atau file terpisah.
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.
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 resourcerollout, 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.
Saat Anda siap men-deploy aplikasi ke target berikutnya, Anda memanggil Cloud Deploy untuk mempromosikannya.
Dalam setiap kasus, panggilan untuk memicu promosi menyebabkan Cloud Deploy membuat peluncuran baru.
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 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 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 atas target, tetapkan properti requireApproval di
definisi target.
Saat 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: memulai, 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 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 Cloud Run dan Google Kubernetes Engine, termasuk cluster terlampir GKE.
Jika Anda sebagian besar menggunakan alat Google Cloud , alur dari sumber ke produksi akan terlihat seperti ini:
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.
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.Bangun 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 container yang dapat di-deploy. Anda dapat menambahkan panggilan ke Cloud Deploy untuk membuat rilis dan memanggil pipeline pengiriman.
Simpan artefak Anda di Artifact Registry.
Cloud Deploy mengambil image container dari Artifact Registry, yang memungkinkan Anda menyimpan artefak dan dependensi secara terpusat.
Konfigurasi pipeline pengiriman di Cloud Deploy untuk mengambil image container dan men-deploy-nya dalam progres n target.
Target yang diidentifikasi di pipeline pengiriman Anda merepresentasikan cluster GKE, layanan atau tugas Cloud Run, atau cluster terpasang GKE tempat aplikasi Anda pada akhirnya di-deploy.
Kelola aplikasi Anda di GKE atau Cloud Run.
GKE adalah Google Cloud lingkungan terkelola untuk menjalankan aplikasi dalam container di Kubernetes.
Dengan Cloud Run, Anda dapat menjalankan container di lingkungan serverless.
Cluster terpasang GKE memberikan pengalaman pengembangan dan operasi yang konsisten untuk lingkungan cloud dan on-premise.
Pantau performa aplikasi Anda menggunakan Google Cloud Observability.
Google Cloud Observability menawarkan pemantauan dan logging terintegrasi untuk aplikasi Anda.
Langkah berikutnya
Untuk melihat cara membuat pipeline pengiriman dan menggunakannya untuk men-deploy aplikasi dengan cepat dan mudah, coba panduan memulai.
Coba salah satu panduan Cloud Deploy.
Pelajari lebih lanjut cara kerja komponen Cloud Deploy.
Tinjau Google Cloud Framework yang Dirancang dengan Baik: Keunggulan operasional untuk membaca artikel tentang cara menggunakan prinsip keunggulan operasional untuk membangun fondasi penayangan otomatis.
Pelajari cara menggabungkan alat CI/CD untuk mengembangkan dan mengirimkan software secara efektif ke GKE. Google Cloud