Internet sempat heboh lagi tanggal 18 November 2025 kemarin. Jutaan website (termasuk X, ChatGPT, Spotify) mendadak 5xx Error. Awalnya dikira serangan DDoS terbesar dalam sejarah, ternyata musuhnya… internal bug.
InfoQ dan Cloudflare baru aja merilis post-mortem-nya. Ini bedahannya:
1. ⚠️ Problem Statement (Masalah)
* Gejala: Mulai jam 11:20 UTC, trafik global Cloudflare mulai failing. User dapet “Error 500” di mana-mana.
* Misteri: Errornya “flapping” (kadang sukses, kadang gagal). Tim engineer awalnya panik mengira ini serangan DDoS canggih karena pola trafiknya aneh.
* Impact: Layanan Bot Management (yang memfilter bot jahat) crash, menyeret seluruh layanan proxy ikut mati.
2. 🛠️ Metodologi & Root Cause
Penyebabnya sepele tapi fatal: Database Permission Change.
* Niat Awal: Engineer ingin merapikan permission di database ClickHouse (untuk keamanan).
* Efek Samping: Perubahan itu membuat query SQL mengembalikan data duplikat.
* The “Feature File”: File konfigurasi untuk deteksi Bot yang biasanya kecil, tiba-tiba ukurannya meledak 2x lipat (dari 60 jadi >200 fitur).
* Hard Limit: Software proxy Cloudflare punya alokasi memori ketat (hard limit). Begitu file konfigurasi yang “kegendutan” ini dimuat -> BOOM! Out of Memory/Crash.
3. 📈 Findings & Hasil
* 📉 False Flag: Karena update-nya disebar bertahap (gradual rollout), sistem kadang dapat file bagus, kadang file rusak. Ini yang bikin engineer bingung dan buang waktu mendiagnosa “DDoS hantu”.
* 🛡️ Fix: Solusinya manual dan klasik: Matikan auto-generation file tersebut, lalu force push file konfigurasi lama yang valid ke seluruh dunia.
* ⏱️ Durasi: Butuh sekitar 6 jam sampai full recovery.
4. 💡 Key Takeaways
* Input Validation is King: Jangan pernah percaya output dari database, bahkan database sendiri. Validasi ukuran file konfigurasi sebelum disebar ke jutaan server itu wajib.
* Observability: Ketika sistem flapping (hidup-mati), dashboard monitoring seringkali menipu. Membedakan bug internal vs serangan eksternal adalah skill paling mahal saat insiden.
* Fragility at Scale: Semakin besar sistem, hal sekecil “tambahan baris di database” bisa meruntuhkan internet.
💻 How to Prevent (Lessons Learned)
Buat teman-teman DevOps/SRE, ini pelajaran mahal buat kita:
* Implement “Canary” with Health Checks:
Jangan cuma cek “service jalan nggak?”. Cek juga logic-nya. Kalau config file berubah drastis ukurannya, halt deployment otomatis!
# Pseudocode Logic
if [ “$NEW_CONFIG_SIZE” -gt “$MAX_SAFE_SIZE” ]; then
echo “Config terlalu besar! Abort deployment.”
exit 1
fi
* Graceful Degradation:
Kalau modul “Bot Protection” crash, harusnya trafik tetap jalan (Fail Open), jangan malah bikin seluruh website mati (Fail Closed). Prioritaskan availability user asli daripada ngeblok bot saat krisis.
* Explicit Limits:
Hindari hard limit memori yang bikin crash total. Gunakan soft limit atau pagination saat memuat konfigurasi.
🔗 Sumber Post-Mortem:
https://www.infoq.com/news/2025/11/cloudflare-global-outage-cause/
#Cloudflare #DevOps #SRE #SystemDesign #PostMortem #InternetDown #TechNews #InfoQ #ClickHouse #Database