RFTM : Ini bukan tutorial membangun web infrastructure tapi bagaimana menyikapi infrastruktur web
Tulisan ini didasarkan atas postingan twitter beberapa orang yang saya follow dimana salah satunya twitnya adalah “Yak overloaded lagi. I should stop tweeting my website address. “. Sebenarnya masalah yang di hadapi oleh orang tersebut adalah masalah yang sama yang sering dihadapi oleh portal – portal besar di Indonesia sebut saja kaskus.us, detik.com atau kompas.com, bedanya portal – portal besar tersebut diback up dengan dana yang besar dan orang – orang yang profesional di bidang web infrastructure, sehingga begitu timbul masalah maka timbul juga solusi, nah intinya saya mau share bagaimana membangun infrastruktur web sesuai dengan kebutuhan (baca: Jangan sampai bunuh nyamuk pake meriam atau heli apache buatan amrik).Saya pernah punya beberapa pengalaman bekerjasama dengan vendor – vendor hardware besar yang menurut saya jadi rada – rada maksain semua fitur hardwarenya harus dipakai dan sedikit menakut – nakuti, seakan – akan kita harus mempersiapkan infrastruktur sedemikian canggihnya dan kondisi yang terjadi bakal sedemikian mencekamnya, walaupun saya akui fiturnya sangat keren dan canggih namun budgetnya amit – amit deh (Baca: Kata bung Rhoma sungguh terlalu). Jadi pesan moralnya adalah bagaimana menyikapi kebutuhan yang kita belum tau sebenarnya kebutuhan kita seberapa besar, disinilah fungsinya konsultan berperan dengan segala pengalamannya (Baca: bukan promosi loh, sudah cukup basa basinya get to the point).
Intinya sebuah infrastruktur web minimal terdiri dari :
Web Server
Database Server
Mail Server
Dan Services lain2
dan alur datanya adalah sebagai berikut :
User request -> Web server request-> database -> browser menampilan content (termasuk content porno yang suka muncul tiba dan panik begitu ketahuan bos, yang ini becanda ya)
Jadi sebenarnya menurut pandangan saya environment ada 3 yaitu :
Lokal Browser
Webserver
Database
Permasalahannya begitu banyak user yang membuka website anda dan begitu besarnya pageviews yang terjadi maka kamu harus mempersiapkan diri dari beberapa kemungkinan yang terjadi oleh karena itu saya akan bahas satu persatu :
Lokal Browser
Ini berhubungan dengan aplikasi website yang kamu bikin, seoptimize apa aplikasi website yang kamu bikin lalu bagaimana mengukurnya, caranya coba di firefox kamu install extension google page speed dan yahoo slow lalu jalanin keduanya.
Berikut contoh hasil benchmark :

Nah kalau masih banyak raport merahnya percuma saja kamu membangun infrastruktur mewah – mewah dan mahal karena aplikasi kamu tidak optimize, pelajari satu – satu setiap permasalahannya (Baca : saya gak mau ngajarin, belajar sendiri biar pinter), nah lalu hubungannya dengan lokal browser kita apa ?, jadi gini setiap element (CSS, JS, Image, swf dll) yang terrender di browser lokal kita akan di simpan dan di cache oleh browser tersebut dan element yang sama tidak akan direquest ulang berdasarkan expired headernya jadi kebayang dong kalau ada 1 juta pageviews dan semuanya request terus menerus dan gak diset expired headernya secanggih apapun infrastuktur kamu pasti megap – megap seperti ikan mau jalan – jalan didarat.
Web Server
Ada banyak berbagai macam web server yang sering digunakan di tanah air seperti apache atau nginx, tapi pada intinya adalah web server menerima request dari user dan meneruskannya ke database agar dapat di render di browser. Saya menyarankan sebaiknya sebelum request ke web server ada baiknya anda menghadangnya dengan reverse proxy (Baca : Mahluk apa lagi nih) atau yang dikenal juga sebagai Web Server Acceleration.
Metode ini untuk mengurangi beban pada server web yang sibuk dengan menggunakan web cache antara server dan internet. Manfaat lain yang dapat diperoleh adalah peningkatan sekuriti. Cara ini adalah salah satu cara untuk meningkatkan skalabilitas tanpa meningkatkan kompleksitas pemeliharaan terlalu banyak. Jadi intinya reverse proxy memisahkan konten yang statis dan dinamis. Konten yang bersifat statis di-cache pada proxy reverse sedangkan konten dinamis ditangani oleh web server.
Saya pernah diskusi dengan seorang rekan senasib sepenanggungan masalah reverse proxy ini rekor yang pernah dia sandang adalah dia pernah menghadang 5 juta pageviews dengan hanya bermodalkan 2 buah server, yang menurut istilah saya adalah efesiensi sampai mati, keren
Database
Hmm rule number one bagi saya jangan pernah membebankan request direct to database, 1000% saya jamin kinerjanya bakal kembang kempis mau sebesar apapun skalabilitasnya baik menggunakan cluster database atau tidak so bagaimana dong seharusnya, saran saya gunakan memchaced (Baca: Apaan lagi nih, kata seorang newbie kesaya).
Memchaced atau distributed memory caching system adalah metode menyimpan hasil query dari database kedalam memchace server atau kedalam memory jadi memchace dapat dianalogikan sebagai tempat sementara menaruh value yang sering di request oleh pengunjung website anda. Misalkan ada seseorang yang request value A dari database anda, maka value A tersebut akan ditaruh di memcache server, jika adaorang lain yang me request value tersebut, value tersebut tinggal diambil dari memcache, inilah yang disebut memcache dapat mengurangi beban database.
Kesimpulan :
Jangan berpikir dulu bahwa infrastruktur web yang baik itu yang canggih, yang mahal dan mewah menggunakan teknologi terkini, bla bla bla stoppppppppp.
Menurut saya Infrastruktur yang baik adalah infrastruktur yang sesuai dengan kebutuhan yang sustainable dan ready to scaling up. Jadi berdasarkan pengalaman pribadi saya, saya pernah membesarkan infrastruktur yang sifatnya growing bermula hanyaa 1 server kini ada 20 server jadi investasi seiring dengan perkembangan user dan pageviews, tidak diawal dengan merampok seisi tabungan di bank, ternyata banyak jalan menuju roma dan biasanya kreativitas timbul kalau kita dalam konsisi kepepet (Baca : Kok jadi curhat gini).
Selain itu yang patut digaris bawahi adalah optimalisasi nah kamu mau melakukan optimalisasi dimana ? di web server atau di database, nah kalau di applikasi wajib hukumnya, dan cuma tuhan dan kamu sendiri yang tahu mau dioptimalisasi dimana (Pesan moralnya belajar dari sekarang)
Ok sekiranya inilah part 1 dari tulisan sok tahu dari saya mengenai how to scalling Up your web infrastructure ![]()



wah2 jadi termotivasi nih baca artikel si akang
)
ngerti artikel ini jadi bisa dipake alasan dan ngga ragu lagi buat “diawal merampok seisi tabungan di bank si bos”
mantap gan, kupas terus teknik server scalability nya.. kalo bisa sekali2 bikin yang lebih teknis lagi