Apa itu Cloud Run

Cloud Run adalah platform aplikasi terkelola sepenuhnya untuk menjalankan kode, fungsi, atau container Anda di atas infrastruktur Google yang sangat skalabel.

Singkatnya, Cloud Run memungkinkan developer memanfaatkan sebagian besar waktu mereka untuk menulis kode, dan hanya menghabiskan sedikit waktu untuk mengoperasikan, mengonfigurasi, dan menskalakan layanan Cloud Run mereka. Anda tidak perlu membuat cluster atau mengelola infrastruktur untuk bisa produktif dengan Cloud Run.

Layanan dan tugas

Di Cloud Run, kode Anda dapat berjalan sebagai layanan atau tugas.

Tabel berikut memberikan gambaran umum tentang opsi yang disediakan oleh setiap jenis resource Cloud Run.

Resource Deskripsi
Layanan Merespons permintaan HTTP yang dikirim ke endpoint yang unik dan stabil, menggunakan instance container stateless yang melakukan penskalaan otomatis berdasarkan berbagai metrik utama, juga merespons peristiwa dan fungsi.
Tugas Menjalankan tugas yang dapat diparalelkan yang dijalankan secara manual, atau sesuai jadwal, dan dijalankan hingga selesai.

Layanan Cloud Run

Layanan Cloud Run menyediakan infrastruktur yang Anda butuhkan untuk menjalankan endpoint HTTPS yang andal. Untuk menggunakan layanan ini, Anda harus memastikan kode Anda memproses port TCP dan menangani permintaan HTTP masuk.

Diagram berikut mengilustrasikan cara layanan Cloud Run menjalankan beberapa instance container untuk memproses permintaan dan peristiwa web dari klien:

Layanan Cloud Run menjalankan container untuk menyalurkan dan memproses permintaan dan peristiwa web.

Layanan standar mencakup fitur berikut:

Endpoint HTTPS yang berbeda untuk setiap layanan
Setiap layanan Cloud Run memiliki endpoint HTTPS di subdomain unik dari domain *.s3nsrun.fr – dan Anda juga dapat mengonfigurasi domain kustom. Cloud Run mengelola TLS untuk Anda dan mendukung WebSockets, HTTP/2 (end-to-end), dan gRPC (end-to-end).
Penskalaan otomatis berbasis permintaan yang cepat
Cloud Run meningkatkan kapasitas dengan cepat untuk menangani semua permintaan yang masuk atau untuk menangani peningkatan pemakaian CPU di luar permintaan jika setelan penagihan ditetapkan ke penagihan berbasis instance. Sebuah layanan dapat dengan cepat meningkatkan kapasitas hingga seribu instance, atau bahkan lebih jika Anda meminta penambahan kuota. Jika permintaan menurun, Cloud Run akan menghapus container yang tidak aktif (idle). Jika Anda khawatir dengan biaya atau sistem downstream yang terlalu banyak, Anda dapat membatasi jumlah maksimum instance.
Penskalaan manual opsional
Secara default, Cloud Run otomatis menskalakan ke lebih banyak instance untuk menangani lebih banyak traffic, tetapi Anda dapat mengganti perilaku ini dengan menggunakan penskalaan manual untuk mengontrol perilaku penskalaan.
Sistem pengelolaan traffic bawaan

Untuk mengurangi risiko men-deploy revisi baru, Cloud Run mendukung peluncuran bertahap, termasuk mengarahkan traffic masuk ke revisi terbaru, melakukan rollback ke revisi sebelumnya, dan membagi traffic ke beberapa revisi secara bersamaan.

Misalnya, Anda dapat memulainya dengan mengirimkan 1% permintaan ke revisi baru, lalu meningkatkan persentase tersebut sambil memantau telemetri.

Layanan publik dan pribadi

Layanan Cloud Run dapat diakses lewat internet, atau Anda dapat membatasi akses dengan cara berikut:

Anda dapat menayangkan aset yang dapat di-cache dari lokasi edge yang lebih dekat dengan klien dengan mem-fronting layanan Cloud Run dengan Content Delivery Network (CDN), seperti Firebase Hosting dan Cloud CDN.

Penskalaan hingga nol dan instance minimum

Secara default, jika penagihan ditetapkan ke penagihan berbasis instance, Cloud Run menambahkan dan menghapus instance secara otomatis untuk menangani semua permintaan yang masuk atau untuk menangani peningkatan pemanfaatan CPU di luar permintaan.

Penskalaan hingga nol

Jika tidak ada permintaan masuk ke layanan Anda, instance terakhir yang tersisa pun akan dihapus. Perilaku ini sering disebut sebagai penskalaan hingga nol.

Saat permintaan baru tiba untuk layanan tanpa instance aktif, Cloud Run akan membuat instance baru. Proses ini dapat meningkatkan waktu respons untuk permintaan awal ini, bergantung pada seberapa cepat container Anda siap menangani traffic.

Mengubah perilaku penskalaan

Anda dapat mengubah perilaku default ini menggunakan salah satu metode berikut:

  • Instance minimum: Konfigurasi Cloud Run untuk menjaga jumlah minimum instance tetap aktif agar layanan Anda tidak diskalakan ke nol.
  • Penskalaan manual: Gunakan penskalaan manual untuk mempertahankan kontrol yang lebih besar atas perilaku penskalaan layanan Anda.

Pengenaan biaya sesuai penggunaan layanan

Penskalaan ke nol ini diminati karena alasan ekonomi, sebab Anda dikenai biaya untuk CPU dan memori yang dialokasikan ke instance dengan tingkat presisi 100 ms. Jika Anda tidak mengonfigurasi jumlah minimum instance, Anda tidak akan dikenai biaya jika layanan Anda tidak digunakan. Terdapat paket gratis yang hemat biaya. Lihat harga untuk mengetahui informasi selengkapnya.

Ada dua setelan penagihan yang dapat Anda aktifkan:

Berbasis permintaan
Jika sebuah instance tidak sedang memproses permintaan, Anda tidak akan dikenai biaya. Anda membayar biaya per permintaan.
Berbasis instance
Anda akan dikenai biaya selama masa aktif instance. Tidak ada biaya per request.

Terdapat paket gratis yang hemat biaya. Lihat harga untuk mengetahui informasi selengkapnya, dan lihat Setelan penagihan untuk mempelajari cara mengaktifkan penagihan berbasis permintaan atau berbasis instance untuk layanan Anda.

Sistem file container sementara

Instance di Cloud Run dapat dihapus dengan mudah. Setiap container memiliki overlay sistem file yang writable dan dalam memori, yang tidak akan dipertahankan jika container dinonaktifkan. Cloud Run menentukan kapan harus berhenti mengirim permintaan ke sebuah instance dan mematikannya, misalnya saat melakukan penskalaan.

Untuk menerima peringatan saat Cloud Run akan menonaktifkan instance, aplikasi Anda dapat menangkap sinyal SIGTERM. Hal ini memungkinkan kode Anda untuk melakukan flush buffer lokal dan menyimpan data lokal ke datastore eksternal.

Untuk menyimpan file secara permanen, integrasikan dengan Cloud Storage atau pasang network file system (NFS).

Kapan layanan Cloud Run harus digunakan

Layanan Cloud Run sangat cocok untuk kode yang menangani permintaan, peristiwa, atau fungsi. Contoh kasus penggunaan mencakup:

Website dan aplikasi web
Bangun aplikasi web menggunakan stack yang anda sukai, akses database SQL, dan render halaman HTML dinamis.
API dan microservice
Anda dapat membuat REST API, GraphQL API, atau microservice pribadi yang berkomunikasi melalui HTTP atau gRPC.

Tugas Cloud Run

Jika kode Anda didesain untuk mengeksekusi pekerjaan, kemudian menghentikan eksekusi tersebut, misalnya dengan menggunakan skrip, Anda dapat menggunakan tugas Cloud Run untuk menjalankan kode Anda. Anda dapat menjalankan tugas dari command line menggunakan Google Cloud CLI, dengan menjadwalkan tugas berulang.

Tugas array adalah cara tercepat untuk menjalankan tugas

Sebuah tugas dapat memulai satu instance untuk menjalankan kode Anda — cara yang umum untuk menjalankan sebuah skrip atau tool.

Namun, Anda juga dapat menggunakan tugas berbasis array, yang memulai banyak instance independen yang identik secara paralel. Tugas array adalah cara yang lebih cepat untuk memproses tugas yang dapat dibagi menjadi beberapa tugas independen.

Diagram berikut menunjukkan cara kerja tugas dengan tujuh tugas yang berjalan secara berurutan lebih lama daripada tugas yang sama saat empat instance dapat memproses tugas independen secara paralel:

Tugas berbasis array adalah cara yang lebih cepat untuk menjalankan tugas yang dapat diparalelkan

Misalnya, jika Anda mengubah ukuran dan memangkas 1.000 gambar dari Cloud Storage, pemrosesan gambar secara berurutan satu per satu akan lebih lambat daripada memprosesnya secara paralel dengan banyak instance, dengan Cloud Run mengelola penskalaan otomatis.

Kapan tugas Cloud Run harus digunakan

Tugas Cloud Run sangat cocok untuk menjalankan kode yang memproses sebuah pekerjaan (tugas) dan akan berhenti ketika pekerjaan tersebut selesai. Berikut adalah beberapa contohnya:

Skrip atau tool
Jalankan skrip untuk melakukan migrasi database atau pekerjaan operasional lainnya.
Tugas berbasis array
Proses semua file secara paralel dan ekstensif di bucket Cloud Storage.
Tugas terjadwal
Buat dan kirim invoice secara rutin, atau simpan hasil kueri database sebagai XML, dan upload file tersebut setiap beberapa jam.

Langkah berikutnya