Performa dan keandalan bukan hasil dari tebak-tebakan, melainkan dari pengujian dan target yang terukur; di episode ini kalian melakukan load testing dengan k6, mendefinisikan SLO dan error budget, mengenal chaos engineering dasar, lalu memperbaiki sistem berdasarkan data

Sistem yang bisa berjalan bukan berarti sistem yang andal. Berapa banyak pengguna yang bisa ditangani? Apa yang terjadi saat traffic melonjak lima kali lipat? Kapan sebuah deployment perlu dibatalkan? Jawaban pertanyaan ini tidak bisa ditebak dari dashboard — ia ditemukan dengan pengujian dan target yang terukur.
Episode 25 menggabungkan tiga disiplin yang menjadi jantung praktik SRE: load testing untuk membuktikan kapasitas, SLO dan error budget untuk mendefinisikan keandalan secara matematis, dan chaos engineering untuk menemukan kegagalan sebelum pengguna yang menemukannya. Di akhir episode, kalian menguji sistem nyata dan memperbaikinya berdasarkan data.
k6 adalah tool load testing modern berbasis JavaScript — ringan, bisa dijadikan kode, dan terintegrasi dengan CI. Skrip test meniru perilaku pengguna nyata:
import http from "k6/http"
import { check, sleep } from "k6"
export const options = {
stages: [
{ duration: "2m", target: 20 }, // naik ke 20 pengguna
{ duration: "5m", target: 50 }, // tahan di 50 pengguna
{ duration: "2m", target: 0 }, // turun pelan-pelan
],
thresholds: {
http_req_duration: ["p(95) < 500"], // 95% request di bawah 500ms
http_req_failed: ["rate < 0.01"], // error maksimal 1%
},
}
export default function () {
const res = http.get("https://app.example.com/api/users")
check(res, { "status 200": (r) => r.status === 200 })
sleep(1)
}k6 run load-test.js
k6 run --out=cloud load-test.jsPerhatikan bagian thresholds: load test bukan sekadar "menembak sebanyak mungkin", tetapi menguji terhadap target. Jika p(95) melebihi 500ms, test gagal — dan kegagalan itu adalah data untuk perbaikan.
Tip
Tiga jenis load test yang wajib dikenal: smoke (sedikit pengguna, verifikasi alur benar), load (traffic normal yang diprediksi, cek target SLO), dan stress (di atas normal, cari titik patah). Jalankan di environment staging yang representatif — hasilnya tidak berguna jika environment-nya berbeda dari produksi.
SLO (Service Level Objective) adalah target keandalan yang disepakati, dinyatakan secara matematis. Bentuk paling umum: persentase ketersediaan dalam periode tertentu.
Error budget adalah toleransi kegagalan yang disepakati — kebalikan dari SLO:
SLO 99.9% / bulan → error budget = 0.1% waktu = ±43 menit downtime/bulan
SLO 99.95% / bulan → error budget = 0.05% waktu = ±22 menit downtime/bulanLogika error budget mengubah cara tim mengambil keputusan:
Ini menghapus perdebatan subjektif "berapa lama downtime masih oke?" — jawabannya ada di angka, disepakati bersama bisnis:
apiVersion: monitoring.googleapis.com/v1
kind: Slo
metadata:
name: app-availability
spec:
service: myapp
goal: 99.9
serviceLevelIndicator:
ratio:
good_total_ratio:
good_service_filter: 'status_code: 200'
total_service_filter: 'service: myapp'SLO diukur terus-menerus; jika meleset, inilah alarm yang paling layak dibunyikan — lebih penting dari alert per-instan.
Chaos engineering adalah disiplin menguji sistem dengan membuat kegagalan yang disengaja, secara terkendali, untuk menemukan kelemahan. Prinsip Netflix yang asli: "jangan menunggu pengguna menemukan kegagalan kalian".
Dasar-dasar yang aman untuk pemula:
# Hipotesis: hapus satu replica, app tetap melayani request
kubectl scale deploy/myapp --replicas=2
kubectl delete pod myapp-<id> --wait=false
# Ukur: apakah SLO 99.9% terjaga selama 10 menit?
# Temuan umum: client tanpa retry gagal saat node matiTools: LitmusChaos dan Chaos Mesh menyediakan eksperimen terkelola (pod kill, network delay, stress CPU) langsung di Kubernetes. Mulai dari gangguan terkecil dan otomasikan secara bertahap.
Alur lengkap yang bisa kalian jalankan hari ini:
p(95) < 500ms).# Sebelum: p(95)=820ms, error rate 2.3%
# Sesudah (add 2 replica + cache header): p(95)=340ms, error rate 0.2%Inti yang harus dibawa pulang:
Di episode 26 selanjutnya kita membahas Ekosistem & Tren Modern 2026 — platform engineering sebagai default, GitOps yang umum, AI-assisted ops, DevSecOps embedded, dan multi-cloud/K8s di mana-mana, semua diukur dengan DORA metrics. Semua yang kalian pelajari dari episode 0 sampai 25 akhirnya membentuk gambaran besar.