Memilih Pub/Sub atau Layanan Terkelola Cloud untuk Apache Kafka

Dokumen ini memandu Anda dalam memilih antara Pub/Sub dan Layanan Terkelola Google Cloud untuk Apache Kafka. Pub/Sub dan Managed Service for Apache Kafka adalah layanan pesan terkelola yang skalabel secara horizontal dan mampu menangani beban kerja bervolume tinggi.

Dokumen ini ditujukan untuk developer, arsitek, atau pembuat keputusan yang mencari layanan terkelola untuk menangani data streaming dan workload pesan.

Ada beberapa opsi untuk menjalankan Apache Kafka, termasuk layanan partner dan software open source yang dikelola sendiri. Dokumen ini tidak membahas opsi tersebut.

Untuk ringkasan konsep Pub/Sub, lihat Ringkasan layanan Pub/Sub.

Untuk ringkasan konsep Managed Service for Apache Kafka, lihat ringkasan Managed Service for Apache Kafka.

Kemudahan operasional versus portabilitas

Pilihan antara Pub/Sub dan Managed Service for Apache Kafka adalah kompromi antara kemudahan operasional dan portabilitas.

Kesederhanaan operasional Pub/Sub

Pub/Sub adalah layanan yang terkelola sepenuhnya, serverless, dan didistribusikan secara global yang menggunakan infrastruktur Google Cloud . Platform ini otomatis diskalakan untuk menangani beban kerja Anda, sehingga Anda tidak perlu khawatir untuk mengelola infrastruktur. Pub/Sub secara dinamis menyesuaikan kapasitas untuk setiap topik dan langganan. Penayang dan pelanggan dapat melakukan penskalaan secara independen, tidak hanya di berbagai topik dan langganan, tetapi juga dalam topik dan langganan yang sama.

Pub/Sub juga memindahkan data dengan lancar di beberapa region. Artinya, penayang dan pelanggan dapat terhubung ke wilayah terdekat mereka, dan layanan akan menangani sisanya.

Managed Service for Apache Kafka juga dapat menangani data dalam volume besar. Namun, Anda harus mengelola ukuran cluster dan mengonfigurasi beberapa properti lainnya berdasarkan kebutuhan penskalaan topik Anda. Yang terpenting, Anda harus mempertimbangkan jumlah partisi yang akan ditetapkan ke topik. Terlalu banyak partisi dapat membuang resource. Terlalu sedikit partisi dapat membebani broker di cluster Kafka Anda. Anda juga harus mempertimbangkan jumlah replika yang harus dikonfigurasi per partisi, bergantung pada persyaratan fan-out konsumen dan latensi.

Karena deployment Kafka terikat dengan region tertentu, jika Anda memindahkan data di seluruh region, pemindahan data tersebut harus terjadi di luar layanan. Memastikan keberlanjutan kesehatan pergerakan data dan memenuhi kebutuhan topik di cluster Kafka akan menambah pekerjaan operasional Anda.

Portabilitas Managed Service for Apache Kafka

Meskipun penskalaan otomatis dan distribusi data global Pub/Sub memudahkan operasi, Apache Kafka API diadopsi secara lebih luas.

Jika Anda berencana menggunakan sistem pesan independen di berbagai lingkungan lokal atau penyedia cloud, Layanan Terkelola untuk Apache Kafka dapat memberi Anda pengalaman yang lebih konsisten di seluruh aplikasi. Hal ini karena Anda dapat menstandarkan Kafka dan menggunakan API yang sama untuk berkomunikasi dengan layanan Kafka di setiap lingkungan.

Meskipun Anda tentu dapat menggunakan Pub/Sub sebagai sistem pesan pusat di semua lingkungan, perlu diingat bahwa ini adalah layanan yang berbeda dengan API-nya sendiri. Jika Anda perlu berinteraksi dengan sistem pesan untuk lingkungan tertentu, penggunaan Managed Service for Apache Kafka mungkin menawarkan pengalaman pengembangan yang lebih terpadu.

Layanan mana yang tepat untuk Anda

Jika pengalaman yang konsisten di berbagai lingkungan sangat penting, pilih Managed Service for Apache Kafka. Jika fokus Anda adalah pada konfigurasi minimal untuk menskalakan beban kerja atau pergerakan data antar-region, Pub/Sub menawarkan keunggulan yang menarik.

Pilih Pub/Sub jika faktor berikut mendeskripsikan persyaratan Anda:

  • Anda memprioritaskan kesederhanaan operasional dalam Google Cloud.

  • Anda memerlukan solusi yang skalabel dan serverless dengan pengelolaan overhead minimal.

  • Anda memiliki ukuran beban kerja yang tidak dapat diprediksi atau berubah. Pub/Sub juga berfungsi dengan baik saat throughput beban kerja stabil.

  • Anda memerlukan pelacakan pemrosesan per pesan untuk meminimalkan efek pipeline karena satu pesan yang buruk. Pub/Sub, dengan antrean pesan tidak terkirim (DLQ) bawaan dan dukungan untuk pemrosesan pesan yang tidak berurutan, memungkinkan sistem Anda tetap beroperasi meskipun mengalami pesan yang bermasalah.

  • Anda memerlukan agregasi data antar-region.

  • Anda memerlukan penskalaan penayang dan pelanggan yang independen.

Pilih Managed Service for Apache Kafka jika faktor berikut mendeskripsikan persyaratan Anda:

  • Portabilitas di beberapa penyedia cloud atau lingkungan lokal sangat penting.

  • Anda memiliki workload Kafka yang sudah ada dan ingin dimigrasikan ke Google Cloud. Untuk informasi selengkapnya, lihat Memilih berdasarkan penyiapan Kafka yang ada.

  • Anda memiliki volume traffic yang konsisten tanpa banyak variasi.

  • Anda bersedia menangani pengelolaan kapasitas.

  • Anda memerlukan pengurutan pesan dengan throughput tinggi per kunci.

  • Anda ingin menggunakan pola sumber peristiwa dengan log peristiwa sebagai sumber tepercaya.

Memilih berdasarkan penyiapan Kafka yang ada

Jika Anda sudah menggunakan Kafka dan mencari solusi terkelola, aman, dan andal di Google Cloud, Managed Service for Apache Kafka adalah pilihan yang direkomendasikan.

Jika Anda sudah menjalankan Kafka dan bersedia menulis ulang aplikasi untuk mendapatkan manfaat dari layanan global yang sangat skalabel dan melakukan penskalaan otomatis, Pub/Sub adalah rekomendasi yang baik. Untuk bermigrasi dari Kafka ke Pub/Sub, lihat Bermigrasi dari Kafka ke Pub/Sub.

Untuk workload baru atau pengguna yang baru melakukan streaming di Google Cloud, Pub/Sub direkomendasikan karena kemudahan penggunaannya. Jika Anda ingin memindahkan workload Kafka yang ada ke Cloud dengan perubahan kode minimal, Managed Service for Apache Kafka adalah pilihan yang ideal.

Integrasi dengan produk Cloud

Google Managed Service for Apache Kafka dan Pub/Sub terintegrasi dengan berbagai layanan Google Cloud seperti Dataflow, BigQuery, Cloud Storage, dan lainnya.

Jika Anda memerlukan strategi multi-cloud dan memprioritaskan portabilitas di berbagai penyedia cloud, Managed Service for Apache Kafka menawarkan fleksibilitas yang lebih besar. Hal ini karena Kafka terintegrasi dengan berbagai sistem yang lebih luas di luar Google Cloud dibandingkan dengan Pub/Sub.

Perbandingan fitur

Jika kriteria keputusan tingkat tinggi di bagian sebelumnya tidak membantu, Anda dapat membuat pilihan berdasarkan dukungan fitur tertentu. Untuk perbandingan mendetail antara kedua produk tersebut, lihat tabel berikut.

Fitur Pub/Sub Layanan Terkelola untuk Apache Kafka
Kemudahan penggunaan Lebih mudah disiapkan dan dikelola Memerlukan lebih banyak upaya operasional
Model biaya Bayar sesuai penggunaan Bayar sesuai kapasitas untuk komputasi

Bayar sesuai penggunaan untuk jaringan dan penyimpanan.

Pemrosesan tepat satu kali Mendukung pengiriman serentak tunggal dan semantik konfirmasi yang kuat. Mendukung efek samping exactly-once saat membaca dari satu topik dan menulis ke topik lain.
Penskalaan Penskalaan otomatis yang lancar dari KB hingga GB per detik per topik yang bahkan berfungsi untuk beban kerja yang tidak dapat diprediksi. Memerlukan konfigurasi manual
Pesan antar

Menawarkan pengurutan dalam kunci.

Throughput 1 Mbps per kunci pengurutan terperinci

Menawarkan pengurutan dalam partisi.

Pengurutan per partisi hingga kapasitas throughput partisi.
Retensi data 31 hari Retensi tanpa batas
Latensi end-to-end Latensi menyeluruh biasanya dalam urutan 100 milidetik Biasanya sekitar 10 milidetik untuk pelanggan yang berperilaku baik.
Kompatibilitas Kafka open source untuk lift and shift Tidak Ya
Keamanan dan Identity and Access Management Ya Ya
Konfigurasi jaringan otomatis Ya Ya
Multi-cloud: identik di seluruh cloud Tidak Ya
SLA Waktu Aktif Ya Ya
SLA bidang data Ya Tidak untuk saat ini
Logging dan pemantauan Ya Ya
Penyeimbangan ulang partisi di seluruh broker Tidak berlaku Ya
Kapasitas otomatis Pub/Sub menyesuaikan kapasitas secara dinamis berdasarkan kecepatan pesan masuk dan permintaan pelanggan. Layanan ini mengelola infrastruktur dasar seperti VM dan penyimpanan. Anda mengontrol aspek seperti jumlah partisi, dan faktor replikasi.
Pengelolaan penyimpanan otomatis Ya Ya
Upgrade software otomatis Ya Ya
Dukungan pelanggan Ya Ya
Layanan Kafka Connect Tidak berlaku Dengan layanan Connect yang disediakan pengguna
Dukungan skema Ya Dengan registry skema yang disediakan pengguna
Kompatibel dengan ks qIDB, KSQL Tidak Ya
Dukungan untuk konektor OSS Ya untuk konektor Kafka dan Flink Tidak
Integrasi dengan Data Lake dan Data Warehouse Ya Ya