Dokumen ini memandu Anda dalam memilih antara Pub/Sub dan Google Cloud Managed Service untuk Apache Kafka. Pub/Sub dan Managed Service untuk Apache Kafka dapat diskalakan secara horizontal, merupakan layanan pesan terkelola yang mampu menangani workload bervolume tinggi.
Dokumen ini ditujukan bagi developer, arsitek, atau pengambil keputusan yang mencari layanan terkelola untuk menangani workload streaming data dan 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 mengetahui 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 untuk Apache Kafka adalah pertukaran antara kesederhanaan operasional dan portabilitas.
Kesederhanaan operasional Pub/Sub
Pub/Sub adalah layanan yang terkelola sepenuhnya, serverless, dan didistribusikan secara global yang menggunakan infrastruktur Google. Google Cloud Layanan ini otomatis menskalakan untuk menangani workload Anda, sehingga Anda tidak perlu khawatir mengelola infrastruktur. Pub/Sub menyesuaikan kapasitas secara dinamis 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, penerbit dan pelanggan dapat terhubung ke wilayah terdekat, 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 Anda. Terlalu banyak partisi dapat membuang-buang resource. Partisi yang terlalu sedikit 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 Anda.
Karena deployment Kafka terikat ke region tertentu, jika Anda memindahkan data di seluruh region, pemindahan data tersebut harus terjadi di luar layanan. Memastikan kelancaran pergerakan data dan memenuhi kebutuhan topik di cluster Kafka Anda akan menambah beban kerja operasional Anda.
Portabilitas Managed Service for Apache Kafka
Meskipun penskalaan otomatis dan distribusi data global Pub/Sub mempermudah pengoperasiannya, API Apache Kafka lebih banyak digunakan.
Jika Anda berencana menggunakan sistem pesan independen di lingkungan lokal atau penyedia cloud yang berbeda, Managed Service for Apache Kafka dapat memberi Anda pengalaman yang lebih konsisten di seluruh aplikasi Anda. Hal ini karena Anda dapat menstandardisasi Kafka dan menggunakan API yang sama untuk berkomunikasi dengan layanan Kafka di setiap lingkungan.
Meskipun Anda dapat menggunakan Pub/Sub sebagai sistem pesan pusat di semua lingkungan, penting untuk diingat bahwa Pub/Sub adalah layanan terpisah dengan API-nya sendiri. Jika Anda perlu berinteraksi dengan sistem pesan untuk lingkungan tertentu, penggunaan Managed Service for Apache Kafka dapat 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 konfigurasi minimal untuk penskalaan beban kerja atau pergerakan data antar-region, Pub/Sub menawarkan keunggulan yang menarik.
Pilih Pub/Sub jika faktor berikut sesuai dengan persyaratan Anda:
Anda memprioritaskan kesederhanaan operasional dalam Google Cloud.
Anda memerlukan solusi serverless dan skalabel dengan pengelolaan overhead minimal.
Anda memiliki ukuran workload 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 buruk. Pub/Sub, dengan antrean pesan yang tidak terkirim (DLQ) bawaan dan dukungan untuk pemrosesan pesan yang tidak berurutan, memungkinkan sistem Anda tetap beroperasi meskipun menemukan pesan yang bermasalah.
Anda memerlukan agregasi data antar-region.
Anda memerlukan penskalaan penerbit dan pelanggan yang independen.
Pilih Managed Service untuk Apache Kafka jika faktor berikut menggambarkan persyaratan Anda:
Portabilitas di beberapa penyedia cloud atau lingkungan lokal sangat penting.
Anda memiliki beban kerja Kafka yang ada dan ingin dimigrasikan ke Google Cloud. Untuk mengetahui 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.
Pilih 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 penskalaan otomatis, Pub/Sub adalah rekomendasi yang baik. Untuk bermigrasi dari Kafka ke Pub/Sub, lihat Bermigrasi dari Kafka ke Pub/Sub.
Untuk beban kerja baru atau pengguna baru yang melakukan streaming di Google Cloud, Pub/Sub direkomendasikan karena kemudahan penggunaannya. Jika Anda ingin memindahkan workload Kafka yang sudah 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 seperti Dataflow, BigQuery, Cloud Storage, dan lainnya. Google Cloud
Jika Anda memerlukan strategi multicloud 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 di luar Google Cloud dibandingkan dengan Pub/Sub.
Perbandingan fitur
Jika kriteria keputusan tingkat tinggi di bagian sebelumnya tidak membantu, Anda dapat memilih berdasarkan dukungan fitur tertentu. Untuk perbandingan mendetail antara kedua produk, lihat tabel berikut.
| Fitur | Pub/Sub | Managed Service untuk Apache Kafka |
|---|---|---|
| Kemudahan penggunaan | Lebih mudah disiapkan dan dikelola | Memerlukan upaya operasional yang lebih besar |
| Model biaya | Bayar untuk 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 yang tepat satu kali 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 end-to-end biasanya dalam urutan 100 milidetik | Biasanya sekitar 10 milidetik untuk pelanggan yang berperilaku baik. |
| Kompatibilitas Kafka open source untuk lift and shift | Tidak | Ya |
| Identity and Access Management dan keamanan | 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 tingkat pesan yang masuk dan permintaan pelanggan. | Layanan ini mengelola infrastruktur yang mendasarinya 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 |