English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

tamu
1 / ?
kembali ke pelajaran

Inbound & Outbound sebagai Himpunan yang Berbeda

Graf Bipartit dalam Arsitektur Jaringan

Sebuah graf bipartit membagi simpul menjadi dua himpunan, dengan sisi hanya diizinkan antara himpunan (tidak pernah di dalam satu himpunan).

Batas jaringan memiliki struktur bipartit alami:

- Sisi ingress: klien eksternal di satu sisi, layanan internal di sisi lain. Sisi: permintaan eksternal yang masuk, respons internal yang keluar.

- Sisi egress: layanan internal di satu sisi, tujuan eksternal di sisi lain. Sisi (edges): layanan internal yang memulai panggilan keluar, respons eksternal yang kembali.

Asimetri:

- Ingress: himpunan sumber tidak terbatas (siapa pun di internet). Himpunan tujuan kecil (beberapa layanan). Volume berskala dengan pengguna.

- Egress: himpunan sumber kecil (beberapa layanan internal). Himpunan tujuan terbatas (beberapa mitra yang diketahui). Volume berskala dengan aktivitas internal.

Desain kotak tunggal meruntuhkan kedua belahan bipartit melalui satu node. Node tersebut memiliki fan-in dari luar (ingress) DAN fan-in dari dalam (arah terbalik egress). Beban node = jumlah dari kedua sisi.

Desain terpisah mempertahankan kedua belahan bipartit di node terpisah. Setiap node menangani satu peran dengan sumbu penskalaan yang sesuai.

Bipartite ingress & egress: separate node sets, separate cut vertices

Gambarkan graf bipartit untuk SaaS kecil: 5 endpoint pelanggan eksternal (mengirim permintaan masuk), 3 layanan internal (backend), & 4 API mitra eksternal (dipanggil keluar). Identifikasi sisi mana yang termasuk dalam belahan bipartit ingress & sisi mana yang termasuk dalam belahan bipartit egress. Prediksi apa yang terjadi pada konektivitas graf jika salah satu layanan internal gagal.

Sebelum Terpisah: Vertex Potong di Mana-Mana

Kotak Tunggal: Satu Vertex Menahan Segalanya

Sebelum pemisahan, satu kotak proxy tunggal berada di antara setiap pasangan eksternal/internal. Dalam istilah graf, ini adalah vertex pemotong (cut vertex) berorde tinggi: penghapusannya memutus semua klien dari semua backend DAN semua layanan internal dari semua mitra eksternal.

Konektivitas pada node ini = 1. Apa pun yang mengganggu node ini (crash proses, gangguan jaringan, OOM kill) akan memutus setiap jalur yang bergantung.

Setelah Pemisahan: Vertex Pemotong Diganti oleh Dua Node yang Lebih Ringan

Pemisahan menjadi ingress + egress menciptakan dua node graf di tempat sebelumnya hanya ada satu. Setiap node kini hanya berada di satu sisi bipartit:

- Node Ingress: vertex pemotong untuk sisi bipartit dari klien eksternal ke layanan internal

- Node Egress: vertex pemotong untuk sisi bipartit dari layanan internal ke mitra

Loop hairpin hilang secara geometris: dalam graf kotak tunggal, layanan internal yang mencoba mencapai layanan yang menghadap eksternal melalui alamat publik memerlukan penelusuran vertex yang sama dua kali (keluar melalui peran egress, lalu masuk melalui peran ingress). Dalam graf yang terpecah, penelusuran tersebut mengenai dua vertex yang berbeda.

Konektivitas per sisi tetap pada 1, tetapi kedua vertex pemotong dapat diganti secara independen. Menambahkan proxy ingress kedua meningkatkan konektivitas sisi ingress menjadi 2 tanpa mengubah sisi egress.

Replikasi per Sisi

Fleet produksi sering menjalankan 2+ proxy ingress (HA) DAN 2+ proxy egress (HA). Setiap sisi mencapai konektivitas 2 secara independen. Kapasitas diskalakan secara horizontal di setiap sisi sesuai kebutuhan.

Sebuah tim saat ini menjalankan satu kotak proxy (satu titik potong untuk kedua arah). Mereka membaginya menjadi satu ingress + satu egress, kemudian menambahkan ingress kedua (pasangan HA) tetapi tetap mempertahankan satu egress tunggal. Telusuri bagaimana konektivitas graf berubah pada setiap langkah, & identifikasi setengah bipartit yang masih 1-terhubung setelah langkah 3 (yang dengan demikian masih menjadi mode kegagalan dengan toleransi terendah).

Toleransi Partisi Jaringan

Sintesis

Anda kini dapat membaca arsitektur jaringan sebagai graf bipartit, mengidentifikasi simpang pemotong (cut vertices), & melacak konektivitas per sisi.

Terapkan ini pada partisi jaringan.

Partisi jaringan adalah pemotongan graf (graph cut): tepi (edges) yang melintasi partisi gagal; kedua sisi tetap beroperasi tetapi tidak dapat saling menjangkau.

Sistem yang didistribusikan secara geografis memiliki dua pusat data (datacenter) yang dihubungkan oleh satu tautan antar-DC (inter-DC link). Lalu lintas masuk (ingress) masuk melalui DC1; lalu lintas keluar (egress) melewati DC1 menuju mitra eksternal; beberapa layanan internal berada di DC2 & memanggil kembali ke DC1 untuk operasi yang berstatus (stateful).

Prediksikan apa yang terjadi jika tautan antar-DC gagal: (1) sisi bipartit mana yang tetap terhubung di dalam setiap DC, (2) aliran lalu lintas mana yang berlanjut & mana yang berhenti, & (3) usulkan satu perubahan arsitektural yang akan memungkinkan sistem menoleransi partisi ini dengan degradasi terbatas (bounded degradation) alih-alih gangguan total (full outage).

Catatan Pendamping

Catatan Pendamping

Pelajaran geometri ini membingkai ulang pelajaran utama Pemisahan Ingress & Egress sebagai analisis graf bipartit.

Pendamping berikutnya, geometry_of_failure_modes_and_blast_radius, menurunkan sentralitas betweenness (mengidentifikasi node bottleneck) & min-cut (membatasi radius ledakan).

Bagus sekali.