Menerapkan praktik keandalan ala Site Reliability Engineering: mendefinisikan SLI dan SLO, mengelola error budgets, serta menjalankan incident response yang terukur dan blameless

Episode 21-22 membangun ketersediaan dan kapasitas secara teknis. Episode 24 ini membawa keandalan ke level yang lebih tinggi — dan lebih terukur — melalui lensa SRE (Site Reliability Engineering): disiplin yang lahir di Google untuk menjaga layanan besar tetap andal. SRE bukan "jabatan" semata — ia adalah cara berpikir yang bisa diterapkan setiap System Engineer.
Mengapa episode ini penting? Karena "jaga server tetap up" adalah kalimat yang terlalu kabur untuk dijalankan. SRE menjawabnya dengan angka: berapa persen ketersediaan yang dijanjikan, bagaimana mengukurnya, dan apa konsekuensinya. Episode ini membahas tiga pilar: SLI/SLO (definisi & pengukuran), error budgets (keseimbangan keandalan vs kecepatan), dan incident response (penanganan kegagalan yang profesional).
| Istilah | Arti | Contoh |
|---|---|---|
| SLI (Service Level Indicator) | Metrik yang mengukur keandalan | Persentase request berhasil dalam 5 detik |
| SLO (Service Level Objective) | Target yang dijanjikan | 99,9% request sukses per bulan |
| SLA (Service Level Agreement) | Kontrak hukum dengan pelanggan | < SLA biasanya ada kompensasi |
| Error budget | "Jatah" kegagalan yang tersisa | 100% - SLO = 0,1% (≈43 menit/bulan) |
Aturan penting: SLA harus lebih longgar dari SLO. Kalian menetapkan SLO internal yang lebih ketat (99,95%) agar punya buffer sebelum melanggar SLA komersial (99,9%).
SLI harus merepresentasikan pengalaman pengguna, bukan sekadar kesehatan server:
SLI yang umum:
request sukses / total request (error rate < 0,1%).SLI bisa dihitung langsung dari metrik Prometheus (episode 10):
sum(rate(http_requests_total{status=~"5..|429"}[5m]))
/ sum(rate(http_requests_total[5m]))Error budget adalah jumlah kegagalan yang diperbolehkan sebelum melanggar SLO. Jika SLO 99,9% per bulan, error budget-nya 0,1% — sekitar 43 menit downtime/bulan. Filosofi penting SRE:
Ini mengubah keputusan operasional menjadi keputusan berbasis angka, bukan emosi atau hirarki:
Error budget bulan ini tersisa: 20% dari 43 menit
Proposal: rilis besar minggu ini.
Keputusan: DITOLAK sampai budget pulih, atau rilis di-batch kecil.1 - (sum(rate(http_requests_total{status=~"5..|429"}[30d]))
/ sum(rate(http_requests_total[30d])))
# Hasil di bawah 0.999 = budget terlampauiNote
Error budget bukan alasan untuk abai — melainkan alat keputusan. Ketika budget hampir habis, prioritas berubah: fokus stabilisasi (rollback, reduksi fitur, penambahan kapasitas), bukan fitur baru. Inilah cara SRE menjaga keandalan berkelanjutan, bukan reaktif.
Insiden besar tidak diatasi dengan panik, tapi dengan proses:
Budaya terpenting SRE: postmortem blameless. Tujuannya bukan mencari siapa yang salah, tapi mencegah terulang:
# Postmortem: [Judul Insiden]
Tanggal / Durasi / Severity: ...
## Ringkasan
Apa yang terjadi, dampak ke pengguna, berapa lama.
## Timeline
Waktu kejadian, deteksi, mitigasi, recovery (dengan timezone).
## Root Cause
Akar masalah teknis (bukan orang).
## Aksi Tindak Lanjut
- [ ] Otomasi deteksi (mengapa tidak terdeteksi lebih cepat?)
- [ ] Perbaikan proses (deploy, config)
- [ ] Refleksi: apa yang membuat insiden bertahan lama?Saat insiden berlangsung, tim tidak boleh mengarang langkah — runbook (episode 2) yang sudah disiapkan dijalankan:
1. Konfirmasi dari monitoring: node down? app 500? DB?
2. Buka channel insiden & umumkan severity
3. Cek dashboard sintetis: LB, app, DB
4. Langkah cepat: restart service / rollback release terakhir
5. Jika pulih: verifikasi + pantau 30 menit
6. Jika tidak: eskalasi + panggil on-call senior
7. Catat timeline untuk postmortemBangun fondasi SRE di lab kalian:
# 1. Definisikan SLI/SLO di dokumen (contoh di atas)
# 2. Buat alert error rate berbasis SLI
# (Prometheus rule: sum 5xx / sum total > 0.001 selama 10m)
# 3. Simulasikan insiden: stop service, ukur error rate
sudo systemctl stop nginx
# (lihat dashboard: error rate naik, alert terpicu)
# 4. Pulihkan & catat postmortem mini
sudo systemctl start nginx
# 5. Review: apakah deteksi cukup cepat? perbaiki alert bila perluInti yang harus dibawa pulang:
Di episode 25 selanjutnya kita menyatukan semuanya dalam kode: IaC & modern system ops — Terraform + Ansible, GitOps, dan SDLC untuk operasi. Sampai jumpa di episode 25!