Simpel Bottleneck Diidentifikasi Sebelum Lalu Lintas Tiba
Sentralitas Antara
Untuk setiap pasangan simpel dalam sebuah graf, terdapat jalur terpendek di antara keduanya. Sentralitas antara dari simpel N = fraksi dari semua jalur terpendek yang melewati N.
Simpel dengan sentralitas antara yang tinggi berada di jalur antara banyak pasangan simpel lain. Jika ia melambat, banyak aliran melambat. Jika ia gagal, banyak aliran terputus.
Pembacaan arsitektural: simpel dengan sentralitas antara tinggi adalah simpel yang harus mendapat perhatian ekstra dalam setiap tinjauan arsitektur. Mereka adalah bottleneck, SPOF, & komponen kritis kapasitas dalam satu kesatuan. Mereka cenderung menjadi:
- Penyedia DNS (di antara setiap klien & setiap layanan)
- Proksi ingress (di antara setiap klien & setiap backend)
- Primer database (di antara setiap backend & setiap bacaan)
- Layanan autentikasi (di antara setiap pengguna & setiap tindakan yang diotorisasi)
Deteksi tanpa pengukuran: topologi graf saja mengidentifikasi node dengan betweenness tinggi. Anda tidak memerlukan data lalu lintas; Anda memerlukan diagram arsitektur. Node yang berada di antara banyak pasangan node lainnya secara struktural sangat kritis.
Konsekuensi operasional: node dengan betweenness tinggi layak mendapat investasi yang tidak proporsional dalam (1) ruang kapasitas (capacity headroom), (2) redundansi, (3) observabilitas, & (4) playbook respons insiden.
Potongan Terkecil Memisahkan Potongan Terkecil
Teorema Min-Cut dalam Istilah Sederhana
min-cut antara dua node dalam graf = jumlah terkecil dari sisi (atau node) yang harus dihapus untuk memutus koneksi di antara keduanya.
Interpretasi operasional: min-cut membatasi radius ledakan (blast radius) terburuk. Jika min-cut antara 'clients' & 'database' adalah 1 sisi (satu proxy tunggal), maka kehilangan sisi tersebut akan memutus semua klien dari database. Jika min-cut adalah 5, Anda perlu kehilangan 5 komponen secara bersamaan untuk memutus koneksi sepenuhnya; sial, tetapi tetap terbatasi.
Merancang untuk radius ledakan: tingkatkan min-cut di setiap batas penting. Gunakan beberapa proxy; beberapa node cache; beberapa jalur jaringan antar DC. Setiap penambahan meningkatkan min-cut sebesar 1.
Pola bulkhead dalam istilah graf: partisi sumber daya menjadi sub-graf terpisah yang tidak berbagi min-cut satu sama lain. Kegagalan di dalam satu sub-graf tidak dapat menyebar ke yang lain karena sisi-sisi penghubungnya tidak ada.
Diameter Menetapkan Jarak Propagasi Kegagalan
Diameter graf = jalur terpendek terpanjang antara dua node mana pun.
Propagasi kegagalan: ketika sebuah node gagal & retry mengalir kembali, mereka menyentuh node upstream hingga jarak diameter. Sistem dengan diameter-3 (client -> proxy -> backend -> DB) berarti kegagalan DB memengaruhi 3 lapisan upstream dalam badai retry.
Implikasi: diameter yang lebih pendek = penahanan kegagalan lebih cepat tetapi juga konsentrasi node lebih tinggi. Setiap desain memiliki trade-off-nya masing-masing.
Menghitung Min-Cut untuk Arsitektur Nyata
Sebuah arsitektur: 1 DNS, 1 CDN, 3 reverse proxy, 12 replika backend, 1 DB primer.
Audit Mode Kegagalan melalui Metrik Graf
Sintesis
Anda sekarang dapat mengidentifikasi node dengan betweenness tinggi, menghitung min-cut di setiap batas, & memperkirakan jarak propagasi kegagalan melalui diameter.
Terapkan ketiga hal tersebut.
Sebuah sistem: 50 endpoint pelanggan -> 1 DNS -> 2 POP CDN -> 4 reverse proxy -> 16 replika backend -> { klaster DB (1 primer + 2 standby), klaster Redis (5 node), 3 API eksternal }.
Catatan Pendamping
Catatan Pendamping
Pelajaran geometri ini membingkai ulang pelajaran utama Failure Modes & Blast Radius melalui metrik graf (betweenness, min-cut, diameter).
Pendamping terakhir, geometry_of_observability_and_capacity, membahas sel Voronoi untuk tangkapan PoP CDN, batas kecepatan cahaya dari segitiga latensi, & kurva antrean yang ditinjau ulang di lapisan proxy.
Bagus sekali.