Zero-Downtime Deploy dengan Blue-Green di VPS Murah
Tidak perlu Kubernetes untuk rilis tanpa downtime.
Baca →Selama dua tahun, API utama produk kami berjalan sebagai satu monolit di sebuah region tunggal. Selama trafik masih puluhan ribu request per hari, itu baik-baik saja. Begitu menembus dua juta request harian dengan pengguna tersebar dari Aceh sampai Papua, latensi mulai terasa — terutama untuk pengguna jauh dari pusat data.
Artikel ini menceritakan bagaimana kami memindahkan jalur paling panas ke edge functions, angka sebelum dan sesudah, serta trade-off yang jujur. Tidak ada peluru perak di sini, hanya keputusan teknik.
Menambah server vertikal hanya menggeser masalah. Akar persoalannya adalah jarak fisik: paket data dari Jayapura ke Jakarta menempuh ribuan kilometer pulang-pergi untuk tiap request. Edge functions menjalankan kode di titik terdekat dengan pengguna, sehingga round-trip berkurang drastis.
Latensi yang baik bukan soal CPU yang lebih cepat, melainkan soal data yang menempuh jarak lebih pendek.
Kami tidak memindahkan semuanya. Hanya endpoint baca yang sering diakses dan bisa di-cache yang kami dorong ke edge. Penulisan tetap ke origin agar konsistensi terjaga.
export default async function handler(req) {
const cache = caches.default;
const cached = await cache.match(req);
if (cached) return cached;
const data = await fetchFromOrigin(req);
const res = new Response(JSON.stringify(data), {
headers: { "cache-control": "s-maxage=60" },
});
await cache.put(req, res.clone());
return res;
}
Setelah dua minggu di produksi, angkanya berbicara sendiri:
Edge runtime bukan Node.js penuh. Beberapa library favorit tidak jalan, dan debugging lebih sulit karena log tersebar di banyak lokasi. Cold start memang kecil, tapi cache yang salah invalidasi bisa menyajikan data basi. Investasikan waktu di observability sejak hari pertama.
Apakah cocok untuk semua orang? Tidak. Tapi jika penggunamu tersebar luas dan banyak endpoint bersifat baca, edge functions adalah salah satu peningkatan dengan rasio manfaat-biaya terbaik yang pernah kami lakukan.
Tidak perlu Kubernetes untuk rilis tanpa downtime.
Baca →Berlangganan ByteThoughts Weekly dan terima studi kasus mendalam tiap Jumat.
Demo — form tidak aktif.