You are on page 1of 3

Web Cache

Untuk aplikasi berbasis website dengan jumlah pengunjung yang tinggi, penggunaan metode web
cache untuk optimalisasi performa sudah menjadi hal yang umum. Optimalisasi performa dengan
metode ini digunakan dengan memanfaatkan tempat penyimpanan sementara untuk menyimpan
data balikan yang telah diproses oleh aplikasi. Dengan data balikan tersebut, web server/aplikasi
dapat memberikan balikan kepada pengguna tanpa harus melalui semua proses yang dibutuhkan
untuk menghasilkan balikan akhir. Dalam penggunaannya, web cache dapat diimplementasikan
dengan beberapa cara.

HTTP Caching

HTTP cache adalah strategi pengimplementasian web cache dengan memanfaatkan browser
cache/client cache untuk menyimpan balikan dari server berdasarkan Header HTTP. Balikan yang
dikirimkan oleh web server sendiri, disimpan pada browser cache dengan dua metode, time based
dan content based.

Page/Output Caching

Page caching adalah mekanisme caching yang dapat digunakan dengan menyimpan keseluruhan
balikan yang dihasilkan sehingga memungkinkan web server untuk memberikan balikan tanpa
harus melalui keseluruhan proses pada aplikasi.

Fragment Caching

Fragment caching adalah strategi penyimpanan cache untuk suatu fragment/bagian dari satu
balikan. Umumnya, balikan konten pada sebuah website dapat dibagi menjadi ke dalam beberapa
bagian. Sebagai contoh balikan halaman pada website berita, halaman balikan tersebut dapat dibagi
menjadi konten berita, daftar berita terakhir dan daftar berita terkait. Penerapan fragment caching
dapat dilakukan dengan menyimpan cache berdasarkan bagian-bagian yang ada dihalaman tersebut
dan menyesuaikan time expire pada tiap bagian berdasarkan kebutuhan.

Matryoshka Caching

Matryoshka caching merupakan mekanisme penyimpanan cache yang populer digunakan pada
Rails. Penggunaan matryoshka caching merupakan bentukan lebih lanjut dari fragment caching.
Umumnya digunakan untuk menyimpan data yang mempunyai turunan (nested).

What Suits You Best

Beberapa strategi penggunaan web cache yang telah disebutkan diatas merupakan strategi yang
umumnya dapat diterapkan dalam upaya untuk aplikasi website. Namun demikian, bukan berarti
pengimplementasian keseluruhan strategi dalam satu aplikasi dapat memberikan hasil yang paling
maksimal dalam optimalisasi performa. Penggunaan strategi web cache biasanya diputuskan
berdasarkan kebutuhan aplikasi website dan sumber daya yang tersedia.

Misal saja untuk aplikasi website yang digunakan untuk menampilkan galeri foto. Penggunaan
HTTP Caching akan sangat membantu pengguna dalam mengakses data yang ada di server. Di saat
pengguna mengakses halaman pada aplikasi tersebut, web server memberikan data-data balikan
(misal) seperti halaman web, gambar, dan script pendukung. Dengan HTTP Caching, data-data
balikan tersebut akan tersimpan dalam browser cache yang ada di pengguna. Dan disaat pengguna
akan mengakses halaman atau data-data balikan yang sebelumnya telah tersimpan, pengguna tidak
lagi perlu mengunduh ulang data balikan tersebut. Sehingga browser pada pengguna dapat
menampilkan balikan dengan lebih cepat, dan beban server menjadi lebih ringan.

Penggunaan browser cache memang sangat membantu, namum bukan berarti dapat menjadi solusi
untuk setiap aplikasi. Dalam beberapa kondisi seperti pengguna yang menggunakan smartphone
untuk mengakses aplikasi belum tentu dapat mendapatkan experience yang serupa dengan
pengguna yang mengakses melalui browser pada desktop. Ukuran web cache pada smartphone
sangatlah terbatas, sehingga tidak seluruh balikan yang diterima dari web server dapat disimpan,
sehingga pengguna perlu mengunduhnya ulang dari web server.

Pada contoh lainnya, misal saja untuk aplikasi website yang digunakan untuk menampilkan
halaman dengan konten berita, berita terkait lainnya, dan juga kolom komentar. Dalam kasus ini,
aplikasi akan memproses permintaan pengguna dengan mencari konten berita yang dimaksud pada
database, melakukan kalkukasi untuk menentukan berita yang terkait, melakukan penyaringan
komentar pada berita dan menampilkannya dalam balikan yang kemudian diunduh oleh pengguna.

Karena halaman yang diakses berisi konten berita yang sekaligus menampilkan berita terkait dan
kolom komentar, tentu pengguna berharap jika halaman yang diakses merupakan halaman dengan
konten yang yang selalu terbaharui, terutama pada bagian berita terkait dan kolom komentar.

Tentu pemrosesan data pada aplikasi tidak akan menjadi masalah apabila sumber daya yang
digunakan, dapat mencukupi. Namun, jika halaman yang serupa diakses oleh pengguna yang
banyak, tentu aplikasi akan terus melakukan proses yang serupa berkali-kali untuk menghasilkan
balikan yang diinginkan pengguna. Dan dengan keadaan tersebut, performa aplikasi akan menurun
karena sumber daya yang menjalankan aplikasi tersebut tidak mencukupi kebutuhan.

Dengan menggunakan fragment caching atau matryoshka caching, developer dapat menyimpan
balikan dari pemrosesan aplikasi ke dalam beberapa bagian, dan memperbaharuinya berdasarkan
kebutuhan dari halaman yang diakses. Seperti dalam kasus sebelumnya, developer dapat membagi
caching ke dalam tiga bagian, cache untuk konten berita, cache untuk berita terkait, dan cache untuk
kolom komentar. Berdasarkan aktifitas data yang masuk developer dapat memberikan time expired
yang lama konten berita karena konten tersebut jarang diperbaharui. Lalu memberikan time expired
yang lebih cepat pada cache berita terkait dan kolom komentar karena aktifitas data yang lebih aktif.
Sehingga dengan strategi tersebut pengguna dapat mengakses konten berita pada suatu halaman,
dengan kolom komentar dan berita terkait yang selalu terbaharui, tanpa harus membebani web
server dengan banyaknya proses yang harus dilalui oleh aplikasi.

Involvement on Improving Performance

Untuk mengembangkan suatu aplikasi yang memiliki tingkat reliabilitas yang baik, seringkali
membutuhkan keterlibatan banyak oranng dengan masing-masing perannya. Anggaplah dalam
pengembangan sebuah aplikasi website, sebuah tim terdiri dari kepala tim, analis, programmer,
designer dan infrastruktur. Dengan sebuah goal yang terukur dan jelas, tim tersebut dapat mulai
merumuskan strategi caching yang paling sesuai dengan kebutuhan aplikasi tersebut.

Misalkan saja berdasarkan kebutuhan pada aplikasi, terdapat suatu halaman yang dapat
menampilkan konten artikel atau berita terkait suatu instansi dengan kolom komentar, maka analis
dapat menentukan halaman tersebut dapat dibagi menjadi berapa bagian cache. Lalu pada halaman
lainnya, aplikasi menampilkan galeri foto dari aktifitas suatu instansi, maka bagian design dapat
memberikan masukan terkait balikan-balikan mana saja yang memerlukan HTTP cache, sehingga
pengguna tidak selalu perlu mengunggah ulang konten yang sama. Dan dengan keseluruhan metode
caching dan kebutuhan terkait aplikasi, bagian infrastruktur dapat menyarankan sumber daya yang
dibutuhkan dan aplikasi-aplikasi tambahan yang dapat membantu aplikasi dalam memproses data.

Memang tidak ada jaminan dengan seluruh strategi yang telah direncanakan semenjak analisa
hingga penyiapan infrastruktur dan aplikasi pendukung dapat memberikan performa yang
diekspektasikan. Ada banyak sekali variabel yang perlu dipertimbangkan dan seringkali tidak
terukur. Tapi paling tidak dengan keterlibatan setiap pihak dalam mengoptimalisasi performa
aplikasi, ketua tim dapat dengan mudah menentukan siapa yang bertanggung jawab menjalankan
strategi.

You might also like