Skip to content

Mengenal AutoMQ, Alternatif Diskless dari Kafka

  • DevOps
AutoMQ logo

AutoMQ adalah alternatif Apache Kafka yang dirancang ulang secara mendasar untuk beroperasi secara efisien di penyimpanan objek seperti Amazon S3 atau penyimpanan yang kompatibel dengan S3 lainnya, seperti MinIO.

Solusi ini mengatasi beberapa tantangan utama yang dihadapi oleh Apache Kafka tradisional, terutama dalam hal skalabilitas dan biaya operasional di lingkungan cloud. Dengan arsitektur yang tanpa disk (diskless) dan berbasis penyimpanan objek, AutoMQ mengklaim dapat memberikan penghematan biaya hingga 10 kali lipat dan kemampuan skalabilitas dalam hitungan detik.

Mengapa AutoMQ Dibutuhkan?

Apache Kafka, meskipun merupakan platform streaming data yang kuat, memiliki beberapa keterbatasan signifikan, terutama dalam implementasi cloud:

  1. Skalabilitas yang Sulit: Broker Kafka bersifat stateful, yang berarti data disimpan secara lokal pada disk setiap broker. Proses scale out (menambah broker) atau scale in (mengurangi broker) memerlukan pemindahan data antar broker (partition reassignment), yang merupakan proses kompleks, memakan waktu, dan seringkali mengganggu. Ini menyulitkan Kafka untuk beradaptasi cepat dengan perubahan beban kerja.
  2. Biaya Tinggi di Cloud: Mengoperasikan Kafka di cloud dapat sangat mahal. Biaya tinggi seringkali berasal dari penyimpanan EBS (Elastic Block Store) yang mahal, biaya lalu lintas cross-AZ (antar Availability Zone), dan over-provisioning sumber daya yang signifikan karena keterbatasan skalabilitas Kafka. Lalu lintas cross-AZ sendiri, termasuk dari producer, consumer, dan replikasi, bisa menyumbang lebih dari 80% dari total biaya.

AutoMQ dirancang untuk menyelesaikan masalah-masalah ini dengan memanfaatkan karakteristik penyimpanan objek cloud yang fleksibel dan hemat biaya.

Keunggulan Utama AutoMQ

AutoMQ menawarkan serangkaian keunggulan yang menjadikannya pilihan menarik untuk menggantikan atau melengkapi infrastruktur Kafka yang ada, baik di cloud maupun on-premise selama tersedia penyimpanan yang kompatibel dengan S3.

Hemat Biaya:
AutoMQ adalah sistem penyimpanan streaming cloud-native sejati yang pertama, dirancang untuk efisiensi biaya yang optimal di cloud. Dengan memanfaatkan penyimpanan objek yang jauh lebih murah daripada penyimpanan blok tradisional seperti EBS, AutoMQ dapat mengurangi tagihan Apache Kafka hingga 90% di cloud. Ini dicapai dengan meminimalkan ketergantungan pada penyimpanan lokal yang mahal dan memanfaatkan skala ekonomi penyimpanan objek.

Keandalan Tinggi:
AutoMQ memanfaatkan layanan penyimpanan objek cloud untuk mencapai keandalan yang luar biasa. Ini mencakup Recovery Point Objective (RPO) nol, yang berarti tidak ada kehilangan data bahkan dalam kasus kegagalan, dan Recovery Time Objective (RTO) dalam hitungan detik. Penyimpanan objek cloud juga dikenal dengan durabilitasnya yang sangat tinggi, seringkali mencapai 99.999999999% (eleven nines).

Tanpa Lalu Lintas Cross-AZ:
Salah satu sumber biaya terbesar di Kafka tradisional adalah lalu lintas cross-AZ. AutoMQ mengatasi ini dengan menggunakan penyimpanan objek cloud sebagai solusi penyimpanan utama. Dengan demikian, semua data disimpan terpusat di S3, dan broker dapat mengambil data dari S3 tanpa perlu replikasi cross-AZ yang mahal, secara efektif menghilangkan biaya lalu lintas cross-AZ di AWS dan GCP.

Serverless dan Skalabilitas Otomatis:
AutoMQ dirancang untuk menjadi solusi serverless sejati untuk streaming data.

  • Skalabilitas Otomatis: Sistem ini memantau metrik klaster dan secara otomatis melakukan scale in atau scale out untuk menyesuaikan dengan beban kerja Anda, memungkinkan model pembayaran sesuai penggunaan (pay-as-you-go).
  • Skala dalam Detik: Lapisan komputasi (broker) bersifat stateless dan dapat scale in atau scale out dalam hitungan detik. Ini berarti AutoMQ dapat dengan cepat merespons lonjakan atau penurunan beban kerja tanpa penundaan yang signifikan.
  • Skalabilitas Tak Terbatas: Dengan memanfaatkan penyimpanan objek cloud sebagai solusi penyimpanan utama, AutoMQ menghilangkan kekhawatiran tentang kapasitas penyimpanan. Penyimpanan objek cloud secara inheren dapat diskalakan secara virtual tak terbatas.

Manajemen yang Mudah (Manage-less):
Komponen auto-balancer bawaan secara otomatis menjadwalkan partisi dan lalu lintas jaringan antar broker. Ini menghilangkan kebutuhan akan partition reassignment manual yang kompleks dan melelahkan, membuat pengelolaan klaster jauh lebih sederhana daripada Kafka tradisional yang sering memerlukan alat seperti Cruise Control.

Performa Tinggi:
AutoMQ dioptimalkan untuk performa tinggi, bahkan dengan memanfaatkan penyimpanan objek.

  • Throughput Tinggi: AutoMQ memanfaatkan teknik seperti pre-fetching, batch processing, dan teknologi paralel untuk memaksimalkan kemampuan penyimpanan objek cloud, menghasilkan throughput yang tinggi.
  • Latensi Rendah: AutoMQ beroperasi langsung di S3 secara default, menghasilkan latensi dalam kisaran ratusan milidetik. Untuk aplikasi yang sangat sensitif terhadap latensi, versi enterprise menawarkan latensi single-digit millisecond.

Ekspor Metrik Bawaan:
AutoMQ secara native mendukung ekspor metrik Prometheus dan OpenTelemetry, mendukung mode push dan pull. Ini memungkinkan pemantauan klaster dengan alat modern yang efisien, menggantikan JMX yang kurang efisien yang biasa digunakan di Kafka.

100% Kompatibel dengan Kafka:
Meskipun dengan arsitektur penyimpanan yang berbeda, AutoMQ sepenuhnya kompatibel dengan API Apache Kafka. Ini berarti aplikasi yang sudah ada yang dirancang untuk Kafka dapat beralih ke AutoMQ tanpa perubahan kode yang signifikan, menawarkan semua fitur Kafka dengan efisiensi biaya dan operasional yang lebih baik.

Arsitektur AutoMQ

AutoMQ adalah fork dari Apache Kafka open-source, tetapi dengan perubahan fundamental pada lapisan penyimpanan. Ini mengubah arsitektur shared-nothing klasik Kafka menjadi arsitektur shared storage yang memanfaatkan penyimpanan objek.

Perbedaan Utama Arsitektur:
Perbedaan inti AutoMQ terletak pada bagaimana ia memanfaatkan penyimpanan objek untuk mencapai arsitektur broker stateless. Sementara Kafka tradisional menyimpan data pada disk lokal setiap broker, AutoMQ mengalihkan fungsi ini ke S3.

Komponen-komponen kunci AutoMQ meliputi:

  1. S3 Storage Adapter: Ini adalah lapisan adapter yang mengimplementasikan ulang kelas-kelas seperti UnifiedLog, LocalLog, dan LogSegment untuk membuat log langsung di S3, bukan pada disk lokal. Meskipun demikian, penyimpanan disk lokal tradisional masih didukung jika diinginkan untuk kasus penggunaan tertentu.
  2. S3Stream: Ini adalah pustaka penyimpanan streaming bersama yang mengemas berbagai modul penyimpanan, termasuk WAL (Write-Ahead Log) dan penyimpanan objek. WAL dioptimalkan untuk write yang sering dan IOPS rendah untuk mengurangi biaya API S3. Untuk meningkatkan kinerja read, S3Stream menggunakan LogCache dan BlockCache.
  3. Auto Balancer: Ini adalah komponen internal yang secara otomatis menyeimbangkan lalu lintas dan partisi antar broker. Berbeda dengan Kafka yang sering membutuhkan alat eksternal seperti Cruise Control untuk tugas ini, Auto Balancer AutoMQ mengotomatisasi manajemen klaster.
  4. Rack-aware Router: Kafka telah lama menghadapi masalah biaya lalu lintas cross-AZ di AWS dan GCP. Arsitektur shared storage AutoMQ mengatasi ini dengan menggunakan rack-aware router yang menyediakan metadata partisi spesifik kepada klien di Availability Zone yang berbeda. Ini memungkinkan pertukaran data melalui penyimpanan objek tanpa biaya cross-AZ yang tinggi.

Untuk detail lebih lanjut mengenai arsitektur, Anda dapat merujuk pada dokumentasi AutoMQ atau menjelajahi kode sumbernya di GitHub.

Fitur Terbaru: Table Topic

Table Topic adalah fitur inovatif di AutoMQ yang menggabungkan fungsionalitas stream dan table untuk menyatukan streaming dan analisis data. Fitur ini saat ini mendukung Apache Iceberg dan terintegrasi dengan layanan catalog seperti AWS Glue, HMS (Hive Metastore), dan Rest catalog. Selain itu, Table Topic secara native mendukung S3 tables, produk AWS baru yang diumumkan pada re:Invent 2024. Fitur ini memungkinkan pengguna untuk memperlakukan stream data sebagai tabel yang dapat dianalisis, membuka kemungkinan baru untuk real-time analytics dan data warehousing.

Pelanggan yang Menggunakan AutoMQ

Banyak perusahaan besar di seluruh dunia telah mengadopsi AutoMQ untuk mengatasi tantangan streaming data mereka. Beberapa contoh termasuk:

  • Grab: Meningkatkan efisiensi dalam platform data streaming.
  • JD.com: Mencapai perjalanan cost-effective dengan AutoMQ dan CubeFS.
  • Palmpay: Mengganti Kafka, mengoptimalkan biaya lebih dari 50%.
  • Geely Auto (Fortune Global 500): Menyelesaikan masalah elastisitas Kafka dalam skenario V2X.
  • Zhihu (Quora Asia): Mengurangi biaya Kafka dan kompleksitas pemeliharaan.
  • XPENG Motors: Mengurangi biaya lebih dari 50% dengan mengganti Kafka.
  • Poizon (GOAT Asia): Menggunakan AutoMQ Kafka untuk membangun platform observabilitas untuk data besar (30 GB/detik).
  • CaoCao Mobility: Mengatasi skalabilitas Kafka selama periode liburan.

Cara Cepat Menggunakan dengan AutoMQ

Untuk evaluasi dan pengembangan cepat, AutoMQ menyediakan konfigurasi single-node sederhana menggunakan Docker dan MinIO sebagai penyimpanan S3-kompatibel.

Langkah-langkah Evaluasi Cepat (Single-Node):

  1. Unduh file docker-compose.yaml:
    curl -O https://raw.githubusercontent.com/AutoMQ/automq/refs/tags/1.5.5/docker/docker-compose.yaml
  2. Jalankan setup AutoMQ dan MinIO:
    docker compose -f docker-compose.yaml up -d
    Setup ini mencakup satu node AutoMQ yang berfungsi sebagai controller dan broker, bersama MinIO untuk penyimpanan S3. Semua layanan beroperasi dalam jaringan bridge Docker bernama automq_net.
  3. Uji dengan Kafka producer:
    docker run –network automq_net automqinc/automq:latest /bin/bash -c “/opt/automq/kafka/bin/kafka-producer-perf-test.sh –topic test-topic –num-records=1024000 –throughput 5120 –record-size 1024 –producer-props bootstrap.servers=server1:9092 linger.ms=100 batch.size=524288 buffer.memory=134217728 max.request.size=67108864”
  4. Setelah pengujian, hancurkan setup:
    docker compose -f docker-compose.yaml down

Tersedia juga docker-compose-cluster.yaml untuk setup yang lebih kompleks dengan tiga node AutoMQ, ideal untuk menguji fitur klaster.

Opsi Deployment Lainnya:

  • Multi-Nodes Test Cluster on Docker
  • Linux dengan 5 Nodes
  • Kubernetes
  • AWS Marketplace (uji coba gratis dua minggu)
  • Alibaba Cloud Marketplace (uji coba gratis dua minggu)

Penting untuk dicatat bahwa panduan mulai cepat ini hanya untuk evaluasi fitur AutoMQ dan tidak cocok untuk penggunaan produksi. Untuk praktik terbaik deployment produksi, disarankan untuk menghubungi komunitas AutoMQ.

Sumber: github