Pengaturan

Gambar

Lainnya

Tentang KASKUS

Pusat Bantuan

Hubungi Kami

KASKUS Plus

© 2024 KASKUS, PT Darta Media Indonesia. All rights reserved

projects.co.idAvatar border
TS
projects.co.id
[SHARE] Startup Lesson: Projects.co.id is (was) down!
The Quest for Scalability
By: Priyatna, CEO of Projects.co.id
Sumber: http://www.projects.co.id/public/blo...or-scalability

Banyak orang yang bisa membuat website, tapi membuat website yang mampu melayani ribuan pengunjung secara bersamaan, itu lain cerita. Begitu kata orang. Mungkin Anda pernah mendengar tentang Slashdot Effect atau kalau di Indonesia, Detik Effect, di mana sebuah website bisa berhenti beroperasi karena kelebihan beban. Oleh karenanya, dari sejak belum launching kami merancang infrastruktur Projects.co.id agar dapat menahan beban seperti itu.

Konfigurasi awal kami adalah 1 load balancer, 6 web server, 6 database server dan sebuah session database sendiri. Web server semuanya dilengkapi Varnish cache dan Redis. Apalagi dengan spesifikasi server 24 core 24 GB RAM, tampaknya seperti rencana yang sempurna. Nothing can go wrong, begitu kami pikir.

Ternyata dugaan kami salah. Salah besar. Cluster database yang kami bangun hanya bertahan satu minggu. Tiga dari enam node mengalami synchronization failure, sehingga akhirnya mengganggu kinerja cluster database secara keseluruhan. Lalu apa sebenarnya yang salah dengan konfigurasi 6 node database cluster?

Mungkin Anda pernah berbelanja di toko swalayan semacam Yogya atau Borma (halah ... iklan, biarin aja), di mana di satu lorong terdapat lebih dari 10 orang SPG. Sudah lorongnya sempit, ditambah mereka ogah bergerak ke mana-mana, hanya mengobrol saja sesama mereka di depan rak-rak barang. Akibatnya kita sebagai pengunjung jadi segan untuk melewati lorong itu. Kalaupun terpaksa kita harus mengambil suatu barang di situ, kadang suara permisi kita kalah terdengar oleh rumpian sesama mereka.

Inilah perumpamaan yang terjadi dengan database cluster kami. Enam node telalu banyak untuk menangani beberapa ratus pengunjung. Bahkan mungkin tidak diperlukan juga untuk menangani sampai puluhan ribu pengunjung. Mereka terlalu sibuk sendiri berkomunikasi antar node untuk men-sincron-kan data, sementara request dari user akhirnya harus mengalami antrian. Setiap perubahan di database seperti menjadi 6 kali dieksekusi. Keadaan diperparah dengan adanya satu node out-of-sync, kemudian menular ke dua server berikutnya.

Akibat dari peristiwa ini, Projects.co.id harus mengalami maintenance selama beberapa jam, dan kunjungan menurun drastis sampai beberapa hari berikutnya. Suatu pelajaran yang harus dibayar mahal.

Saat ini kami menggunakan cluster database dengan konfigurasi 3 node. Kelihatannya ini adalah konfigurasi yang optimal untuk kami saat ini. Performance dari website secara keseluruhan juga sudah terdongkrak kembali, apalagi setelah kami juga menggunakan jasa Content Delivery Network (CDN).

Moral of the story adalah jangan membunuh lalat memakai granat. Skalabilitas harus diterapkan secara bertahap, tidak bisa langsung lompat ke level yang tinggi berdasarkan asumsi dan kekhawatiran. Semoga ini bermanfaat buat para pelaku startup di Indonesia.
0
3.7K
72
GuestAvatar border
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
Programmer ForumKASKUS Official
20.2KThread4.3KAnggota
Urutkan
Terlama
GuestAvatar border
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Ikuti KASKUS di
© 2023 KASKUS, PT Darta Media Indonesia. All rights reserved.