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 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 berjalan hingga selesai. |
Layanan Cloud Run
Layanan Cloud Run menyediakan infrastruktur yang diperlukan untuk menjalankan endpoint HTTPS yang terpercaya. Tanggung jawab Anda adalah memastikan kode Anda dapat memonitor port TCP dan menangani HTTP request.
Diagram berikut menunjukkan layanan Cloud Run yang menjalankan beberapa instance container untuk menangani permintaan dan peristiwa web dari klien menggunakan endpoint HTTPS.
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 pelaksanaan peluncuran bertahap, termasuk mengarahkan traffic masuk ke revisi terbaru, melakukan roll back 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 dari internet, atau Anda dapat membatasi akses dengan cara berikut:
- Atur kebijakan akses dengan Cloud IAM.
- Gunakan setelan ingress untuk membatasi akses jaringan. Ini berguna jika Anda hanya mengizinkan traffic internal dari VPC dan layanan internal.
- Hanya izinkan pengguna yang terautentikasi dengan Identity-Aware Proxy (IAP).
Anda dapat menayangkan aset yang dapat di-cache dari lokasi edge yang lebih dekat dengan klien dengan mem-fronting layanan Cloud Run dengan Jaringan Penayangan Konten (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.
Jika tidak ada permintaan masuk ke layanan Anda, instance terakhir yang tersisa pun akan dihapus. Mekanisme ini sering disebut sebagai "scale to zero" (penskalaan hingga nol). Kemudian, jika tidak ada instance aktif saat permintaan masuk, Cloud Run akan membuat instance baru. Hal ini akan meningkatkan waktu respons untuk permintaan pertama ini, bergantung pada seberapa cepat penampung Anda siap menangani permintaan.
Untuk mengubah perilaku ini, gunakan salah satu metode berikut:
- Konfigurasi Cloud Run untuk menjaga jumlah minimum instance tetap aktif sehingga layanan Anda tidak sampai menghapus semua instance
- Gunakan penskalaan manual untuk mendapatkan kontrol yang lebih besar atas penskalaan.
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 baca 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 in-memory, yang tidak akan dipertahankan jika container dinonaktifkan. Cloud Run menentukan kapan harus berhenti mengirim permintaan ke instance dan menonaktifkannya, 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 mem-flush buffer lokal dan menyimpan data lokal ke penyimpanan data 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 mengeksekusi 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:
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.