Whole Site Delivery

Whole Site Acceleration / Whole Site DeliveryDynamic Site Accelerator / Whole Content Delivery, adalah salah satu teknik lebih lanjut dari CDN. Sistemnya sama dengan CDN biasa, dan menggunakan CDN yang sama juga, akan tetapi dengan sedikit penambahan fitur.

Jika pada CDN biasa, hanya file-file yang bersifat statis (JS, CSS, Images) yang di-distribusikan melalui server CDN di seantero dunia. Dengan Whole Site Delivery, selain file-file statis, file-file dinamis (PHP-JSP-HTML-ASPX) pun akan di-cache di server CDN sehingga beban di server asal jauh lebih ringan dan visitor dapat membuka website dengan lebih cepat

Detailnya, lihat presentasi berikut ini :

Beberapa Layanan Whole Site Delivery

Setelah mengetahui tentang apa itu Whole Site Delivery melalui presentasi di atas, mungkin Anda bertanya bagaimana cara mengaplikasikan konsep whole site delivery ini?

Jawabannya : pada umumnya, Anda bisa mendapatkan kemampuan Whole Site Delivery menggunakan layanan CDN apa pun.

Ada beberapa perusahaan CDN yang secara khusus menyediakan fitur ini antara lain Akamai DSA dan Fastly Dynamic Content Delivery, dan tentu saja Amazon CloudFront Dynamic Content Delivery yang ditampilkan dalam presentasi di atas, mereka semua menyediakan fasilitas untuk melakukan caching untuk dynamic content. Pada layanan jenis ini mereka bisa memutuskan untuk melakukan caching dynamic content tergantung header cache control dari web server, kita bisa manfaatkan opsi no-cache untuk halaman dengan login, dan cache-enabled untuk visitor yang tidak logged in. Saya sendiri pernah sukses melakukan cara yang yang satu ini dengan menggunakan CDN Exceda (reseller akamai).

Kelebihannya : 100% dynamic content compatible (http cache control), website speed up, server load down

Kekurangan : mahal

Ada juga perusahaan yang menyediakan fitur sejenis dengan cara yang sedikit berbeda, misalnya teknologi Cloudflare Railgun. Untuk penggunaan pada VPS / dedicated server, Anda membutuhkan layanan Cloudflare Business Plan yang cukup mahal untuk kebutuhan mayoritas web master. Untungnya pada penggunaan website kelas kecil, Anda tinggal melakukan hosting pada salah satu dari beberapa Cloudflare Optimized Partner (Optimized Partner, bukan yang Certified Partner) dan Anda bisa langsung mendapat hasilnya secara gratis. Layanan ini sayangnya hanya melakukan speedup dan tidak mengurangi server load.

Kelebihannya : 100% dynamic content compatible (railgun controlled), website speed up

Kekurangan : server load stay the same, mahal kalau mau dipasang di VPS/Dedicated Server

Ada juga cara lainnya, yakni mengakali CDN yang Anda pakai sekarang supaya meng-cache file dynamic dengan cara memberikan ekxtensi .html (file statis) pada website pada halaman-halaman yang sebenarnya isinya dynamic content. Cara ini cocok untuk blog / situs informasi tanpa login untuk visitor (situs berita, blog, etc) dan kurang cocok untuk website ecommerce atau website yang meminta login kepada para pengguna.

File HTML biasanya secara default dicache oleh layanan CDN, jadi begitu ada user yang mengakses halaman *.html, yang terjadi adalah mereka mengakses file *.html dari CDN dan bukan dari server Anda, sehingga halaman terbuka dengan lebih cepat dan CPU usage di server menjadi sangat rendah karena yang melayani visitor adalah CDN dan bukan server Anda..

Cara ini cukup murah dan mudah digunakan, tapi sayangnya tidak mendukung 100% dynamic content, maksudnya kalau ada dua orang yang login ke halaman domain.com/login/abc.html yang seharusnya keduanya mendapatkan content yang berbeda, maka dengan cara ini halaman yang muncul untuk kedua orang tersebut akan sama karena halaman .html sudah di-cache di CDN. Jadi cara ini kurang cocok untuk website

Kelebihannya : mudah dan murah, website speed up, server load down

Kekurangan :  tidak 100% dynamic content compatible

Spoiler : kalau mau sedikit repot, setiap URL di member area menyertakan timestamp dan user ID (domain.com/login/abc.html?user=username&t=unixtime), masalah kompatibilitas bisa diatasi dan jadi solusi termurah

Pilih Yang Mana?

Pilihan terserah Anda, sesuaikan dengan kebutuhan. Untuk website ecommerce yang memerlukan login dan member area, tentunya lebih baik memilih solusi yang 100% dynamic content compatible. Sedangkan untuk blog (reading) saja, tentu tidak perlu harus 100% dynamic content compatible, sehingga mengakali CDN (dynamic content diberi ekstensi .html) sudah cukup.

Sebagai study case, berikut hasil yang saya dapatkan dari menggunakan cara ke-3 (modifikasi dynamic content dengan memberi ekstensi .html) pada blog dengan jenis reading only (no login), hasilnya lumayan bagus, kami bisa menghemat biaya server hingga 60%. CDN yang kami gunakan adalah Cloudflare dengan memanfaatkan Page Rules dan Plugin WordPress Sunny.

Untuk detail cara settingnya, insyaaAllah akan diposting di artikel berikutnya, meanwhile, silakan diamati dulu grafiknya :

Study Case : 220.000+ visits in 24 hours

Processor menggunakan Intel Xeon E3-1270 v3 @ 3.50GHz

CPU Benchmark : http://www.cpubenchmark.net/cpu.php?cpu=Intel+Xeon+E3-1270+v3+%40+3.50GHz

Server load sebelum mengaktifkan Whole Site Delivery (hanya CDN biasa), CPU 100% selama berjam-jam (5-6 jam), visitor 220.000+ dalam sehari. Langsung turun sangat drastis begitu opsi Whole Site Delivery Diaktifkan.

WHOLE1

WHOLE2

Study Case : 110.000+ visits in 24 hours

Processor menggunakan Intel Xeon E3-1270 v3 @ 3.50GHz

CPU Benchmark : http://www.cpubenchmark.net/cpu.php?cpu=Intel+Xeon+E3-1270+v3+%40+3.50GHz

Server load sangat rendah sekali, berikut screenshot server usage 24 jam menangani 100.000+ visits dalam sehari, atau 50% dari visits dalam 24 jam pada gambar sebelumnya.

CPU24

LOAD24