Thursday, March 11 - 12:35 PM
Image for Membuat Situs Web Menjadi Lebih Cepat Diakses dengan Caching
Membuat Situs Web Menjadi Lebih Cepat Diakses dengan Caching Membuat Situs Web Menjadi Lebih Cepat Diakses dengan Caching

Semua orang yang pernah membuat serta mengurus sebuah situs web pasti memiliki beberapa keprihatinan akan hal yang sama, yang pertama adalah keamanan dan yang kedua adalah kecepatan akses. Bagi beberapa situs web, terutama situs web-situs web e-commerce, kecepatan akses situs web sangat penting apalagi di event-event khusus. Jika situs web sangat lambat untuk diakses, maka calon pembeli akan kesal dan tidak jadi mengunjungi situs web. Atau, jika mereka sudah berhasil memasukan produk ke keranjang namun ternyata akses ke checkout-nya sangat lama, membuat mereka membatalkan transaksi.

Framework apa pun yang digunakan oleh e-commerce tersebut, baik Magento, Shopify, Wordpress, dan lain-lain, memiliki keprihatinan yang sama. Ada beberapa cara untuk mempercepat akses situs web, misalkan dengan mengkompress file-file statis situs web dengan menggunakan gzip, menggunakan asynchronous loading, memastikan bahwa gambar-gambar yang digunakan adalah gambar yang sudah dioptimisasi. Semua itu dilakukan dari segi coding dan juga posting.

Salah satu cara yang sering digunakan adalah dengan melakukan caching baik pada tampilan atau pun data dan API. Ada beberapa cara untuk menyimpan cache tampilan situs web, antara lain:

1. Content Delivery Network (CDN)

Content Delivery Network adalah sebuah sistem yang menyediakan server tempat penyimpanan data situs web berdasarkan lokasi pengguna yang mengakses situs web tersebut. Misal, server yang digunakan oleh sebuah situs web berada di Amerika Serikat, sementara pengguna berada di Indonesia. Data dari server situs web tersebut membutuhkan waktu untuk tiba di Indonesia karena jarak, maka akses pun terasa lebih lama.

CDN menyediakan server di berbagai tempat yang dapat menjembatani akses antara asal pengguna dan juga server utama situs web. Misal, platform CDN memiliki server di Singapura, maka server di Singapura ini akan mengakses data dari server Amerika dan menyimpannya, sehingga orang-orang yang berada di Singapura dan sekitarnya tak perlu menunggu lama data dari Amerika untuk tiba ke mereka, karena akses mereka akan beralih ke server di Singapura yang lebih dekat, sehingga pengiriman data pun akan menjadi lebih cepat. Dengan pembagian data terdistribusi seperti ini, maka pengguna tak perlu menunggu lebih lama dimana pun mereka berada.

Selain akses yang lebih cepat, CDN juga bermanfaat untuk memastikan bahwa situs web selalu hadir. Karena ada cadangan data, jadi meski situs web di server pusat down, maka situs web tetap tersedia karena data di server lain masih tersedia.

Contoh servis CDN yang dapat digunakan antara lain adalah Cloudflare, Cloudfront, Sucuri, dan lainnya. Kebanyakan servis CDN tak hanya menyediakan CDN, namun juga firewall dan sistem pengamanan jika situs web diserang, maka dari itu penggunaan CDN sangatlah berguna.

2. Progressive Web Apps (Progressive Web Apps)

PWA adalah salah satu teknologi terbaru yang memberikan pengalaman seperti menggunakan mobile apps saat kita mengunjungi sebuah situs web. PWA, layaknya sebuah aplikasi, dapat diinstal. PWA berguna bagi para developer yang ingin membuat situs web mereka seperti sebuah aplikasi. Lantas, kenapa PWA menjadi salah satu solusi untuk membuat situs web menjadi lebih cepat?

PWA memiliki konsep progressive, responsive, tak bergantung koneksi, terasa seperti aplikasi, fresh, aman, mudah ditemukan, dapat diinstal, dan dilink. Salah satu kata kunci yang penting di sini adalah tak bergantung koneksi, yang berarti tak peduli seberapa cepat atau lambat koneksi kita, situs web tersebut dapat akses. Bagaimana PWA bekerja? PWA menggunakan teknologi bernama Service Worker, yang bertugas untuk mengelola akses jaringan dan cache dari sebuah PWA. Service Worker dapat menyimpan aset-aset yang digunakan oleh PWA, sehingga saat kita mengakses PWA tersebut kita tak perlu mendownload ulang aset-aset tersebut, sehingga akses akan terasa lebih cepat. Tidak hanya itu, dengan disimpannya aset-aset tersebut oleh PWA, kita akan tetap dapat mengakses situs web meski dalam keadaan offline.

3. Varnish Cache

Varnish Cache adalah aplikasi web accelerator yang juga dikenal sebagai reverse proxy HTTP caching, dirancang untuk menangani situs web dinamis dengan jumlah konten yang banyak agar tetap berjalan lancar. Apabila diinstall pada server, maka Varnish akan mempercepat faktor pengiriman http 300 kali sampai dengan 1000 kali lebih cepat dibandingkan dengan server biasa yang tidak menggunakan Varnish.

Beberapa solusi tersebut bisa disatukan untuk memaksimalkan kecepatan akses situs web. Misalkan, situs web yang sudah dijadikan PWA juga dipasangkan CDN dan varnish.

Selain melakukan caching pada aset-aset situs web, kita juga dapat melakukan caching pada data yang kita dapatkan dari database dan API, sehingga mempercepat akses ke data-data tersebut dan sekaligus mengurangi beban panggilan ke database secara langsung. Cara ini terutama sangat berguna bagi data-data yang bersifat statis atau jarang berubah. Caching dapat dilakukan secara berkala atau ditrigger secara manual. Beberapa pilihan servis yang dapat untuk menyimpan data:

1. LRU Cache

Least Recently Used adalah sebuah algoritma yang dapat menentukan data yang perlu dibuang ketika cache sudah penuh. LRU menyimpan data di memori server untuk disajikan ke website, namun jika data LRU sudah penuh maka LRU akan memprioritaskan data cache yang lebih sering dipanggil dan membuang cache yang jarang digunakan.

2. Redis atau Memcached

Redis, singkatan dari Remote Dictionary Server, adalah penyimpanan data nilai utama di dalam memori yang super cepat dengan sumber terbuka untuk digunakan sebagai database, cache, broker pesan, dan antrean. Memcached merupakan penyimpanan data di dalam memori yang berperforma tinggi dan mudah digunakan. Semua data Redis dan Memcached terdapat di dalam memori, berbeda dengan database yang menyimpan data di disk atau SSD. Dengan menghilangkan kebutuhan untuk mengakses disk, penyimpanan data di dalam memori seperti Redis menghindari penundaan waktu pencarian dan dapat mengakses data dalam mikrodetik.

3. Algolia dan Elastic Search

Selain cache seperti redis dan memchaced, data-data di database juga dapat disimpan di layanan seperti algolia dan elastic, yang tak hanya menyimpan data namun juga dapat melakukan analisis dan cara mengakses data yang lebih teratur dan mudah.

Referensi

Gagliardi, J. D., & Munger, T. S. (2011). U.S. Patent №7,962,580. Washington, DC: U.S. Patent and Trademark Office.

Hume, D. A. (2017). Progressive web apps. Manning Publications Co.

Introduction to Varnish — Varnish HTTP Cache. (2020). Diakses 11 December 2020, dari https://varnish-cache.org/intro/index.html#intro

Cake Labs, I. LRU Cache Data Structure | Interview Cake. Diakses 11 December 2020, dari https://www.interviewcake.com/concept/java/lru-cache

Memcached | Distributed Key-Value Store | AWS. Diakses 11 December 2020, dari https://aws.amazon.com/memcached/

Redis: in-memory data store. How it works and why you should use it. Diakses 11 December 2020, dari https://aws.amazon.com/redis/

Email

© 2013–2021 Copyright Ilma A. All rights reserved.