GKE dan Cloud Run


Google Cloud menawarkan dua platform utama untuk menjalankan aplikasi dalam container: GKE untuk menjalankan container di cluster Kubernetes, dan Cloud Run untuk menjalankan container langsung di infrastruktur Google Cloud . Namun, kapan Anda harus menggunakan salah satunya? Dan apakah Anda dapat menggunakan keduanya? Halaman ini memberikan perbandingan kedua platform dan keunggulannya, serta membantu Anda mengetahui apakah strategi satu platform atau hybrid akan cocok untuk Anda.

Halaman ini dirancang untuk administrator infrastruktur dan operator aplikasi yang menjalankan beragam workload dalam container, dan ingin memanfaatkan keunggulan Google Kubernetes Engine (GKE) dan Cloud Run untuk men-deploy aplikasi keGoogle Cloud Platform.

Sebelum membaca halaman ini, pastikan Anda memahami:

Mengapa menggunakan GKE dan Cloud Run bersama-sama?

GKE dan Cloud Run menawarkan berbagai keunggulan untuk menjalankan aplikasi yang di-container, dan memenuhi berbagai tingkat kompleksitas workload. Namun, Anda tidak perlu memilih antara kedua platform tersebut. Anda dapat memanfaatkan keunggulan GKE dan Cloud Run secara bersamaan dengan memigrasikan workload Anda di antara kedua platform sesuai kebutuhan. Strategi hybrid seperti ini dapat membantu Anda mengoptimalkan biaya, performa, dan biaya operasi pengelolaan.

Berikut adalah beberapa manfaat menggunakan kedua runtime untuk men-deploy workload Anda:

  • GKE dan Cloud Run menawarkan tingkat portabilitas yang relatif tinggi:

    • Kedua platform menggunakan image container standar sebagai artefak deployment. Anda dapat menggunakan image yang sama untuk aplikasi Anda di kedua platform tanpa modifikasi apa pun, sehingga memungkinkan migrasi beban kerja yang lancar antara GKE dan Cloud Run. Anda tidak perlu memperbarui penyiapan continuous integration untuk bermigrasi antara GKE dan Cloud Run selama image container disimpan di Artifact Registry.

    • GKE dan Cloud Run menggunakan model API deklaratif. Cloud Run Admin API v1 dirancang agar kompatibel dengan Kubernetes API. Artinya, Anda dapat menggunakan konsep Kubernetes yang sudah dikenal seperti Deployment, Layanan, dan penskalaan otomatis Pod horizontal untuk mengelola layanan Cloud Run. Kesamaan ini memudahkan penerjemahan konfigurasi antara kedua platform.

    • Resource ditampilkan dalam file YAML dengan struktur deklaratif dan standar yang sama, sehingga dapat dimigrasikan dengan mudah di antara runtime. Berikut contoh yang membandingkan file YAML deployment Kubernetes dan layanan Cloud Run.

  • GKE dan Cloud Run terintegrasi dengan lancar dengan Cloud Logging dan Cloud Monitoring, sehingga Anda dapat melihat metrik aplikasi secara terpusat di konsol Google Cloud , terlepas dari platformnya. Anda juga dapat menggunakan pemantauan tujuan tingkat layanan (SLO) di kedua platform, dan melihat tampilan terpadu SLO di dasbor Cloud Monitoring.

  • Anda dapat menerapkan continuous delivery ke resource GKE atau layanan Cloud Run menggunakan Cloud Deploy. Atau, jika Anda mau, deploy aplikasi secara bersamaan ke GKE dan Cloud Run menggunakan deployment paralel.

  • Anda dapat memfasilitasi pengelolaan traffic lanjutan dengan menggunakan load balancer eksternal dan internal untuk layanan di GKE dan Cloud Run. Hal ini mencakup kemampuan untuk mengekspos endpoint eksternal sehingga Anda dapat men-deploy dan menjalankan URL yang berbeda untuk aplikasi yang sama di kedua platform. Anda juga dapat membagi traffic ke layanan yang sama di GKE dan Cloud Run, sehingga memungkinkan migrasi yang lancar dari satu platform ke platform lainnya.

  • Google Cloud menyediakan alat keamanan untuk meningkatkan postur keamanan Anda saat menggunakan kedua runtime. Pemindaian OS memungkinkan Anda memindai container untuk mencari kerentanan sebelum men-deploy ke salah satu platform. Kebijakan Otorisasi Biner pusat dapat menerapkan integrasi dengan bidang kontrol GKE dan Cloud Run untuk mengizinkan atau memblokir deployment image berdasarkan kebijakan yang Anda tentukan. Dengan Kontrol Layanan VPC, tim keamanan dapat menentukan kontrol perimeter terperinci di seluruh resource GKE dan Cloud Run Anda.

Membandingkan GKE dan Cloud Run

Untuk memanfaatkan fitur terbaik GKE dan Cloud Run, serta mengetahui kapan harus memindahkan beban kerja di antara keduanya, Anda harus memahami perbedaan kedua layanan ini.

Fitur GKE Cloud Run
Deployment dan pengelolaan

Mengelola cluster Kubernetes, termasuk konfigurasi node, jaringan, penskalaan, dan upgrade.

Google Cloud mengelola infrastruktur yang mendasarinya dan menyediakan alat untuk menyederhanakan operasi cluster, tetapi Anda tetap bertanggung jawab atas aspek inti Kubernetes.

Jalankan container langsung di atas infrastruktur skalabel Google Cloud.

Yang harus Anda lakukan adalah menyediakan kode sumber atau image container, dan Cloud Run dapat membangun container untuk Anda. Anda tidak perlu membuat cluster, atau menyediakan dan mengelola infrastruktur.

Kontrol dan fleksibilitas

Kontrol penuh atas cluster Kubernetes.

Anda dapat membuat penyesuaian lanjutan pada konfigurasi node, kebijakan jaringan, setelan keamanan, dan add-on.

Kontrol terbatas atas infrastruktur dasar.

Anda dapat mengonfigurasi hal-hal seperti variabel lingkungan, konkurensi, dan koneksi jaringan, tetapi Anda tidak dapat menyesuaikan infrastruktur atau lingkungan pokok. Ideal untuk kesederhanaan dan kecepatan.

Jenis aplikasi Mendukung aplikasi stateless dan stateful, serta ideal untuk aplikasi kompleks dengan kebutuhan resource tertentu. Paling cocok untuk layanan, layanan web, dan fungsi stateless berbasis permintaan atau peristiwa.
Model penetapan harga Bayar per cluster per jam, terlepas dari mode operasi (Standard atau Autopilot), ukuran cluster, atau topologi. Bayar per penggunaan, dibulatkan ke 100 milidetik terdekat.

Kasus penggunaan

Anggaplah Anda adalah administrator platform perusahaan retail yang sedang membangun platform e-commerce besar. Anda memiliki workload dalam container berikut untuk di-deploy:

  • Situs frontend dan aplikasi seluler: Aplikasi web stateless yang menangani penjelajahan, penelusuran, dan checkout produk.

  • Pengelolaan inventaris produk: Layanan stateful yang mengelola ketersediaan dan update produk.

  • Mesin pemberi saran: Microservice kompleks yang menghasilkan rekomendasi produk yang dipersonalisasi untuk setiap pengguna.

  • Tugas pemrosesan batch: Mencakup tugas berkala seperti memperbarui katalog produk dan menganalisis perilaku pengguna.

Workload ini mewakili campuran layanan stateless dan stateful, sehingga Anda memutuskan untuk memanfaatkan GKE dan Cloud Run untuk performa yang optimal. Berikut salah satu cara Anda dapat menerapkan pendekatan hybrid untuk workload.

  1. Setelah membaca kriteria kesesuaian beban kerja Cloud Run, Anda memutuskan untuk menggunakan Cloud Run untuk situs dan aplikasi seluler, serta tugas pemrosesan batch. Men-deploy layanan ini di Cloud Run memiliki manfaat berikut:

    • Penskalaan otomatis saat lonjakan traffic dan tugas batch besar ditangani tanpa intervensi manual.

    • Efisiensi biaya dengan model bayar per penggunaan. Anda hanya membayar saat pengguna menjelajah atau melakukan checkout, dan saat resource digunakan selama eksekusi tugas batch.

    • Deployment yang lebih cepat karena update tersedia secara instan, sehingga meningkatkan pengalaman pengguna.

    • Integrasi yang mudah dengan layanan Google Cloud lainnya. Misalnya, untuk pemrosesan berbasis peristiwa, Anda dapat menggunakan Cloud Run functions untuk memulai tugas pemrosesan batch di Cloud Run, dan mengaktifkan alur kerja yang lancar.

  2. Pengelolaan inventaris produk adalah layanan stateful yang memerlukan kontrol terperinci dan berpotensi memerlukan solusi penyimpanan kustom. Anda memutuskan untuk menggunakan GKE untuk men-deploy layanan ini karena menawarkan penyimpanan persisten dan memungkinkan Anda melampirkan volume untuk persistensi dan keandalan data produk.

  3. Mesin rekomendasi adalah microservice kompleks yang diuntungkan oleh GKE. Dengan GKE, Anda dapat mengelola dependensi yang kompleks, dan melakukan kontrol terperinci atas alokasi dan penskalaan resource.

GKE paling cocok untuk arsitektur microservice yang kompleks, aplikasi stateful, workload yang memerlukan konfigurasi infrastruktur atau jaringan kustom, dan skenario yang memerlukan kontrol mendalam atas Kubernetes. Cloud Run paling cocok untuk aplikasi berbasis peristiwa. Ideal untuk layanan web stateless, API, tugas batch, dan workload lain yang diuntungkan dari harga bayar sesuai penggunaan.

Contoh sebelumnya menunjukkan cara menggabungkan GKE dan Cloud Run dapat memberikan solusi yang efektif dan fleksibel untuk platform e-commerce Anda. Anda mendapatkan manfaat dari kedua platform; efisiensi serverless untuk beban kerja stateless, dan kontrol Kubernetes untuk microservice yang kompleks dan komponen stateful.

Untuk melihat komponen berbeda yang di-deploy dengan pendekatan hibrida secara terpadu dan melihat cara kerjanya bersama-sama sebagai aplikasi yang kohesif, Anda dapat menggunakan Hub Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Referensi yang didukung App Hub.

Pertimbangan

GKE dan Cloud Run saling melengkapi, memenuhi berbagai kebutuhan dalam lanskap aplikasi yang kompleks.

Berikut beberapa pertimbangan saat menerapkan pendekatan hybrid untuk men-deploy workload:

  • Jalankan microservice stateless di Cloud Run untuk efisiensi biaya dan skalabilitas.

  • Deploy aplikasi stateful yang kompleks yang memerlukan penyesuaian mendalam di GKE.

  • Jika Anda menggunakan jaringan pribadi di Google Cloud, untuk mengakses resource di cluster GKE dari layanan Cloud Run, Anda dapat mengirim permintaan ke jaringan Virtual Private Cloud (VPC) menggunakan traffic keluar VPC Langsung. Untuk mengakses Layanan Kubernetes di cluster GKE, layanan Cloud Run harus terhubung ke jaringan VPC cluster, dan Layanan Kubernetes harus menggunakan Load Balancer Jaringan passthrough internal.

  • Untuk memigrasikan traffic antara Cloud Run dan GKE, Anda dapat mengekspos endpoint eksternal di belakang Load Balancer Aplikasi eksternal Global. Saat menerapkan load balancer ini di depan layanan di kedua runtime, Anda dapat men-deploy aplikasi yang sama di Cloud Run dan GKE, sehingga Anda dapat mengalihkan traffic secara bertahap dari satu platform ke platform lainnya.

  • Untuk mengekspos layanan Cloud Run di Virtual Private Cloud di balik IP pribadi, gunakan load balancer internal.

Ingat, jika workload Anda sudah ada di Cloud Run, Anda dapat bermigrasi ke GKE sesuai kebutuhan.

Kapan sebaiknya GKE dan Cloud Run tidak digunakan bersama-sama

Meskipun GKE dan Cloud Run menawarkan pendekatan yang menarik untuk banyak workload dalam container, ada situasi ketika penggunaan keduanya secara bersamaan mungkin tidak cocok. Berikut adalah beberapa contoh saat Anda mungkin memutuskan untuk tidak menerapkan pendekatan hybrid:

  • Microservice yang terintegrasi erat: Jika microservice Anda sangat bergantung satu sama lain dan memerlukan komunikasi yang sering dan latensi rendah, mengelolanya di berbagai platform terpisah dapat menimbulkan kerumitan. Panggilan jaringan yang sering antar-platform dapat menambah overhead dan potensi hambatan, yang memengaruhi performa.

  • Aplikasi lama dengan dependensi kustom: Jika aplikasi Anda mengandalkan library, framework, atau konfigurasi tertentu yang tidak didukung oleh Cloud Run, menggunakannya untuk sebagian aplikasi mungkin memerlukan refaktorisasi atau solusi yang signifikan. Hal ini dapat meniadakan manfaat serverless dan menimbulkan biaya operasional pemeliharaan khusus platform.

  • Batasan anggaran dengan workload yang dapat diprediksi: Jika workload Anda memiliki persyaratan resource yang konsisten dan Anda memiliki anggaran terbatas, model bayar per node GKE mungkin lebih hemat biaya daripada penagihan bayar per penggunaan Cloud Run. Jika memiliki beban kerja yang dapat diprediksi, Anda mungkin tidak sepenuhnya menggunakan manfaat penskalaan otomatis Cloud Run, sehingga biaya tetap GKE menjadi lebih menarik.

Pendekatan terbaik pada akhirnya bergantung pada kebutuhan dan prioritas spesifik Anda. Evaluasi dengan cermat persyaratan aplikasi, batasan resource, dan keahlian tim Anda sebelum memutuskan arsitektur GKE dan Cloud Run hybrid.

Langkah berikutnya