Opsi deployment dan model resource

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 Cloud de Confiance , 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
Image container yang dapat di-deploy. Didukung Didukung
Men-deploy dari kode sumber Didukung Didukung
Men-deploy fungsi1 Didukung —

Men-deploy image container

Anda dapat men-deploy image container apa pun yang mematuhi kontrak runtime container Cloud Run ke layanan atau tugas

Resource Cloud Run

Bagian berikut menjelaskan resource Cloud Run secara lebih detail.

Perbandingan resource Cloud Run

Fitur Layanan Pekerjaan
Kasus Penggunaan Utama Berdasarkan permintaan (Situs, API, Microservice) Berbasis tugas (Skrip, Pemrosesan data, Migrasi)
Pemicu: Permintaan HTTP/gRPC, Eventarc Mode eksekusi - standar (langsung), tertunda.

Pemicu - Eksekusi manual, menggunakan Scheduler, menggunakan Workflows
Penskalaan Otomatis/Manual: menskalakan ke nol atau berdasarkan permintaan Otomatis: Melakukan penskalaan ke N tugas independen yang berjalan secara berurutan atau paralel.
Lifecycle Ephemeral, menurunkan skala saat tidak ada aktivitas Berjalan hingga selesai hingga 7 hari (Berumur pendek)
Menangani URL Layanan Stabil (load balanced) Tidak ada endpoint publik.

URL internal untuk pemicu (misalnya, penjadwal)
Traffic Masuk HTTP/gRPC Publik/Internal Tidak ada
Penagihan Berbasis Permintaan atau Berbasis Instance Durasi per eksekusi

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 Cloud de Confiance by S3NS region tertentu. Untuk menyediakan redundansi dan failover, Cloud Run secara otomatis mereplikasi layanan di beberapa zona dalam suatu region.Cloud de Confiance 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:

Layanan dan revisi Cloud Run

Diagram ini menunjukkan project Cloud de Confiance 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 Cloud de Confiance 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.