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

un

konuk
1 / ?
derslere geri dön

Giriş ve Çıkış Ayrık Kümeler Olarak

Ağ Mimarisinde İki Parçalı Grafikler

Bir iki parçalı graf, düğümleri iki kümeye ayırır ve kenarlar yalnızca kümeler arasında izin verilir (asla bir küme içinde değil).

Ağ sınırlarının doğal bir iki parçalı yapısı vardır:

- Giriş tarafı: Bir tarafta dış istemciler, diğer tarafta dahili hizmetler. Kenarlar: Giren dış istekler, çıkan dahili yanıtlar.

- Egress tarafı: Bir tarafta dahili servisler, diğer tarafta harici varış noktaları. Kenarlar: Giden çağrıları başlatan dahili servisler, geri dönen harici yanıtlar.

Asimetri:

- Ingress: Kaynak kümesi sınırsızdır (internet üzerindeki herkes). Varış noktası kümesi küçüktür (birkaç servis). Hacim kullanıcılarla ölçeklenir.

- Egress: Kaynak kümesi küçüktür (birkaç dahili servis). Varış noktası kümesi sınırlıdır (birkaç bilinen ortak). Hacim dahili aktiviteyle ölçeklenir.

Tek kutulu tasarım, her iki ikili (bipartite) yarısını da tek bir düğüm üzerinden çökertir. Bu düğümün hem dışarıdan (ingress) hem de içeriden (egress'in ters yönü) fan-in'i vardır. Düğümün yükü = her iki tarafın toplamı.

Ayrık tasarım, her iki ikili (bipartite) yarısını ayrı düğümlerde korur. Her düğüm, uygun ölçekleme eksenine sahip bir rolü işler.

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

Küçük bir SaaS için ikili (bipartite) grafiği çizin: 5 harici müşteri son noktası (giren istekler gönderen), 3 dahili servis (arka uçlar) ve 4 harici ortak API'si (giden yönde çağrılan). Hangi kenarların ingress ikili yarısına, hangilerinin egress ikili yarısına ait olduğunu belirleyin. Dahili servislerden biri başarısız olursa graf bağlantılılığının ne olacağını tahmin edin.

Bölünmeden Önce: Her Yerde Bir Kesme Tepe

Tek Kutu: Her Şeyi Bir Tepe Tutuyor

Bölünmeden önce, her harici/içerik çifti arasında tek bir vekil kutusu (proxy box) bulunur. Grafik terimleriyle bu, yüksek dereceli bir kesme noktasıdır (cut vertex): kaldırılması, tüm istemcileri tüm arka uçlardan (backends) ve tüm iç servisleri tüm harici ortaklardan ayırır.

Bu düğümdeki bağlantı (connectivity) = 1'dir. Bu düğümü bozan herhangi bir olay (süreç çökmesi, ağ hatası, OOM kill), tüm bağımlı yolları keser.

Bölünmeden Sonra: Kesme Noktası İki Daha Hafif Düğümle Yer Değiştirir

Giriş (ingress) ve çıkış (egress) olarak bölünmek, tek bir düğüm olan yerde iki grafik düğümü oluşturur. Her düğüm artık yalnızca bir ikili (bipartite) yarıda yer alır:

- Giriş (Ingress) düğümü: harici-istemcilerden-iç-servislere ikili yarı için kesme noktası

- Çıkış (Egress) düğümü: iç-servislerden-ortaklara ikili yarı için kesme noktası

Saç tokası (hairpin) döngüsü geometrik olarak kaybolur: tek kutulu grafikte, hariciye dönük bir servise genel adres üzerinden ulaşmaya çalışan bir iç servisin, aynı düğümden iki kez geçmesi gerekiyordu (önce çıkış rolüyle dışarı, sonra giriş rolüyle içeri). Bölünmüş grafikte, geçiş iki farklı düğüme denk gelir.

Her taraf için bağlantı (connectivity) 1'de kalır, ancak iki kesme noktası bağımsız olarak değiştirilebilir. İkinci bir giriş (ingress) vekilinin eklenmesi, çıkış tarafını değiştirmeden giriş tarafındaki bağlantıyı 2'ye yükseltir.

Taraf Başına Kopyalama

Üretim filoları genellikle 2+ giriş (ingress) vekil sunucusu (HA) VE 2+ çıkış (egress) vekil sunucusu (HA) çalıştırır. Her taraf bağımsız olarak 2 bağlantıya (connectivity) ulaşır. Kapasite gerektiğinde her tarafta yatay olarak ölçeklenir.

Bir ekip şu anda tek bir vekil sunucu kutusu çalıştırıyor (her iki yön için de tek bir kesme tepe noktası). Bunu bir giriş + bir çıkış olarak ayırıyorlar, ardından daha sonra ikinci bir giriş (HA çifti) ekliyorlar ancak tek bir çıkışa bağlı kalıyorlar. Her adımda grafik bağlantılılığının (graph connectivity) nasıl değiştiğini adım adım izleyin ve 3. adımdan sonra hâlâ 1-bağlantılı (1-connected) olan ikili (bipartite) yarımı belirleyin (bu nedenle hâlâ en düşük toleranslı arıza modu olan).

Ağ Bölünmesine Dayanıklılık

Sentez

Artık ağ mimarilerini iki parçalı grafikler olarak okuyabilir, kesme köşelerini belirleyebilir ve her yarı için bağlantıyı izleyebilirsiniz.

Bunu ağ bölünmelerine uygulayın.

Bir ağ bölünmesi bir grafik kesimidir: bölünme boyunca kenarlar başarısız olur; her iki taraf çalışmaya devam eder ancak birbirine ulaşamaz.

Coğrafi olarak dağıtık bir sistem, tek bir veri merkezi arası bağlantıyla birbirine bağlı iki veri merkezine sahiptir. Giriş trafiği DC1 üzerinden girer; çıkış trafiği dış ortaklara DC1 üzerinden gider; bazı dahili hizmetler DC2'de yaşar ve durumlu işlemler için DC1'e geri çağırma yapar.

Veri merkezi arası bağlantı başarısız olursa ne olacağını tahmin edin: (1) her DC içinde hangi iki parçalı yarılar bağlı kalır, (2) hangi trafik akışları devam eder ve hangileri durur, ve (3) sistemin tam kesinti yerine sınırlı bozulma ile bu bölünmeye dayanıklı hale gelmesini sağlayacak bir mimari değişiklik önerin.

Eşlikçi Notlar

Eşlikçi Notlar

Bu geometri-dersi, Giriş ve Çıkış Ayrımı ana dersini bir iki parçalı (bipartite) graf analizi olarak yeniden formüle eder.

Sonraki eşlikçi ders olan geometry_of_failure_modes_and_blast_radius, aralık merkeziliğini (betweenness centrality) (darboğaz düğümlerini belirler) ve min-cut'ı (etki yarıçapını sınırlar) türetir.

Aferin.