Episode ini membuka cerita HAProxy: lahir dari proyek sampingan Willy Tarreau, tumbuh menjadi standar load balancer open source. Kalian juga belajar perbandingan dengan NGINX, Envoy, dan F5, serta use case terbaik HAProxy di layer 4 dan layer 7.

Sebelum kalian menulis haproxy.cfg, ada baiknya memahami dari mana HAProxy berasal dan mengapa dia begitu populer. Episode 1 ini menjawab dua pertanyaan: kenapa HAProxy lahir, dan kapan sebaiknya kalian memilihnya dibanding alternatif lain.
Kalian akan melihat perjalanan HAProxy dari tool sederhana menjadi tulang punggung situs-situs raksasa, lalu membandingkannya dengan NGINX, Envoy, dan F5 secara jujur. Di akhir episode, kalian punya kerangka berpikir untuk memutuskan tool mana yang cocok untuk setiap skenario.
HAProxy ditulis oleh Willy Tarreau dan mulai dikembangkan sekitar tahun 2000, dengan rilis stabil pertama pada 2001. Awalnya ini adalah tool pribadi untuk memecahkan masalah load balancing di depan server web proyek-proyek open source yang dia kelola. Karena terbukti stabil dan cepat, project ini lalu dibuka sebagai perangkat lunak bebas dan terus berkembang hingga sekarang.
Nama HAProxy sendiri adalah singkatan dari HA (High Availability) dan Proxy. Fokusnya sejak awal: menahan trafik tinggi dengan sumber daya kecil, tanpa blokir, dan dengan prediksi kegagalan server yang baik.
Dari sisi arsitektur, HAProxy adalah aplikasi event-driven yang berjalan di ruang user-space: satu proses menangani puluhan ribu koneksi secara bersamaan tanpa menyalin data yang tidak perlu. Fitur ini yang membuatnya mampu melayani trafik besar di situs-situs populer seperti GitHub, Twitter, Reddit, dan berbagai penyedia cloud.
apt show haproxy 2>/dev/null | head -n 8Output dari apt show haproxy menampilkan deskripsi paket, versi, dan dependensinya. HAProxy juga aktif dikembangkan oleh komunitas dan diperbarui secara berkala, sering kali memakai siklus rilis dua tahun dengan dukungan panjang.
Berbeda dari model thread-per-koneksi, HAProxy memakai event loop yang sama sekali tidak memblokir. Koneksi ditangani secara asinkron, sehingga penggunaan CPU dan memori tetap rendah meski jumlah koneksi besar. Detail arsitekturnya akan dibedah di episode 2; di episode ini yang penting kalian tahu: kecepatan dan efisiensi adalah DNA HAProxy.
NGINX adalah web server dan reverse proxy serbaguna. Perbedaan utamanya:
Untuk pure traffic routing, HAProxy sering lebih ringan; untuk serving konten dan caching, NGINX lebih serbaguna. Banyak arsitektur memakai keduanya sekaligus.
Envoy adalah proxy data plane yang lahir dari ekosistem service mesh, kaya fitur observability dan xDS API untuk konfigurasi dinamis. Perbandingannya:
Pilihan Envoy masuk akal jika kalian sudah membangun service mesh seperti Istio; HAProxy unggul jika kalian butuh solusi mandiri yang mudah dioperasikan.
F5 (misalnya BIG-IP) adalah appliance komersial dengan GUI, WAF, dan dukungan vendor tingkat enterprise. Perbandingannya:
Keduanya bisa hidup berdampingan: HAProxy sebagai data plane, F5 sebagai edge appliance dengan keamanan tambahan.
Catatan penting: perbandingan di atas bukan vonis permanen. NGINX terus menambah fitur load balancing, dan HAProxy pun semakin kaya fitur HTTP di setiap rilis. Yang jauh lebih berguna daripada memilih salah satu adalah memahami kategori yang kalian hadapi: web server, proxy data plane, atau appliance enterprise.
Di mode TCP, HAProxy memproxying koneksi raw apa pun: database, Redis, memcached, dan protokol legacy. Tidak ada interpretasi isi paket, hanya penerusan yang sangat cepat.
Di mode HTTP, HAProxy bisa melakukan routing berbasis path, host, dan header, melakukan rewrite, memakai ACL, serta membatasi request. Ini menjadikannya API gateway ringan untuk microservices, yang akan kita bahas di episode 11.
HAProxy bisa memutus koneksi TLS di edge, lalu meneruskan trafik internal dalam plain HTTP. Backend tidak perlu repot mengelola sertifikat. Detailnya ada di episode 8.
Dengan inspeksi SNI, HAProxy bisa mengarahkan koneksi TLS passthrough ke backend berbeda hanya berdasarkan nama domain, tanpa membuka isi trafik. Detailnya ada di episode 12.
Ada pola umum yang bisa kalian jadikan pegangan:
Tidak ada jawaban tunggal yang benar; yang penting adalah mencocokkan kebutuhan dengan kekuatan masing-masing tool.
Pendekatan pragmatis yang sering dipakai tim produksi: mulai dari yang paling sederhana, HAProxy untuk kebutuhan routing murni, lalu tambahkan NGINX atau service mesh hanya jika muncul kebutuhan spesifik yang memang tidak bisa dipenuhi. Menambahkan lapisan teknologi tanpa alasan jelas justru menambah beban operasional.
Episode 1 menempatkan HAProxy dalam peta besar ekosistem proxy: sejarah panjang yang membuktikan stabilitas, desain event-driven yang hemat sumber daya, serta posisinya yang jelas dibanding NGINX, Envoy, dan F5.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya kita akan membedah konsep dasar dan arsitektur utama HAProxy — struktur konfigurasi global, defaults, frontend, backend, dan listen, alur request di dalam proses, serta mode operasional TCP versus HTTP. Ini fondasi yang akan dipakai di semua episode berikutnya.