Menyiapkan respons saat infrastruktur bermasalah: memahami siklus incident response, menulis runbook yang benar-benar dipakai, menjalankan komunikasi yang efektif, dan menutup incident dengan blameless post-mortem

Setelah di episode 19 kita mengelola rahasia dan kepatuhan, kini saatnya jujur: incident pasti terjadi. Tidak peduli seberapa baik infrastruktur dirancang — disk penuh, kabel putus, kode yang salah deploy, atau penyerang yang cerdik akan terjadi. Yang membedakan tim profesional bukan mencegahnya, melainkan meresponsnya dengan tenang, cepat, dan terorganisir.
Mengapa topik ini penting? Karena cara tim bereaksi saat incident menentukan durasi dan dampak kerusakan. Tim yang panik dan mengotak-atik tanpa rencana memperpanjang outage; tim dengan prosedur yang jelas memulihkan dalam hitungan menit. Episode ini membangun sistem incident response: proses, runbook, komunikasi, dan budaya post-mortem.
| Fase | Pertanyaan Kunci | Durasi Target |
|---|---|---|
| Deteksi | Ada apa? Seberapa serius? | Detik-menit |
| Triage | Siapa yang menangani? Severity berapa? | Menit |
| Mitigasi | Bagaimana menghentikan kerusakan? | Menit-jam |
| Recovery | Bagaimana kembali normal? | Jam |
| Post-mortem | Mengapa terjadi? Bagaimana mencegah ulang? | Hari |
Sebagian besar incident pertama kali "ditemukan" oleh user — itu kegagalan observability (episode 9). Sistem yang baik mendeteksi lebih dulu: alert paging untuk kritis, dasbor untuk tren, dan synthetics yang mensimulasikan user.
Tanpa klasifikasi, semua incident tampak darurat. Standar yang umum:
| Level | Dampak | Respon |
|---|---|---|
| SEV-1 | Produksi down, berdampak luas | Page segera, semua hands-on-deck |
| SEV-2 | Gangguan signifikan, degradasi | Respon cepat, tim inti |
| SEV-3 | Gangguan minor, workaround ada | Jam kerja, perbaikan terjadwal |
| SEV-4 | Kosmetik / tidak berdampak user | Backlog |
Runbook adalah instruksi langkah-demi-langkah untuk menangani situasi tertentu. Beda dengan dokumentasi biasa: runbook ditulis saat sistem dalam kondisi baik, dibaca saat keadaan kacau.
# Judul: situasi spesifik, bukan gejala umum
## Gejala (bagaimana mengetahuinya)
- Alert apa yang berbunyi? Query apa yang dipakai?
## Dampak (seberapa parah?)
- Siapa yang terdampak? Berapa banyak? Sev berapa?
## Diagnosa (langkah cepat)
1. Periksa X
2. Periksa Y
3. Jika Z → segera ke mitigasi
## Mitigasi (hentikan kerusakan)
1. Langkah aman yang bisa dilakukan sekarang
## Recovery (kembali normal)
1. Urutan langkah kembali ke kondisi sehat
## Verifikasi (bukti pulih)
1. Bagaimana memastikan benar-benar pulih?
## Kontak (siapa menghubungi siapa)Contoh runbook singkat untuk "disk penuh":
Gejala : alert HighDiskUsage, aplikasi mulai gagal tulis
Dampak : Sev-2 (produksi terdampak)
Diagnosa :
df -h / ; du -xsh /* 2>/dev/null | sort -h | tail
journalctl --disk-usage
Mitigasi :
# bersihkan log dengan aman (JANGAN hapus data aplikasi!)
journalctl --vacuum-size=200M
# temukan & komunikasikan file besar sebelum hapus
Recovery :
pastikan aplikasi bisa tulis lagi; pantau 30 menit
Kontak : on-call + pemilik aplikasiNote
Runbook terbaik lahir dari incident sebelumnya: setiap kali tim menghabiskan 3 jam untuk menyelesaikan sesuatu yang bisa dilakukan 10 menit dengan petunjuk, itu kandidat runbook. Kebiasaan "tulis runbook setelah incident" mengubah pengalaman mahal menjadi aset abadi.
Saat incident, komunikasi yang buruk memperpanjang outage — orang sibuk bertanya alih-alih bekerja. Sistem yang benar:
Semua informasi incident di satu tempat (channel khusus / status page), dengan format baku:
[SEV-1] API produksi down
Status : Mitigasi (rolled back v2.4.1 → v2.4.0)
Dampak : 30% traffic gagal, checkout terdampak
Durasi : mulai 14:02 WIB, aktif 18 menit
Pemilik : @oncall-api
Next : verifikasi health check 15 menit lagiUpdate rutin setiap X menit — bahkan "belum ada kemajuan, masih diagnosa" lebih baik daripada keheningan.
Satu aturan emas: satu orang men-debug pada satu waktu. Dua orang mengubah config bersamaan = tidak ada yang tahu perubahan siapa yang memperbaiki atau merusak.
Recovery bukan "aplikasi jalan lagi" — ia proses yang terkontrol:
Post-mortem adalah analisis setelah incident — tujuannya bukan mencari yang salah, melainkan memperbaiki sistem. Blameless berarti: tidak ada individu yang disalahkan; fokus pada proses, tooling, dan kondisi yang memungkinkan kesalahan.
Judul : Ringkasan satu kalimat
Timeline : Fakta kronologis (deteksi → mitigasi → recovery)
Root cause : Analisis akar masalah (5 Whys)
Dampak : Durasi, user terdampak, biaya
Aksi : Item tindakan perbaikan (ber-owner + deadline)
Lesson : Apa yang bisa dipelajari tim lainContoh: "API down karena database hang."
Akar masalahnya bukan "query lambat" — melainkan proses yang tidak menguji migrasi. Perbaikan yang benar: otomasi migrasi di CI, bukan "berhati-hati lagi".
Post-mortem tanpa aksi adalah latihan menulis. Setiap aksi harus:
Warning
Budaya menyalahkan adalah musuh terbesar keandalan. Jika orang dihukum karena incident, mereka akan menyembunyikan incident — dan sistem yang tidak terlihat adalah sistem yang tidak bisa diperbaiki. Tim yang aman secara psikologis melaporkan lebih cepat dan pulih lebih cepat.
Pada episode 20 ini kalian telah membangun sistem incident response:
Di episode 21 selanjutnya kita memastikan sistem tidak gampang tumbang: high availability & scaling — redundancy, auto-scaling, dan desain failover. Sampai jumpa di episode 21!