Apa itu Cloud Run

Cloud Run adalah platform komputasi terkelola yang memungkinkan Anda menjalankan container langsung di atas infrastruktur Google yang bersifat skalabel.

Anda dapat men-deploy kode yang ditulis dalam bahasa pemrograman apa pun di Cloud Run selama Anda dapat membangun image container dari bahasa tersebut. Bahkan, membangun image container bersifat opsional. Jika menggunakan Go, Node.js, Python, Java, .NET Core, Ruby, atau framework yang didukung, Anda dapat menggunakan opsi deployment berbasis sumber yang dapat membantu membangun container untuk Anda, dengan menggunakan praktik terbaik untuk bahasa yang Anda gunakan.

Google telah membangun Cloud Run agar dapat bekerja sama dengan layanan lain di Google Cloud, sehingga Anda dapat membangun aplikasi dengan fitur lengkap. Google Cloud

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, tugas, dan kumpulan pekerja: tiga cara untuk menjalankan kode Anda

Di Cloud Run, kode Anda dapat berjalan sebagai layanan, tugas, atau kumpulan pekerja. Semua jenis resource ini berjalan di lingkungan yang sama dan dapat menggunakan integrasi yang sama dengan layanan lain di Google Cloud.

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 sementara tanpa status yang melakukan penskalaan otomatis berdasarkan berbagai metrik utama, juga merespons peristiwa dan fungsi.
Tugas Menangani tugas paralel yang tidak berbasis permintaan yang dieksekusi secara manual, atau sesuai jadwal, dan dijalankan hingga selesai.
Kumpulan pekerja Menangani workload berbasis non-permintaan seperti workload berbasis pull, misalnya, konsumen Kafka, antrean pull Pub/Sub, atau konsumen RabbitMQ.

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 Cloud Run menjalankan container untuk menyalurkan dan memproses web request dan web event.

Layanan standar mencakup fitur berikut:

Endpoint HTTPS yang berbeda untuk setiap layanan
Setiap layanan Cloud Run memiliki endpoint HTTPS di subdomain unik dari domain *.run.app – 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 mengirim 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:

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 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:

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 dalam memori, yang tidak akan dipertahankan jika container dinonaktifkan. Cloud Run menentukan kapan harus berhenti mengirim permintaan ke 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 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.
Pemrosesan data streaming
Layanan Cloud Run dapat menerima pesan dari langganan push Pub/Sub dan peristiwa dari Eventarc.
Workload asinkron
Fungsi Cloud Run dapat merespons peristiwa asinkron, seperti pesan pada topik Pub/Sub, perubahan dalam bucket Cloud Storage, atau peristiwa Firebase.
Inferensi AI
Layanan Cloud Run, dengan atau tanpa GPU yang dikonfigurasi, dapat menghosting workload AI seperti model inferensi dan pelatihan model.

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, atau dengan menjalankannya sebagai bagian dari workflow.

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.
Workload AI
Tugas Cloud Run dengan atau tanpa GPU yang dikonfigurasi dapat menghosting workload AI seperti inferensi batch, penyesuaian model, dan pelatihan model.

Google Cloud integrasi

Cloud Run berintegrasi dengan ekosistem Google Cloud yang lebih luas Google Cloud, sehingga Anda dapat membangun aplikasi dengan fitur lengkap.

Integrasi esensial mencakup:

Penyimpanan data
Cloud Run berintegrasi dengan Cloud SQL (MySQL, PostgreSQL, dan SQL Server terkelola), Memorystore (Redis dan Memcached terkelola), Firestore, Spanner, Cloud Storage, dan lain-lain. Lihat Penyimpanan data untuk mengetahui daftar lengkapnya.
Logging dan error reporting
Cloud Logging otomatis menyerap log container. Jika terdapat exceptions dalam log, Error Reporting akan mengumpulkannya, lalu akan menotifikasikannya kepada Anda. Bahasa yang didukung meliputi: Go, Java, Node.js, PHP, Python, Ruby, dan .NET.
Service identity
Setiap revisi Cloud Run ditautkan ke akun layanan, dan library klien Google Cloud menggunakan akun layanan ini secara transparan untuk melakukan autentikasi dengan API Google Cloud .
Continuous delivery
Jika menyimpan kode sumber di GitHub, Bitbucket, atau Cloud Source Repositories, Anda dapat mengonfigurasi Cloud Run untuk otomatis men-deploy commit baru.
Private networking
Instance Cloud Run dapat menjangkau resource di jaringan Virtual Private Cloud melalui konektor Akses VPC Serverless. Dengan cara inilah layanan Anda dapat terhubung dengan mesin virtual Compute Engine, atau produk-produk lain yang berbasis Compute Engine seperti Google Kubernetes Engine atau Memorystore.
Google Cloud API
Kode layanan Anda melakukan autentikasi dengan API Google Cloud secara transparan. Hal ini mencakup API AI dan Machine Learning, seperti Cloud Vision API, Speech-to-Text API, AutoML Natural Language API, Cloud Translation API, dan banyak lagi.
Tugas latar belakang
Anda dapat menjadwalkan kode untuk dijalankan nanti atau langsung setelah memproses sebuah web request. Cloud Run dapat digunakan bersama Cloud Tasks untuk menyediakan eksekusi asinkron yang skalabel dan terpercaya.

Lihat Menghubungkan ke Google Cloud layanan untuk mengetahui daftar banyak layanan Google Cloud yang berfungsi baik dengan Cloud Run.

Kode harus dikemas dalam image container

Agar layanan, tugas, atau kumpulan pekerja Anda dapat di-deploy ke Cloud Run, Anda harus mengemasnya ke dalam image container. Jika Anda belum familier dengan container, berikut adalah pengenalan konsepnya secara singkat.

Membangun container image

Seperti yang ditunjukkan pada diagram, Anda menggunakan kode sumber, aset, dan dependensi library untuk membangun image container, yang merupakan paket dengan semua yang diperlukan layanan Anda untuk berjalan. Hal itu terdiri dari build artifact, aset, paket sistem, dan runtime (opsional). Aplikasi yang terpaket di dalam container bersifat sangat portabel – dapat dijalankan di mana pun container dapat berjalan. Contoh dari build artifact adalah compiled binary atau file skrip, dan contoh dari runtime adalah Node.js JavaScript runtime, atau sebuah Java Virtual Machine (JVM) .

Para ahli mengapresiasi kemampuan Cloud Run yang tidak menimbulkan beban tambahan dalam menjalankan kode mereka: Anda dapat menjalankan binary apa pun di Cloud Run.

Jika Anda menginginkan kemudahan atau ingin mempercayakan aplikasi mereka ke Google, Cloud Run terintegrasi dengan buildpack Google Cloud yang open source untuk menawarkan deployment berbasis sumber.

Langkah berikutnya