Men-deploy image container
Cloud Run menawarkan beberapa opsi deployment. Semua opsi deployment menghasilkan image container yang berjalan sebagai layanan, tugas, atau kumpulan pekerja Cloud Run di infrastruktur Cloud Run yang terkelola sepenuhnya dan sangat skalabel.
Image container yang dapat di-deploy
Anda dapat men-deploy image container apa pun yang mematuhi kontrak runtime container Cloud Run ke layanan, tugas, atau kumpulan pekerja 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 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.
Functions
Anda dapat men-deploy fungsi dengan tujuan tunggal yang merespons peristiwa yang muncul dari infrastruktur dan layanan 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 Cloud Run Functions 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 menyertakan
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.
Layanan Cloud Run
Layanan adalah salah satu resource utama Cloud Run. 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. Project Google Cloud 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 hanya menjalankan satu container (container aplikasi).
Layanan B tidak memiliki permintaan sehingga tidak ada aktivitas dan Cloud Run tidak menjalankan salinan aplikasinya.
Service C memiliki permintaan dan telah diskalakan untuk menangani beban dengan membuat beberapa instance. Setiap instance berisi beberapa container dan berfungsi sebagai set independen. 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 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 permintaan serentak, 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 dijalankan untuk 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 pekerjaan dieksekusi, eksekusi pekerjaan akan dibuat di tempat semua tugas pekerjaan dimulai. Semua tugas dalam eksekusi pekerjaan harus berhasil diselesaikan agar eksekusi pekerjaan 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 pekerjaan 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 tugas 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.
Instance kumpulan pekerja dapat diskalakan secara manual sesuai kebutuhan untuk menskalakan instance yang cukup untuk workload. Namun, Anda dapat membuat autoscaler sendiri jika perlu. Contohnya adalah autoscaler Kafka, yang menangani penskalaan untuk beban kerja yang masuk dari antrean pesan Kafka.