Cloudflare Membahas Penghematan Cache dengan Zstandard dan Pingora

Cloudflare membahas cara menghemat hingga petabyte penyimpanan cache dengan kombinasi Zstandard dan Pingora. Pembahasan ini relevan bagi developer web karena cache bukan hanya soal menaruh response lebih dekat dengan pengguna, tetapi juga bagaimana data dikompresi, ditranscoding, disimpan, dan disajikan kembali secara efisien.

Pada layanan dengan trafik besar, penghematan kecil pada satu response dapat menjadi signifikan ketika dikalikan jutaan request. Namun kompresi juga memakai CPU dan harus mempertimbangkan kemampuan client.

Mengapa Zstandard relevan?

Zstandard atau zstd menyeimbangkan rasio kompresi dan kecepatan. HTML, CSS, JavaScript, JSON, dan SVG biasanya cocok dikompresi, sedangkan gambar, video, ZIP, dan binary yang sudah terkompresi mungkin tidak memberi manfaat besar. Level kompresi tinggi harus diuji terhadap p95 latency dan penggunaan CPU.

Peran Pingora

Pingora adalah framework proxy berbasis Rust. Proxy dapat mengambil keputusan tentang cache, koneksi, kompresi, retry, dan routing. Implementasi production harus memperhatikan timeout, connection pooling, backpressure, serta perilaku saat origin bermasalah.

Cache transcoding perlu memastikan representasi response sesuai kebutuhan client. Header Accept-Encoding harus dipertimbangkan pada cache key agar response zstd, Brotli, gzip, dan identity tidak tertukar.

function cacheKey(request) {
  const encoding = request.headers.get("accept-encoding") || "identity";
  const normalized = chooseEncoding(encoding);
  return request.url + "|encoding=" + normalized;
}

function chooseEncoding(value) {
  if (value.includes("zstd")) return "zstd";
  if (value.includes("br")) return "br";
  if (value.includes("gzip")) return "gzip";
  return "identity";
}

Dampak untuk developer dan bisnis

Penghematan storage dapat menurunkan biaya infrastruktur dan memperpanjang kapasitas cache. Response lebih kecil juga membantu pengguna pada jaringan lambat. Ukur cache hit ratio, origin offload, bandwidth, CPU proxy, storage, dan error rate secara bersamaan.

  • Gunakan kompresi untuk konten yang memang dapat dikompresi.
  • Pastikan cache key mempertimbangkan content encoding.
  • Uji compatibility pada browser dan client berbeda.
  • Pantau ukuran response, latency, CPU, dan storage.

Keamanan cache

Jangan menyimpan response personal, token, atau data akun ke cache publik. Gunakan Cache-Control private untuk data pengguna dan uji variasi cookie, authorization header, query string, serta content encoding. Cache purge dan rollback juga harus diuji sebelum perubahan proxy dirilis.

Cache-Control: public, max-age=300, stale-while-revalidate=60
Vary: Accept-Encoding

Strategi deployment

  1. Ukur baseline response dan latency.
  2. Aktifkan pada sebagian traffic melalui canary.
  3. Bandingkan hit ratio, CPU, storage, dan error rate.
  4. Siapkan fallback ke encoding sebelumnya.
  5. Dokumentasikan perubahan dan prosedur purge.

Kesimpulan

Pembahasan Cloudflare tentang Zstandard dan Pingora memperlihatkan bahwa performa web berskala besar membutuhkan optimasi pada seluruh jalur response. Kompresi dan cache dapat menghemat resource, tetapi harus diterapkan dengan memperhitungkan CPU, compatibility, privasi, cache key, dan observability.

Sumber asli: Cloudflare Blog — How we could save petabytes of cache storage with Zstandard and Pingora

Transparansi: Artikel ini disusun bersama Codekop AI berdasarkan sumber yang tercantum, kemudian ditinjau dan disunting oleh Fauzan Falah. AI dapat keliru, jadi silakan cek kembali sumber asli.
Komentar