Panduan ini menjelaskan cara Cloud Run menangani deployment, yang dibagi menjadi tiga area:
- Jenis deployment: Apa yang Anda bawa ke Cloud Run, seperti kode sumber atau image container.
- Resource Cloud Run: Apa yang dijalankan deployment Anda dalam Cloud Run (layanan, tugas, kumpulan worker, atau instance).
- Metode deployment: Cara Anda menjalankan deployment, misalnya, menggunakan konsol Google Cloud , gcloud CLI, YAML, atau Terraform.
Jenis deployment
Cloud Run menawarkan beberapa opsi deployment. Setelah deployment, semua deployment, eksekusi, atau pembuatan berjalan sebagai instance container yang di-sandbox di infrastruktur Cloud Run yang terkelola sepenuhnya dan sangat skalabel. Tabel berikut menunjukkan opsi deployment yang didukung untuk setiap jenis resource:
| Opsi deployment | Layanan | Pekerjaan | Kumpulan pekerja | Instance |
|---|---|---|---|---|
| Men-deploy image container | Didukung | Didukung | Didukung | Didukung |
| Men-deploy dari kode sumber | Didukung | Didukung | Didukung | — |
| Men-deploy fungsi1 | Didukung | — | — | — |
| Continuous deployment dari git | Didukung | — | — | — |
1 Functions adalah versi khusus deployment sumber untuk kode berbasis peristiwa dan satu tujuan.
Men-deploy image container
Anda dapat men-deploy image container apa pun yang mematuhi kontrak runtime container Cloud Run ke layanan, tugas, kumpulan pekerja, atau instance Cloud Run.
Men-deploy dari kode sumber
Untuk mempermudah, Cloud Run memungkinkan Anda membangun dan men-deploy kode sumber dari satu perintah. Lihat men-deploy layanan dari kode sumber, menjalankan tugas dari kode sumber dan men-deploy kumpulan pekerja dari kode sumber untuk mengetahui detailnya.
Saat Anda men-deploy dari kode sumber, Cloud Build akan mengubah kode menjadi image container yang disimpan di Artifact Registry. Anda dapat men-deploy kode sumber yang menyertakan
Dockerfile atau yang menggunakan salah satu runtime bahasa yang didukung.
Fungsi
Anda dapat men-deploy fungsi dengan tujuan tunggal yang merespons peristiwa yang dikeluarkan dari layanan dan infrastruktur cloud Anda. Cloud Run memicu fungsi Anda saat peristiwa yang dipantau diaktifkan.
Deployment fungsi adalah jenis deployment kode sumber khusus, di mana Anda hanya perlu memberikan kode fungsi. Anda dapat menulis fungsi Cloud Run menggunakan sejumlah bahasa pemrograman yang didukung.
Men-deploy fungsi akan membuat layanan Cloud Run.
Deployment kode sumber berkelanjutan dari git
Cloud Run membantu Anda mengonfigurasi deployment berkelanjutan dari
Git. Seperti deployment
sumber, Anda dapat men-deploy kode sumber yang
mencakup Dockerfile atau ditulis dalam salah satu runtime bahasa yang didukung.
Deployment berkelanjutan dari Git tersedia untuk layanan Cloud Run. Anda dapat mengonfigurasinya secara manual di Cloud Build untuk tugas Cloud Run .
Resource Cloud Run
Bagian berikut menjelaskan resource Cloud Run secara lebih detail.
Perbandingan resource Cloud Run
| Fitur | Layanan | Pekerjaan | Kumpulan Pekerja | Instance |
|---|---|---|---|---|
| Kasus Penggunaan Utama | Berdasarkan permintaan (Situs, API, Microservice) | Berbasis tugas (Skrip, Pemrosesan data, Migrasi) | Berbasis Peristiwa/Tarik (konsumen Kafka/PubSub) | Singleton terkelola (Workload agentik, kebutuhan komputasi tertentu) |
| Pemicu: | Permintaan HTTP/gRPC, Eventarc | Mode eksekusi - standar (langsung), tertunda. Pemicu - Eksekusi manual, menggunakan Scheduler, menggunakan Workflows |
Selalu aktif ATAU diskalakan otomatis menggunakan tugas latar belakang berbasis pull | Tidak ada |
| Penskalaan | Otomatis/Manual: menskalakan ke nol atau berdasarkan permintaan | Otomatis: Melakukan penskalaan ke N tugas independen yang berjalan secara berurutan atau paralel. | Otomatis/Manual: Jumlah instance tetap menggunakan penskalaan manual atau penskalaan otomatis bawaan berdasarkan pemakaian CPU atau backlog pesan Pub/Sub (penskalaan otomatis berbasis KEDA menggunakan penskalaan otomatis eksternal) | Tidak ada: Tidak ada penskalaan otomatis; dapat dikelola satu per satu |
| Lifecycle | Ephemeral, menurunkan skala saat tidak ada aktivitas | Berjalan hingga selesai hingga 7 hari (Berumur pendek) | Pilihan antara proses latar belakang yang selalu aktif ATAU instance yang diskalakan otomatis dan efemeral. | Berjangka panjang (dapat berjalan selama berhari-hari/berminggu-minggu) dan dimulai ulang secara otomatis tanpa batas |
| Menangani | URL Layanan Stabil (load balanced) | Tidak ada endpoint publik. URL internal untuk pemicu (misalnya, penjadwal) |
Tidak ada endpoint publik. Akses masuk berbasis IP VPC Langsung Pribadi |
URL Individual per Instance |
| Traffic Masuk | HTTP/gRPC Publik/Internal | Tidak ada | Ingress L4 berbasis IP dengan Direct VPC | URL per-instance publik/internal |
| Penagihan | Berbasis Permintaan atau Berbasis Instance | Durasi per eksekusi | Durasi per instance | Durasi per instance |
Layanan Cloud Run
Layanan adalah jenis resource utama di Cloud Run, yang merepresentasikan beban kerja berbasis permintaan yang secara otomatis menskalakan instance container untuk menangani traffic web, permintaan HTTP, atau peristiwa yang masuk. Setiap layanan berada di Google Cloud region tertentu. Untuk menyediakan redundansi dan failover, Cloud Run secara otomatis mereplikasi layanan di beberapa zona dalam suatu region.Google Cloud Project tertentu dapat menjalankan banyak layanan di berbagai region.
Setiap layanan mengekspos endpoint unik. Secara default, Cloud Run menskalakan secara otomatis untuk menangani permintaan yang masuk. Anda dapat mengubah perilaku penskalaan menjadi penskalaan manual jika diperlukan. Anda dapat men-deploy layanan dari container, repositori, atau kode sumber.
Diagram berikut menunjukkan model resource Cloud Run untuk layanan:
Diagram ini menunjukkan project Google Cloud yang berisi tiga layanan Cloud Run, Layanan A, Layanan B, dan Layanan C, yang masing-masing memiliki beberapa revisi:
- Layanan A menerima beberapa permintaan sehingga Cloud Run telah memulai beberapa instance untuk menangani beban. Setiap instance ini menjalankan hanya satu container (container aplikasi).
- Layanan B tidak memiliki permintaan, jadi tidak ada aktivitas dan Cloud Run tidak menjalankan instance apa pun.
- Layanan C memiliki permintaan dan telah diskalakan untuk menangani beban dengan membuat beberapa instance. Dalam hal ini, setiap instance ini menjalankan serangkaian beberapa container. Di setiap set, hanya container ingress yang menerima permintaan, tetapi container lain membantu memenuhi permintaan.
Revisi layanan Cloud Run
Setiap deployment ke layanan membuat revisi. Revisi terdiri dari satu image container atau lebih, beserta setelan konfigurasi seperti variabel lingkungan, batas memori, atau nilai konkurensi permintaan.
Anda tidak dapat mengubah revisi setelah dibuat. Misalnya, saat Anda men-deploy image container ke layanan baru, Cloud Run akan membuat revisi pertama. Jika kemudian Anda men-deploy image container yang berbeda ke layanan yang sama, Cloud Run akan membuat revisi kedua. Jika selanjutnya Anda menetapkan variabel lingkungan, Cloud Run akan membuat revisi ketiga. Seiring waktu, Cloud Run akan menghapus revisi yang tidak digunakan.
Cloud Run secara otomatis merutekan permintaan sesegera mungkin ke revisi layanan responsif terbaru.
Instance layanan Cloud Run
Cloud Run secara otomatis menskalakan setiap revisi layanan yang menerima permintaan ke jumlah instance yang diperlukan untuk menangani semua permintaan ini. Perhatikan bahwa instance dapat menerima banyak permintaan secara bersamaan. Dengan setelan konkurensi permintaan, Anda dapat menetapkan jumlah maksimum permintaan yang dapat dikirim secara paralel ke setiap instance revisi.
Tugas Cloud Run
Setiap tugas berada di region Google Cloud tertentu dan terdiri dari satu atau beberapa tugas yang menjalankan satu atau beberapa container hingga selesai. Tugas pekerjaan bersifat independen dan dapat dijalankan secara paralel dalam eksekusi pekerjaan tertentu.
Eksekusi tugas Cloud Run
Saat Anda mengeksekusi tugas, Cloud Run akan membuat eksekusi tugas dan memulai semua tugas pekerjaan. Semua tugas dalam eksekusi tugas harus berhasil diselesaikan agar eksekusi tugas berhasil. Anda dapat menyetel waktu tunggu pada tugas dan menentukan jumlah percobaan ulang jika terjadi kegagalan tugas.
Jika tugas apa pun melebihi jumlah percobaan ulang maksimumnya, Cloud Run akan menandai tugas tersebut sebagai gagal dan tugas sebagai gagal. Secara default, tugas dieksekusi secara paralel hingga maksimum 100, tetapi Anda dapat menentukan nilai maksimum yang lebih rendah jika salah satu resource pendukung Anda, seperti database, memerlukannya.
Tugas Cloud Run
Setiap eksekusi pekerjaan menjalankan sejumlah tugas secara paralel, dengan setiap tugas
menjalankan satu instance. Cloud Run secara otomatis mencoba menjalankan kembali tugas yang gagal, bergantung pada konfigurasi tugas untuk maxRetries.
Kumpulan pekerja Cloud Run
Kumpulan pekerja adalah resource Cloud Run yang dirancang khusus untuk workload non-permintaan, seperti pull queue. Perhatikan bahwa gabungan worker tidak memiliki fitur berikut:
- Tidak ada endpoint/URL
- Tidak ada persyaratan agar container yang di-deploy memproses permintaan di port
- Tidak ada penskalaan otomatis
Mirip dengan layanan Cloud Run, men-deploy atau mengupdate kumpulan pekerja akan membuat revisi baru.
Anda dapat menskalakan secara manual instance kumpulan pekerja sesuai kebutuhan untuk menangani beban kerja. Anda juga dapat menskalakan otomatis kumpulan worker dengan metrik eksternal, yang menangani penskalaan untuk workload yang didorong oleh sumber seperti langganan Pub/Sub, kueri Prometheus, atau antrean Kafka.
Saat terhubung ke jaringan Virtual Private Cloud (VPC), setiap instance kumpulan pekerja mendapatkan alamat IP di jaringan VPC dan dapat mengirim serta menerima traffic ke dan dari VPC ini.
Instance Cloud Run
Instance Cloud Run merepresentasikan lingkungan runtime singleton mandiri. Tidak seperti layanan—yang menskalakan instance container secara otomatis atau manual untuk menangani traffic—instance Cloud Run adalah resource tingkat teratas dengan pengalamatan URL langsung dan operasi siklus prosesnya sendiri.
Setiap instance Cloud Run mencakup fitur berikut:
- Endpoint URL khusus: Menetapkan URL ingress yang stabil secara default. Anda dapat menonaktifkan URL default untuk hanya mengizinkan traffic dari jalur ingress lain instance.
- Kebijakan mulai ulang: Mendukung kondisi mulai ulang (
always,on-failure,never) untuk memulihkan proses penampung secara otomatis saat terjadi error. - Alokasi CPU bersama: Berjalan pada model CPU bersama dengan CPU yang dialokasikan sepenuhnya berdasarkan anggaran burst dan di-throttle ke batas resource dasar 6,25% di luar anggaran tersebut.