Kenar düğümleri ve bölgesel mantık
Neden kenar düğümleri ve bölgesel mantık
Edge, kullanıcıya yakın bir POP'lar (varlık noktaları) ve bölgesel bilgi işlem katmanıdır. Gecikmeyi azaltır, kaynağı boşaltır, ön işleme yapar ve yerel kuralları (uyumluluk, fiyatlar, ödemeler, içerik, dil) uygular. Bölgesel mantık, belirli bir talebi ele almak için ülke/eyalet/sağlayıcı/kanal ve mevcut SLO'yu dikkate alan bir dizi "nerede/nasıl" çözümüdür.
Temel hedefler:- Yakınlık ve önbellekler nedeniyle p95/p99 gecikme süresi azalır.
- Yerelleştirme: dil, para birimi, görüntüleme/engelleme kuralları.
- Esneklik: Küresel olay olmadan bölgesel feilovers.
- Maliyet: Başlangıç için daha az trafik, kolay görevler için bölgelerde daha ucuz CPU.
Temel topolojiler
1. Yalnızca POP (CDN): önbellek ve basit kenar komut dosyaları (kimlik doğrulama, AB bayrakları, coğrafi bloklar).
2. Bölgesel kümeler: L7-proxy + hesaplama (sunucusuz/kapsayıcılar) + yerel mağazalar (KV/önbellek).
3. Multi-Region Active-Active: Durum senkronizasyonu olan çoklu bölgeler (olay akışı, çoğaltma).
4. Hub-and-Spoke: Ağır hizmetler ve birleşik veri gerçeği için bölgeler + merkezi merkez konuştu.
Yönlendirme: Anycast BGP, GeoDNS, gecikme tabanlı yönlendirme, ağırlıklı/kanarya.
Kodun nerede çalıştırılacağı
Kenar filtresi (L7): WAF, oran sınırı, bot filtreleri, yönlendirmeler, coğrafi bloklar, kanarya yönlendirmesi.
Kenar hesaplama: kolay iş mantığı (oluşturma, canonization isteği, ön doğrulama), kişiselleştirme/özellik bayrakları, önbelleğe alınmış toplamalar.
Bölge hesaplama: durumsal hizmetler, ödeme ağ geçitleri, KYC, yerelleştirme gereksinimleri olan veriler.
Köken/çekirdek: ana veriler, işlemler, AI-ağır boru hatları, raporlama.
Kural: Kullanıcıya ne kadar yakın olursa, mantık o kadar kısa ve güvenli olur (kritik yan etkiler olmadan).
Bölgesel yönlendirme (desenler)
Geo + SLA: Limitleri ve yükü dikkate alarak en yakın sağlıklı bölgeyi seçin.
Ağırlıklı/Kanarya: Yeni sürümü belirli ülkelerde %1-5 oranında yayınlıyoruz.
Uyumluluk bilinci: PII/ödemelerle trafik - yalnızca izin verilen yetki alanlarına.
Yapışkan: Kullanıcılar, oturum atlamasını azaltmak için çerez/iddia yoluyla bölgeye "yapıştırılır".
yaml strategy:
- if: user. country in ["DE","FR","IT"] and service=="checkout"
route: "eu-central"
reason: "data_residency"
- if: latency_to("eu-west") - latency_to("eu-central") > 25ms route: "eu-west"
reason: "latency_better"
- canary:
region: "eu-central"
weight: 0. 03 match: path_prefix("/api/v2/")
- default: nearest_healthy()
Veri ve tutarlılık
Ortak bir model read-local/write-global şeklindedir:- Yerel okuma: kullanıcının yanındaki önbellekler ve kopyalar - düşük gecikme süresi.
- Küresel taahhüt: girişler "gerçeğin kaynağına" gider (ana/olay günlüğü).
- Projeksiyonlar: Bölgeler materyalize gösterimler tutar; Güncellemeler eşzamansız olarak yetişir.
- Cache-aside: on miss - orijinden okuma, önbelleğe yazma.
- Write-through: kayıtlar önbellekten geçer, sonra depoya gider.
- CRDT/OT: Sıkı sipariş olmadan işbirlikçi/çevrimdışı senaryolar için.
- Versioned yazıyor: Yarışı önlemek için iyimser rekabet ('versiyon/etag').
- TTL eskime toleransına göre seçilir; Kritik güncellemeler için anahtarla geçersiz kılma.
- Kısayol tuşları için - bayat-while-revalidate.
Protokoller ve kanallar
HTTP/3 (QUIC): Kaynak için 0-RTT en iyi paket kaybı/dolaşım davranışı.
Tarayıcı için gRPC-Web; Düzenli gRPC - mobil/arka uçlarda.
Pooches için WebSocket/SSE; IoT/kenar ajanları için MQTT.
TCP/TLS mutex: TLS 1. 3, ALPN; HSTS tarafından zorlanan; PFS.
Bölgeye göre kişiselleştirme ve özellikler
Özellik bayrakları: kenarında karar verdi (çerez/Geo/IP/iddialar).
A/B ve diff ayarları: fiyat, bonuslar, metinler, yere ve yasaya bağlı olarak promosyon.
Degradation: Yukarı yönlü degradasyon sırasında yerel önbelleklere geri dönüş ve basitleştirilmiş yanıtlar.
js const caps = getCapabilities(req. country, req. ua);
const flags = getFlags(req. country, req. userTier);
if (!caps.supportsV2) {
rewritePath("/api/v1/");
}
if (flags. blockCategory. includes(req. path)) {
return deny(451, "Unavailable for legal reasons");
}
addHeader("X-Region", currentRegion());
Uyumluluk ve veri yerelleştirme
Veri yerleşimi: PII/PCI yalnızca belirli bölgelerde saklanabilir/işlenebilir.
Geo-fencing: Ülkelerde/eyaletlerde içerik/özelliklerin yasaklanması.
Bölgesel ödemeler: Uygun PSP/yöntemlere yönlendirme (SEPA, PIX, PayID, vb.).
Denetim: İşlem bölgesini, içerik sürümünü ve işe yarayan kuralları yakalayın.
Kural: veri koddan daha az seyahat eder - mantığı veriye yaklaştırmak, veriyi mantığa taşımaktan daha iyidir.
Sınırda güvenlik
WAF/bot koruması: doğrudan POP'da imzalar + davranışsal filtreler.
Servis hizmeti için mTLS; JWT/OIDC - uç üzerinde doğrulama (kısmen), yetkilendirme - bölgede.
Hız limitleri: IP/ASN/belirteç başına, sürgülü pencere + belirteçler.
DDoS: Anycast ağları, syn filtreleri, otomatik temizleyiciler.
Content Security Policy/Headers - Sabit varsayılan ilkeler.
Sırlar: Bölgesel anahtarlarla KMS; Uzun süreli sırları kenar kodunda saklamayın.
Güvenilirlik ve feilovers
Bölgesel sağlık: Bozulmuş bölgelerin otomatik olarak dışlanması.
En yakın başarısızlık: düşme durumunda - gerekirse işlevsellikte bir azalma ile komşu sağlıklı bir bölgeye transfer.
Salt okunur mod: başlangıç (önbellek + kuyruklar) kullanılamasa bile görüntüleme ve bazı işlemlere izin verir.
DLQ/otopark: yerel mesaj park ve gecikmeli teslimat.
Gözlemlenebilirlik (ne ve nasıl ölçüleceği)
Gecikme: p50/95/99 on hop 'ax: kliyent> kenar, kenar - bölge, bölge - orijin.
Önbellek isabetleri: hit/miss, stale-serve, invalidations/sn.
Yönlendirici çözümler: bölgeye/kurallara göre dağıtım, kanarya payı.
Hatalar: ülkeye/ASN'ye göre, WAF kilit tipi, 4xx/5xx.
Sürümler: Hangi özellik/içerik sürümünün nerede aktif olduğu.
Maliyet: çıkış, compute-min, origin çağrıları.
İzleme: Yayılma alanlarına/günlüklere 'trace _ id', 'region', 'edge-pop', 'user-country', 'feature-flags' ekleyin.
Dağıtım ve geçişler
Ülke başına kanarya/POP: dar yayın kanalları.
Bölgelerde Mavi/Yeşil, kullanıcıya cevap vermeden gölge trafik.
Sipariş: Önce POP komut dosyaları (iki sürümle uyumlu), daha sonra bölgesel hizmetler, daha sonra orijin.
Şemalar: genişlet - göç et - sözleşme; Events - dual-emit 'v1'/' v2'.
Test etme
Geo-emulation: IP/ASN/latency substitution ile komut dosyalarını çalıştırma.
Bölgeye göre kaos: bir RAP/bölgeyi devre dışı bırakma, bozulmayı test etme.
Önbellek doğruluğu: engellilik testleri/TTL/tutarlılık.
Yasal süitler: ülkeye göre kural kontrolleri (beyaz liste/kara liste), uçtan uca e2e.
Yük: Belirli ülkeler/ağlar için sentetikler (mobil/3G/dolaşım).
Maliyet ve tasarruf
Sağ önbellek ve sıkıştırma ile orijin çıkışını azaltın.
Ucuz hesaplamayı yalnızca temiz/kısa işlevler için kenara getirin.
"$/1000 taleplerini" bölgeye göre ölçün ve TTL/stratejileri inceleyin.
Antipatterns
Açık bir gerçek kaynağı olmadan kenarda durumsal mantık.
Bölgeye yapışmadan küresel oturumlar - sıçramalar ve yarışlar.
POP aracılığıyla idempotency ve ofset sabitleme olmadan kritik kayıtlar.
Veritabanı güncellemeleri olmadan ham Geo-IP kuralları - yanlış kilitler/sızıntılar.
Çalışma zamanı önbelleği engeli yok - kullanıcılar "hayaletleri" görüyor.
"Tüm dünya için'bir bölge: basitlikte kazanır, SLO/uyumlulukta kaybedersiniz.
Mini örnekler
1) Bozulma ile kenar önbellek
pseudo onRequest(req):
key = cacheKey(req. path, req. query, req. country)
if cache. exists(key): return cache. get(key). withHeader("X-Cache","HIT")
resp = fetchNearestRegion(req, timeout=400ms) or staleIfAvailable(key)
cache. set(key, resp, ttl=60s, stale_while_revalidate=120s)
return resp
2) Bölgesel bilinçli sınırlayıcı
pseudo bucket = rateLimiter(ip=req. ip, region=currentRegion(), scope="login")
if! bucket. allow(): return 429
3) Coğrafi güvenlik
pseudo if req. country in bannedCountries and path. startsWith("/realtime"):
return 451 // legal block
Uygulama kontrol listesi
- POP/regions, routing policy defined (Anycast/GeoDNS/latency/weighted).
- Veri haritası: Sınırda ne önbelleğe alınabilir, bölgede ne kalmalıdır.
- Tutarlılık stratejileri: okuma-yerel/yazma-küresel, TTL, engellilik, sürümleri.
- Uyumluluk: veri ikameti, coğrafi kurallar, işleme bölgesinin denetimi.
- Güvenlik: WAF, mTLS, limitler, sırlar, DDoS, CSP.
- Gözlemlenebilirlik: bölgesel etiketlerle metrikler/izler/günlükler.
- Dağıtım: POP/ülke başına kanarya, gölge, haddeleme düzeni.
- Testler: jeo-emülasyon, kaos bölgesi, önbellek doğruluğu, yasal süitler.
- Ekonomi: isabet oranı hedefleri, $/1000 req, çıkış, CPU dakikaları.
- Dokümantasyon: bölgesel mantık ana hatları, karar tabloları, olay prosedürü.
SSS
Sınırda ne yapmalı ve bölgede ne yapmalı?
Kenarda - kısa temiz işlevler (yönlendirme, önbellek, bayraklar, basit kişiselleştirme). Bölgede - stateful/işlemler/PII/ödemeler.
Bölgeler arasında durum nasıl senkronize edilir?
Olay günlüğü ve projeksiyonlar aracılığıyla; Kritik olarak katı değişmezler için - global loci/sürümleri olan tek bir yazma bölgesi.
HTTP/3 ihtiyacım var mı?
Evet, mobil/dolaşım için, kuyruk gecikmesini önemli ölçüde azaltır ve retrai'yi geliştirir.
Veri yerelleştirme ile nasıl yaşanır?
Verileri sınıflara ayırın (public/restricted/sensitive). Hassas - sadece bölgede; Edge belirteçleri/meta verileri görür.
Toplam
Kenar düğümleri ve bölgesel mantık, altyapıyı uyarlanabilir bir ağa dönüştürür: kullanıcıya yakın, yasalara duyarlı ve arızalara karşı dayanıklı. Basit uç bilgi işlem, yerel okuma ve küresel gerçek, açık yönlendirme, sıkı güvenlik ve ölçülebilir tasarruf ilkeleri üzerine inşa edin - ve herhangi bir coğrafyada hız, kontrol ve öngörülebilirlik elde edersiniz.