Ronsen's Blog

Pemendek Tautan yang Benar

Friday, December 26, 2014

Pandi Luncurkan Penyingkat URL "S.id"

Pandi (Pengelola Domain Indonesia) meluncurkan layanan penyingkat tautan situs web ( uniform resource locator-URL shortener), S.id (s dot id). Penyingkat URL ini berguna bagi netizen untuk menyingkat alamat web yang panjang jika ingin dipublikasikan di media lain, seperti halaman web atau jejaring sosial.
Pemendek tautan mulai digemari belakangan ini. Kalau tidak salah, sejak Twitter mem-booming dengan layanannya. Diharuskan menulis status tidak melebihi dari 140 karakter membuat pemendek tautan digemari saat berbagi tautan dari sebuah artikel berita atau entri blog.

Membuat pemendek tautan itu mudah tapi harus dilakukan dengan tepat. Caranya bisa beragam, yang penting bisa "mengantar" pengguna ke tautan yang sebenarnya. Bisa dari server-side seperti php atau java, client-side melalui JavaScript atau meta redirect, tapi yang paling benar adalah melalui HTTP response 301.

Itulah makanya pemendek tautan yang  diluncurkan Pandi ini kurang sreg. Tautan aslinya di-redirect melalui JavaScript. Jika aku mematikan fungsi JavaScript di peremban (browser) maka situs web ini menjadi tidak berguna.

Bandingkan pemendek tautan dari Twitter (t.co):

ronsen@stardestroyer:~$ curl -I http://t.co/AEAnnnlwlX
HTTP/1.1 301 Moved Permanently
cache-control: private,max-age=300
date: Fri, 26 Dec 2014 03:07:57 UTC
expires: Fri, 26 Dec 2014 03:12:57 GMT
location: http://youtu.be/SKRgktzRvZ0
server: tsa_a
x-connection-hash: a0967e2be552bd6882496524c2b99c25
x-response-time: 14
content-length: 0
Connection: Keep-Alive
Set-Cookie: muc=c0243fe6-af76-47b6-a472-0bbd6606cc70; Expires=Wed, 07 Dec 2016 03:07:57 GMT; Domain=t.co

dan dari Pandi (s.id):

ronsen@stardestroyer:~$ curl -I http://s.id/2C3
HTTP/1.1 200 OK
Date: Fri, 26 Dec 2014 03:08:04 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.3
X-Powered-By: PHP/5.6.3
Cache-Control: no-cache
Content-Type: text/html; charset=UTF-8
Connection: Keep-Alive
Set-Cookie: sdotid=eyJpdiI6Im1jWEs3TnFhN2pvM2JaSHN1dktUdVE9PSIsInZhbHVlIjoiZHA5MHEzOFl1dTB1SDdSV3oxcnNvZ0RnQ1p5UGU2MzUxVHROZnRSWmFjaWF0RWZuU29Ta1hseTZvMUVSdEhGa0xYMUxESDdSTjRBWnZBek9Wb0FDT3c9PSIsIm1hYyI6IjY0YjFhZDU1ZDQwMDlmYTQ5ZTUxNzlkNTk0ZTIzZTFmODlmMzUwZjA2YjJmYzVlZDE5ZGM0OGE2OGY4N2YxMTYifQ%3D%3D; expires=Fri, 26-Dec-2014 05:08:04 GMT; Max-Age=7200; path=/; httponly

Pemendek t.co mempunyai header HTTP/1.1 301 Moved Permanently dan memiliki informasi location sedangkan yang dari s.id headernya malah HTTP/1.1 200 OK dan tidak memiliki informasi location.

Gua kok ada feeling penyingkat URL s.id ini akan dijadikan tempat iklan yah?

Pentingnya Skalabilitas

Monday, December 15, 2014

The Quest for 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.
Dengan konfigurasi yang disebut di atas saja masih tidak mampu menahan beban yang tiba-tiba naik, apa kabar website yang semua dilakukan oleh 1 server?

Saat ini aku sedang memegang sebuah server yang memiliki pengunjung yang sangat ramai. Rata-rata jumlah pageviews per hari bisa mencapai 3000-4000. Itu semua dikerjakan oleh 1 server yang terdiri dari 1 web server (Apache) dan 1 database server (MySQL), dengan RAM hanya 1 GB.

Dengan spesifikasi yang minim tersebut membuatku memikirkan cara terbaik untuk tetap menjaga website tetap up. Belakangan ini, server tidak mampu melayani request yang sudah terlalu banyak. Kemudian akupun melakukan optimasi, itu pun masih hanya di sisi web server. Saat ini masih bertahan bahkan di saat lonjakan pengunjung naik 2x lipat.

Artikel di atas walaupun sedikit overkill menurutku, tapi ada baiknya dijadikan pembelajaran jika suatu saat ingin menerapkan skalabilitas seperti itu.