Website sampai hari ini (tulisan ngalor ngidul khusus untuk peluncuran NGINXMP – Engine X, MYSQL, and PHP – untuk windows)

Seiring penggunaan internet yang semakin masif, aplikasi-aplikasi yang berjalan di atasnya juga ikut berkembang serta berevolusi menyesuaikan dengan perkembangan teknologi terkait, kebutuhan dan prilaku penggunanya. Teknologi terasa berlari dan kita terbirit-birit mengikutinya berusaha beradaptasi dengan perubahan. Begitu banyak teknologi (komputer) yang telah menjadi kenangan misalnya bahasa pemrograman cobol yang dulu berjaya sekarang telah menjadi cobolsaurus. Begitupun dengan internet dimana web merupakan basis aplikasi yang paling banyak berjalan.

Tahun 1990-an, orang membuat website kebanyakan hanya menggunakan HTML biasa untuk memenuhi kebutuhan publikasi yang cenderung statis, karena mempelajari CGI merupakan sebuah usaha yang tidak mudah bagi kebanyakan orang (termasuk saya, hehehe). Kemudian lahirlah bahasa interpreter seperti PHP yang kemudian diikuti oleh ASP yang lebih mudah dicerna oleh orang awam seperti saya. Mulai bermunculanlah situs-situs web yang menjadi dinamis karena isinya sudah dikelola dengan menggunakan database. Dewasa ini, bahasa pemgograman berbasis web sangat banyak: PHP, ASP, JSP, CFM, Perl, Phyton, dan lain-lain.

Kalau dulu pengunjung website hanya menerima informasi dari pemilik website, pada perkembangan berikutnya, web bisa mengakomodasi kolaborasi, interaksi yang lebih masif, dan menjadikan pengguna sebagai penggerak website. Contoh paling nyata adalah facebook, dimana hampir sebagian besar isinya dibuat oleh pengguna dan aplikasi pihak ketiga. Konsekuensinya adalah dibutuhkannya infrasruktur yang memadai untuk melayani lalu lintas informasi yang begitu banyak.

Berbicara infrastruktur tentu banyak sekali aspek yang harus dipertimbangkan: teknologi (hardware, software, bandwidth, clustering, security system, dll), orang, biaya, prosedur dan prosesnya. Namun pada kali ini saya hanya ingin membahas sebagian kecil dari infrastruktur pendukung berjalannya aplikasi berbasis web, yaitu: web server.

Ada banyak sekali web server software di dunia ini, baik yang opensource maupun yang closedsource, baik yang gratis maupun berbayar (opensource bukan berarti free loh, ntar dimarahin sama stallman dari Free Software Foundation, hehehe). Dan yang paling banyak dipakai sampai hari ini adalah Apache karena banyak orang dengan suka rela mem-bundle-nya dalam paket-paket yang mudah digunakan bahkan tinggal pakai. Namun dengan keterbatasan hardware resource, apache tidak cocok digunakan untuk situs dengan lalu lintas padat. Cara kerjanya yang selalu membuat instance baru setiap ada koneksi baru bisa membuat penggunaan memori jadi membengkak. Response time dari Apache yang standar juga tidak cocok untuk situs dengan tingkat interaksi pengguna yang tinggi. Memaksakan diri menggunakan Apache untuk situs seperti tersebut, akan berkonsekuensi pada pembengkakan biaya.

Bagi pemilik situs yang trafficnya tinggi, atau yang ingin penggunaan resource komputer yang minimal dengan response time yang minimal, ada alternatif web server yaitu NGINX alias Engine X (http://www.nginx.net). Ada beberapa web server yang mempunyai performa mirip seperti lighthttp, tornado (dikembangkan oleh facebook), cherokee, dsb. Namun, saya lebih suka NGINX karena kemudahannya (setidaknya bagi saya). Situs-situs besar di Indonesia seperti detik.com dan kaskus.us juga menggunakan NGINX.

NGINX bisa berjalan di *NIX maupun windows. Ada banyak tutorial instalasi NGINX di internet. Namun bagi pemula, mungkin saja masih membingungkan, terutama saat mengintegrasikan dengan PHP dan MYSQL. Untuk keperluan development, saya termasuk orang yang sudah nyaman dengan paket yang sudah all in one seperti XAMPP yang langsung bisa jalan di windows. Tinggal download, extract, jalankan, langsung bisa bekerja membuat aplikasi. Untuk membantu temen-temen yang ingin kepraktisan, saya membuat proyek baru bernama NGINXMP (http://sourceforge.net/projects/nginxmp/).

Sebenarnya tidak banyak yang saya lakukan dalam proyek tersebut. Saya hanya menggabungkan NGINX, MYSQL, dan PHP dalam satu paket yang bisa langsung jalan. Saya yakin banyak orang yang bisa install ketiga distribusi software tersebut, karena memang sudah ada petunjuknya. Tapi, jika ingin kepraktisan dan kemudahan, silahkan dicoba paket yang saya buat. Suitable for development purpose.  🙂