Mekanisme Stabilitas dan Toleransi Kesalahan Lanjutan dari Apache APISIX

January 20, 2024

Technology

Ketika memilih API gateway, stabilitas dan toleransi kesalahan adalah faktor penting di samping fungsionalitas, skalabilitas, dan keamanan. Dalam desain Apache APISIX pada tahun 2019, stabilitas dan toleransi kesalahan dianggap sangat penting, mengingat potensi terjadinya insiden produksi yang signifikan saat menangani permintaan lalu lintas internal dan eksternal.

Untuk memberikan pemahaman yang komprehensif bagi para peneliti, mari kita telusuri fitur-fitur utama stabilitas dan toleransi kesalahan dari Apache APISIX.

Pemisahan Control Plane dan Data Plane

Apache APISIX mengadopsi arsitektur terpisah dengan control plane (yaitu, etcd, Admin API) dan data plane yang stateless (yaitu, API gateway dapat diskalakan sesuai permintaan). Tidak ada ketergantungan antara keduanya. Ini berarti bahwa bahkan jika control plane mengalami anomali (seperti gangguan jaringan atau keluar secara tidak normal), data plane dapat terus beroperasi secara normal, menangani permintaan lalu lintas baru. Pemisahan ini memastikan ketersediaan tinggi APISIX.

Arsitektur Teknis APISIX

Mekanisme Sinkronisasi Data

Mekanisme sinkronisasi data yang efisien ada antara data plane dan control plane. Data plane bertindak sebagai etcd Watcher, yang secara aktif diberitahu oleh etcd tentang perubahan data. Data plane kemudian memperbarui konfigurasi dan aturannya sesuai dengan itu. Oleh karena itu, ketika administrator menulis konfigurasi ke etcd melalui Admin API, data plane dengan cepat menerima pemberitahuan perubahan dan menyimpan konfigurasi tersebut dalam memori. Mekanisme ini menghindari kebutuhan untuk mengambil konfigurasi dari etcd untuk setiap permintaan yang masuk, sehingga mengurangi beban sistem. Namun, penting untuk dicatat bahwa selama anomali control plane, restart instance data plane harus dihindari untuk mencegah kehilangan konfigurasi dalam memori.

Anomali Control Plane

Gangguan Komunikasi Jaringan

Dalam kasus gangguan jaringan antara API gateway dan etcd, konfigurasi yang ditulis ke etcd melalui Admin API tidak akan sampai ke gateway. Namun, gateway terus menggunakan konfigurasi yang sebelumnya disimpan dalam memori untuk menangani permintaan lalu lintas baru, mencegah keluar secara tidak normal karena kehilangan koneksi dengan etcd. Setelah koneksi antara gateway dan etcd dipulihkan, gateway menerima konfigurasi terbaru dan melanjutkan operasi normal.

Crash Abnormal etcd

Jika etcd mengalami crash abnormal, administrator tidak akan dapat menulis konfigurasi melalui Admin API. Namun, ini tidak memengaruhi operasi gateway, yang terus bekerja dan menangani permintaan lalu lintas. Dalam skenario ini, perilaku gateway mirip dengan situasi setelah gangguan jaringan.

Deployment Multi-Node dan Load Balancing

Untuk memastikan ketersediaan tinggi, disarankan untuk mendeploy beberapa instance gateway dan menyiapkan load balancer (seperti AWS Load Balancer atau F5) di antara mereka. Load balancer ini memiliki mekanisme health check untuk menilai status kesehatan instance gateway. Jika sebuah instance gateway gagal, load balancer segera menghapusnya dari layanan dan dapat menambahkan node gateway baru. Strategi deployment multi-node dan load balancing ini membantu mencegah gangguan bisnis yang disebabkan oleh kegagalan satu node.

Kesimpulan

Secara ringkas, Apache APISIX menunjukkan stabilitas dan toleransi kesalahan yang luar biasa ketika control plane dan data plane terputus. Arsitektur pemisahan, mekanisme sinkronisasi data yang efisien, dan strategi deployment multi-node memastikan ketersediaan tinggi bahkan dalam keadaan yang tidak biasa. Desain Apache APISIX mempertimbangkan berbagai anomali jaringan dan komponen, membuatnya berkinerja sangat baik dalam menangani permintaan lalu lintas tingkat perusahaan.

Tags: