Haproxy, The Load Balancer (in jowo Language: Mas Paijo tukang mikul karung …. :D)

Hummm,….., setelah sekitar satu minggu disibukkan dengan urusan penyelesaian studi akhir (sebenernya masih belum selese si :D). Malam tadi akhirnya dengan mendaki gunung menyebrangi sungai, lewati lembah jreng…jreng….jreng… (lebay MODE ON ).

Seorang riri Harus kembali ke ritme kehidupan :-P, memasang server uji aplikasi SIA dengan dengan menu utama load balancer memakai Haproxy.
Dengan sedikit ngalor-ngidul dan seperti biasa merepotkan banyak orang :D. akhirnya dapet juga komputer buat dijadiin server uji. Yang lebih beruntung lagi ada satu komputer yang udah diinstall ubuntu 9.04, asik2 ndak usah nginstall dung he…..7x.

Sekitar jam 7 malem mulailah petualangan ke barat mengambil Haproxy dari server repository. Seperti biasa karena pakenya ubuntu segalanya jadi lebih mudah 😀 , :
Bener penuturan Pak Hari Siswantoro, gak sampe 5 menit untuk masang Haproxy
1. Pertama jalankan perintah “aptitude search haproxy”, karena ndak ada paket “haproxy”, update dulu dong Om
2. Jalankan perintah “apt-get update”, setelah update, ulangi langkah pertama, dan paket “haproxy” ternyata udah ada
3. Jalankan perintah “apt-get install haproxy”, tunggu beberapa detik jadi deh 😀

Kayanya cuman itu cara nginstalnya gampang banget, nah yang jadi masalah adalah
“Piye iki nganggone…..??????” (dorong dong dong dong………)

Seperti biasa, target utama adalah tanya sama “Mbah Google”
……………………..

……………………..……………………..……….
……………………..……………………..……………………..……….
……………………..……………………..……………………..……….
(ting tong)…. lah ketemu iki catetane Om Grig Gheorghiu, slirane wong LA, alamete blognya iki :
http://agiletesting.blogspot.com/2009/02/load-balancing-in-amazon-ec2-with.html

Rada gak mudeng si dengan apa yang ditulis. la wong nganggo boso londo je 😛
Tapi dengan sedikit meraba-raba bagian-bagian tertentu :D, akhirnya bisa sedikit mudeng, intinya adalah
1. set koneksi maksimal
2. definisikan listening IP nya
3. tentukan algoritma balancing nya
4. Definisikan server-server yang akan di load balancing

Setting udah selese, sekarang tinggal jalankan “haproxy”
dugaan awal yo biasa nganngo perintah “/etc/init.d/haproxy start”, tapi kok gak jalan
ndak tau opo sing salah, daripada bingung akhirnya jalanin manual
dengan perintah “haproxy -F /etc/haproxy/haproxy.cfg -D”
hohohoooo…… bisa jalan juga akhirnya 😀

Tapi kok rada aneh yo, hampir setiap refresh dilempar ke server yang berbeda-beda
hum………, ternyata yang jadi masalah adalah algoritma yang dipake “roundrobin”
Kalo menurut Om Grig kae mau lah,
round-robin: requests are rotated among the servers in the backend — note that servers declared in the backend section also accept a weight parameter which specifies their relative weight in that backend; the round-robin algorithm will respect that weight ratio
<nek ditranslate karo boso jowo>
round-robin : Mas paijo mubeng-mubeng nggoleti siti ning pasar, mbuh piye carane takon bakul-bakule karo tukang parkire sing penting ketemu.
<lha opo meneh iki, mbuh ra weruh>

akhirnya algoritma balancing aku ganti ke “source”
menurut Om Grig maning,
source : a hash of the source IP is divided by the total weight of the running servers to determine which server will receive the request; this ensures that clients from the same IP address always hit the same server, which is a poor man’s session persistence solution.
<translate boso jowone>
source : Si Siti nimbang abote neng bakul beras, karo mlayu-mlayu malah ketemu karo tukang njaluk-njaluk, tapi ora aweh mergo duite wis dicopet.

<tambah ora mudeng aku :D>

Dengan mengganti algoritma akhirnya client, akan selalu mendapat koneksi ke IP server sumber yang sama, dengan session yang konsisten, lah nek iki berarti session gak ilang, mungkin aman

Tapi dengan sedikit testing lho kok pembagian requestnya gak sama, server1 lebih banyak nerima request daripada server2,
Akhirnya algoritma diganti lagi dengan “leastconn”
merujuk lagi ke tulisan Om Grig
leastconn : the request is sent to the server with the lowest number of connections; round-robin is used if servers are similarly loaded
<boso jowone >
leastconn : Siti tuku kangkung seiket regane satus seket.

Request baru, akan dilempar ke server dengan jumlah koneksi paling sedikit,
lah iki sepertinya paling cocok. Setelah dijalankan juga mendapat hasil yang valid, sementaun pake yang ini dulu 🙂

Agenda selanjutnya adalah pengujian, semoga lancar gak ada halangan :).
Matur nuwun buat
Om Waluyo yang udah krimping kabel2nya(Sorry ya om, jadi menunda kepulanganmu)
mas Wiratmoko yang udah bantu nyetting server1, server2, dan server database
Pak Dayat(yang ngrewangi gotong2)

Oke lah kalo begitu, kita sudahi dulu, kita sambung lain waktu…….^_^