Setiap PoP Miliki Sel dari Bidang
Pecahan Voronoi
Tempatkan N titik (PoP: Titik Ketersediaan) pada bidang. Gambar batas wilayah sehingga setiap titik pada bidang diberikan kepada PoP terdekat. Hasilnya adalah diagram Voronoi: bidang membagi menjadi N sel, satu per PoP, masing-masing mengandung semua titik yang lebih dekat ke PoPnya daripada ke PoP lainnya.
Geometri CDN: setiap permintaan pengguna rute ke PoP terdekat. Setiap PoP melayani sel dari bidang geografis. Batas sel adalah bisector sejajar antara garis antara PoP tetangga.
Baca Geometrik:
- Menambah PoP mengurangi sel tetangga (& membuat sel baru)
- Menghapus PoP memaksa selnya didistribusikan ke tetangga (peningkatan kapasitas di tetangga)
- Pengguna dekat batas sel mungkin beralih antara PoP saat pengaturan beban berubah
- Gagalnya satu PoP memperbesar setiap sel tetangga selama down
Konsekuensi Operasional: saat PoP gagal, beban tidak menghilang; itu bermigrasi ke PoP tetangga. Jika tetangga diukur hanya untuk sel normal mereka, lonjakan tersebut membuat mereka berikutnya (gagal PoP berturutan). CDN yang matang menyediakan penyedia yang diukur dengan mempertimbangkan lonjakan kegagalan tetangga.
! Sel Voronoi di sekitar PoP; satu PoP gagal memperbesar sel tetangga
Persamaan Segitiga yang Tidak Bisa Dikalahkan
Fisika Menetapkan Lantai
Cahaya bergerak dengan kecepatan ~300.000 km/s di vakum. Dalam kabel, sekitar 200.000 km/s karena indeks bias refraktif. Artinya:
- 1.000 km kabel = ~5 ms satu arah = ~10 ms perjalanan balik
- Pantai ke pantai AS (~5.000 km) = ~50 ms RTT minimum
- AS ke Eropa (~8.000 km) = ~80 ms RTT minimum
- Antipodal (setengah lingkaran dunia) = ~200 ms RTT minimum
Ini adalah lantai. RTT sebenarnya selalu lebih besar (saluran hop, switching, antrian, kepadatan). Tidak ada aplikasi yang dapat lebih cepat dari batas fisika.
Trapesium Sama Sisi
Untuk tiga node A, B, C, trapesium sama sisi mengatakan d(A,C) <= d(A,B) + d(B,C): jalur langsung lebih pendek (atau sama) dengan jalur tidak langsung.
Bacaan Jaringan: jika layanan Anda melewati A -> B -> C daripada A -> C secara langsung, latency-nya setidaknya sama dengan jumlah dua sisi latensi. Sering kali lebih banyak karena pengolahan di B.
Bacaan Arsitektural: setiap indirection (proxy, load balancer, CDN hop) menambahkan setidaknya satu sisi ke latency yang dirasakan pengguna. CDN menguntungkan karena membuat sisi pengguna lebih pendek (PoP lebih dekat dari asal), meskipun jumlah hop total naik.
Penguncian Multi-region: layanan yang membaca dari region A tetapi menulis ke region B mengakibatkan latency A-to-B pada setiap tulisan. Jika A & B berjarak 100 ms, setiap tulisan membutuhkan >= 100 ms minimum. Basis data yang direntangkan membayar lantai ini setiap kali.
Bayar Lantai
Layanan berjalan di dua region: US-East (us-east-1) & EU-West (eu-west-1). Kedua region sekitar 5.500 km jauh. Layanan memiliki basis data primer di US-East. Pengguna EU memiliki permintaan mereka dipenuhi oleh backend EU-West, tetapi setiap tulisan membutuhkan panggilan kembali ke primary US-East.
Desain Kapasitas Geografis
Sinthesis
Anda sekarang dapat membaca sel tunggal Voronoi sebagai tangkapan PoP, menghitung lantai kecepatan cahaya, dan menerapkan kurva antrian di tingkat proxy.
Terapkan semuanya.
Sebuah tim merencanakan penutupan CDN untuk layanan yang memiliki pengguna di tiga benua: Amerika Utara (60% pengguna), Eropa (30%), Asia (10%). Mereka memiliki anggaran untuk 6 PoP. Setiap PoP dapat melayani sel tetap dengan penggunaan 70% tanpa melintasi lutut kurva antrian.
Menutup Pelajaran Tambahan
Menutup Pelajaran Tambahan
Anda telah menyelesaikan semua lima pelajaran geometri-* tambahan:
- Proxies & Origins: grafik terarah, hitungan langkah, fan-in / fan-out, pengalihan
- Stateless Horizontal Scaling: Hukum Little sebagai area, kurva antrian & lututnya
- Ingress & Egress Separation: struktur bipartite, penghapusan titik potong, toleransi partisi
- Failure Modes & Blast Radius: sentralitas antara, potongan minimum, diameter
- Observability & Capacity (ini): sel PoP Voronoi, lantai segitiga kecepatan, desain kapasitas geografis
Barisan utama: sistem distribusi memiliki struktur geometris. Setiap arsitektur adalah grafik. Setiap lantai kecepatan adalah segitiga kesamaan. Setiap keputusan kapasitas adalah kurva dan lututnya. Setelah Anda melihat geometri, keputusan operasional mengikutinya.
Dengan kombinasi lima pelajaran utama (cs_distsys_*), Anda memiliki model mental kerja dari sistem distribusi web-skala dan disiplin grafik-teoretis untuk berpikir tentangnya.
Tugas yang bagus.