Mimari (IT)Sistem Mühendisi

Gezegen ölçeğinde bir yapılandırma yönetimi ve hizmet keşfi altyapısı tasarlayın; bu altyapı, parçalanmış ağ topolojileri boyunca kontrol düzlemi durumunun nedensel tutarlılığını garanti etmeli, dakikada milyonlarca geçici düğüm kaydı sürdürebilmeli ve alt saniyelik yakınsama sağlamalı; ayrıca güvenlik kritik yapılandırma güncellemeleri için Bizans hatalarına dayanıklı konsensüs uygularken bölgesel kontrol düzlemi bozulmaları sırasında patlama alanını izole etmelidir.

Hintsage yapay zeka asistanı ile mülakatları geçin

Sorunun Cevabı

Sorunun Tarihçesi

Bu mimari zorluk, Google, Amazon ve Meta gibi şirketlerde hiperskale altyapılar işletme sırasında ortaya çıktı; burada kontrol düzlemleri, milyonlarca geçici hesaplama örneği arasında milyarlarca yapılandırma girişini yönetmek zorundadır. Chubby veya ZooKeeper gibi erken sistemler güçlü tutarlılık sağladı ancak düğüm sayısı yüz binleri aştığında iletim darboğazlarıyla karşılaştı. Kubernetes benzeri orkestrasyon ile çok bölgeli aktif-aktif dağıtımları destekleme ihtiyacı ve kısmi ağ hatalarına tolerans gösterme azami tutarlılık modellerine doğru evrimi yönlendirdi.

Problem

Temel gerginlik, CAP teoremi kısıtlamalarını tatmin etmede yatmaktadır: güvenlik kritik güncellemeler (örneğin sertifika döngüleri) için lineerleşebilir bir tutarlılığı sağlamak ve bölgesel ağ parçalanmaları sırasında erişilebilirliği sürdürmek. Geleneksel tek kümeli etcd dağıtımları, milyonlarca düğüm birden bölgesel bir kesinti sonrası yeniden bağlandığında iletim sıcak noktaları ve tek bir hata noktası haline gelir. Ayrıca, Bizans hata toleransı, tehlikeye atılmış bölgesel kontrol düzlemlerinin kötü niyetli yapılandırmaları veri düzlemi düğümlerine yaymasını önlemek için gereklidir.

Çözüm

Yerel tutarlılık için Raft kullanan bölgesel konsensüs halkaları içeren hiyerarşik bir kontrol düzlemi mimarisi uygulayın, bölge boyutlu nihai tutarlılık için bir gossip-temelli anti-entropi protokolü aracılığıyla birbirine bağlıdır. Güvenlik kritik güncellemelerde, güvenlik güncellemelerinin kriptografik doğrulanması için global bir yeterlilik inceleme havuzunda sertleştirilmiş doğrulayıcı düğümler arasında Bizans Hatasına Dayanıklı (BFT) konsensüs (örneğin, Tendermint veya HotStuff) kullanılır. Veri düzlemi ajanları, değişiklikleri önlemek için Merkle ağaçları ile tabakalı önbellekleme ve titreşimli eksponensiyal geri çekilme yöntemleri uygular.

Yaşanmış Durum

Problem Tanımı

Küresel bir video akış platformunun altyapısını yönetirken, sıfır-gün güvenlik açığını gidermek için gerekli olan bir TLS sertifika döngüsünde kritik bir olayla karşılaştık. Platform, 50 bölgede beş milyon uç kıyı konteyneri yönetiyordu. Sertifika otoritesi yeni yetkilileri yayımladığında, her düğüm merkezi Consul kümesinden güncellemeleri aynı anda almaya çalıştı ve bu da kontrol düzlemini aşan bir kalabalık oluşturdu. Bu, zincirleme zaman aşımına yol açtı, yanlış-pozitif sağlık kontrolü hatalarını tetikledi ve gereksiz pod tahliyelerini başlattı, kullanıcıların %40'ı için akış kalitesinin düşmesine neden oldu.

Çözüm 1: Merkezi veri deposunun dikey ölçeklenmesi

etcd kümesini, bağlantı zirvesini emmek için NVMe depolama ile yüksek bellekli bare-metal örnekleri kullanacak şekilde yükseltmeyi düşündük. Bu yaklaşım, mimari değişikliklerde minimum sundu ve güçlü tutarlılık garantilerini korudu. Ancak, dikey ölçeklemenin sert fiziksel sınırları vardır ve devasa bir patlama alanı yaratır; merkezi küme başarısız olursa, tüm küresel altyapı aynı anda yapılandırma durumunu kaybederdi. Bu tür aşırı boyutlu kümelerin sabit durum operasyonları sırasında sürdürülmesi mali olarak olumsuzdu.

Çözüm 2: Tamamen merkeziyetsiz gossip protokolü

Diğer bir seçenek, merkezi kontrol düzlemini tamamen ortadan kaldırmak ve düğümlerin yapılandırma deltasını doğrudan değiştirdiği bir SWIM-temelli gossip protokolü kullanmaktı. Bu, tek hata noktalarını ortadan kaldırdı ve düğüm sayısıyla doğrusal olarak ölçeklendi. Ne yazık ki, güvenlik güncellemeleri için nedensel tutarlılığı sağlamak neredeyse imkânsız hale geldi ve yapılandırma değişiklikleri için yakınsama süresi normal yük altında 30 saniyeyi aştı. Ayrıca, gossip protokolleri, güçlü kimlik doğrulaması olmadan Sybil saldırılarına açıktır ve bu da sertifika dağıtımı için güvenlik riskleri oluşturur.

Çözüm 3: Bölgesel parçalarla hiyerarşik federasyon

Sonunda, yerel topoloji için otoriter parçalar olarak hareket eden bölgesel Raft kümeleri ile desteklenen, güvenlik güncellemelerinin kriptografik doğrulanması için global bir BFT katmanı olan üç katmanlı bir sistem mimarlığı inşa ettik. Uç düğümler, yerel BoltDB önbellekleri ile bölgesel kontrol düzlemine kalıcı bağlantılar sürdürdü ve yukarıdan gelen baskı algılandığında 100ms ile 30s arasında rastgele offsetlerle titreşimli eksponensiyal geri çekilme önlemleri aldı. Bölgesel kümeler, yalnızca değişen yapılandırma anahtarlarını senkronize etmek için Merkle ağaçları kullanarak mTLS korumalı gRPC akışları aracılığıyla haberleşti.

Seçilen çözüm ve sonuç

Hiyerarşik federasyon yaklaşımını seçtik çünkü bu, patlama alanını bireysel bölgelere sınırladı ve her bir parça için kanaryalı dağıtımlar kullanarak sertifika dağıtımlarını kademeli olarak kısıtlamamıza izin verdi. Tam titreme ile istemci taraflı geri çekilme ve devre kesici olarak hareket eden bölgesel Envoy aracıları uygulayarak, sonraki döngüler sırasında kontrol düzlemindeki yükü %95 oranında azalttık. Sistem, dakikada 10 milyon düğüm kaydı sürdürüyor ve kritik güvenlik güncellemelerini 800 milisaniye içinde küresel olarak yayıyor.

Adayların Sıklıkla Gözden Kaçırdığı Noktalar

Kütlevi istemci yeniden bağlantıları sırasında kalabalık senaryolarını nasıl önlersiniz ve merkezi bir koordinasyon darboğazı eklemeden nasıl çözüm bulursunuz?

Adaylar genellikle sunucuda basit oran sınırlama önermektedir; bu, yalnızca hata durumunu istemci tarafındaki zaman aşımına ve yeniden deneme fırtınalarına kaydırır. Doğru yaklaşım, istemcide tam titreme ile rastgele eksponensiyal geri çekilme uygulamak, bölgesel proxy'lerde AIMD (Additive Increase Multiplicative Decrease) oran sınırlaması ile birleştirerek durum sağlamaktır. İstemciler TTL ile en son bilinen iyi yapılandırmayı önbellekte tutmalı ve kontrol düzlemi kullanılamadığında bozulmuş modda çalışmaya devam etmelidir; CRDT-temelli çelişki çözümü ile yerel durum güncellemeleri yapmalıdır. Ayrıca, yükü arttırmadan gecikme süresini iyileştiren Hedge isteklerini dağıtarak farklı bölgesel uç noktalara tekrar eden istekler göndermek faydalıdır; sağlama işlemleri idempotent olduğunda bu işlem işe yarar.

Dünya genelinde dağıtılmış bir yapılandırma sisteminde Bizans hatalarını nasıl tespit edip hafifletirsiniz; bölgesel yöneticilerin tehlikeye atılmış olabileceği durumlar için?

Çoğu aday, mTLS kimlik doğrulamasına odaklanmakta ancak yapılandırma yüklemleri için Bizans Hatasına Dayanıklı konsensüs ihtiyacını göz ardı etmektedir. Çözüm, global validasyon katmanı için bir BFT durum makinesi çoğaltması (örneğin, Tendermint) gerektirir; burada coğrafi olarak dağıtılmış doğrulayıcıların bir süper çoğunluğu (2f+1) yapılandırma özeti olan imzaları kriptografik olarak imzalamalıdır. Veri düzlemi düğümleri, tarihsel yapılandırmaların bir Merkle ağacını tutmalı ve müdahale tespit etmek için gossip protokollerini kullanarak hafif anti-entropi kontrolleri gerçekleştirmelidir. Ayrıca, farklı yasal yargı alanlarında donanım güvenlik modüllerinin (HSM) gerektiği çok imzalı şemalar uygulanması, tek hata noktalarının önlenmesine yardımcı olur.

Bölgesel kontrol düzlemleri uzun süreli ağ parçalanmalarıyla izole edildiğinde hizmet keşfi için nedensel tutarlılığı nasıl sağlarsınız?

Adaylar genellikle nedensel tutarlılığı, nihai tutarlılık ile karıştırır ve son yazma kazanma (LWW) çelişki çözümlemeleri önerir; bu, kritik bağımlılıkların düşmesine neden olur. Doğru çözüm, her hizmet kayıt olayına eklenen vektör saatleri veya sürüm vektörleri kullanır ve böylece düğümlerin bölünme iyileştirilmesi sırasında eş zamanlı güncellemeleri tespit etmeleri sağlanır. Bölgesel kontrol düzlemleri, bölünmeler içerisinde güncellemeleri etkin şekilde yaymak için nedensel yayın uygulamalıdır; bölünmeler iyileştirildiğinde, düğümler farklı tarihleri tanımlamak için Merkle ağaçları karşılaştırmaları yapmalı ve eklemeleri kaldırmalara göre koruyacak alan özel bir birleştirme işlevi (hizmet kayıtları için OR-Set gibi) uygulamalıdır.