Multi-region Resilience için Serverless Uygulamaları Tasarlamak

Giriş: Neden Multi-region Resilience Maddeleri

Çok-bölgesel dayanıklılık için sunucusuz uygulamalar artık yüksek erişilebilirlik ve hata toleransı talep eden kuruluşlar için daha fazla seçenek değildir.İşler buluta yönelik olarak, tek bir bölge başarısız olursa, trafik sağlıklı bölgelere, enerji başarısızlıklarına veya ağ sorunlarına neden olabilir - operasyonları durdurabilir ve birçok coğrafi bölgede önemli gelir kaybına yol açabilir.

Serverless mimarlıklar özellikle çok bölge içi dayanıklılık için iyi bir şekilde uygundur, çünkü altyapı yönetimi, otomatik ölçek ve yerel olarak destek veren hizmetleri kullanarak geçiş replikasyonu ve başarısız olan sunucusuz uygulamaları, her şeyi temel tasarım ilkelerinden ileri verilere tutarlı, ağ, güvenlik ve maliyetle optimize etmek için kapsamlı bir kılavuz sunar.

Multiregion Resilience

Multiregion Resilience nedir?

Multiregion dayanıklılığı, iki veya daha fazla coğrafi bölgede çalışan bir uygulamanın yeteneğine atıfta bulunur ve tüm bulut bölgesinin kullanılamadığı durumlarda minimum kesintiye uğramak için.Bu yaklaşım sadece bölgesel kesintilere karşı koruma sağlar, API uç noktaları, etkinlik işlemcileri) ve veri depoları, daha yakın bölgeden gelen trafikle hizmet ederek geç saatlere kadar azalır ve başarısız olur.

Çok-bölgesiz bir Mimarlık Faydaları

Anahtar Zorluklar

Yararlı olsa da, çok bölgeli esneklik karmaşıklığı ile ilgili karmaşıklık sağlar. [FONT=0]Data consistency) çeşitli bölgelerde tekrarlanan kaynaklardır, artı zamansız geçiş ücretlerine geçilir.[Döneticiler, kullanılabilirlik ve bölme toleransı (CAP theorem).[/FLT:2).Cost) Birden fazla bölgede tekrarlanır, artı geçiş verileri ile kodlanırsınız.[değiştir | kaynağı değiştir]

Core Design Principles

Güçlü bir çoklu bölgesüz uygulama oluşturmak için, bu temel ilkeleri takip edin:

Multi-region Mimarisini Tasarlamak

Aktif-işlemci vs. Active-Active

İlk mimari seçim başarısız modeldir. Aktif bir bölgede aktif olarak kullanılabilir.Bu yaklaşım, çoklu bölgeler için daha iyi bir şekilde kullanılabilir ve güvenilir olmayan iş yükleri için daha iyi bir şekilde kullanılabilir.If ittash (Dface propagation, database support) ve pasif bölge aktif bir şekilde sabit verilere sahip olabilir.In an-FLT:2active-passive[Droadloads)

Bilemor

Tipik bir çokluregion sunucusuz uygulama, her bölgede dağıtılan aşağıdaki bileşenlerden oluşur:

Data Consistency Models

Olaysal Consistency

Çoğu multiregion serverless uygulama olayı olayı tutarlılığı kullanır çünkü yüksek erişilebilirlik ve düşük değerleme yazar.Bu model altında, bir bölgede bir yazı, DynamoDB Global Tables ve Cosmos gibi diğer bölgelerde okunabilir.

Güçlü Konsistency

Durgun veri kabul edilemez olan uygulamalar için - finansal işlemler, envanter yönetimi veya kullanıcı kimlik doğrulaması gibi - güçlü tutarlılık gereklidir. Google Cloud Spanner, dış tutarlılık sağlar (teknode veritabanı gibi) global olarak CockroachDB de bölümler boyunca güçlü bir tutarlılık ve daha düşük kullanılabilirlik sağlar. Azure Cosmos DB, bölgeler arasında güçlü tutarlılık ve düşük erişilebilirlik sağlar.

Çatışma Çözümü

Aktif aktif olarak kurulumlarda, eş zamanlı olarak farklı bölgelerdeki aynı öğeye yazılabilir. Serverless uygulamalar çatışma çözüm stratejileri için planlanmalıdır: son yazar-wins (LWWWWWWW) zamanları ile en basit ancak güncellemelerini kaybedebilir; Uygulama tanımlı birleştirici bir birleştirme mantığı (örneğin, özel çözümleyicileri kullanarak) otomatik olarak çatışmaları kullanarak.

Ağlama ve Küresel Trafik Yönetimi

Global Load Balancers ve DNS

Doğru trafik yönetimi servisini seçmek kritik.ETHFLT:0)AWS Route 53), gecikmiş güvenlikli yönlendirmeleri ve ağırlıklandırılmış politikalara ve bölgenin başarısızlığını tespit etmek için sağlık kontrollerine göre entegre edilir.(QUD) Daha fazla kaçak kontrol ve daha hızlı bir şekilde kontrol sağlar.

CrossRegion Networking

Data senkronizasyonu ve inter-region iletişimi genellikle yüksek bant genişliği, düşük çözünürlük bağlantıları gerektirir. Cloud sağlayıcıları özel ağ omurgalarını sunar: AWS Direct Connect veya VPC bölgeleri boyunca yorum yapar, Azure ExpressRoute, Google Cloud Interconnect. For serverless functions that need to call each or databases with private network to reduce latency and avoid egress costs. Ancak, maximum solutionorating, design so cross-region calls are asynchronous (e-eventless functions) rather than synchronous (e-e-e-colnhronous)

CDN ve Edge Caching

Bir İçerik Teslimat Ağı (CDN) kaynak bölgeleri üzerinde yük azaltabilir ve kullanıcı deneyimini geliştirebilir. Servis statik varlıklar (görücüler, senaryolar) ve hatta bir CDN'den gelen dinamik yanıtlar, önbellekli-invalidasyon stratejileri (örneğin, yol veya etiket) bir yazıdan sonra içeriği hızla tamamlamak için.

Güvenlik Bölgeleri

Kimlik ve Access Management

Örneğin, Amazon Cognito kullanıcı havuzları genellikle merkezde yer alan (son güncellemelerde) veya Auth0 gibi küresel bir IDP kullanabilirsiniz. Her bölgenin işlevlerinin IDP'ye karşı doğrulanması için, genellikle yüksek kullanılabilirlik ile merkezi bir bölgede barındırılan talepleri ve en yüksek kaynak tabanlı politikalar kullanarak gerçekleştirilebilir.

Data Encryption

Bölgeler arasındaki geçişteki tüm veriler TLS ile şifrelenmelidir. Önemli çoğaltma ile dikkatli olun - bölge genelindeki aynı KMS anahtarını çoğaltmanız veya güvenlik politikamıza bağlı olarak bölgenizdeki anahtarlarla şifrelemeyi etkinleştirebilirsiniz.

DDoS ve Web Uygulama Duvarı

AWS Shield Advanced, Azure DDoS Protection veya Cloudflare gibi küresel hizmetler kullanın, uygulamanızı dağıtık hizmet saldırılarından korumak için. A Web Application Firewall (WAF) kenardaki gelen talepleri inceleyebilir ve IP, coğrafi bölge veya imza kalıplarına dayanan trafik engelleyebilir.

İzleme ve gözlemlenebilirlik

Ortada Logging ve Metriks

Ağgregate logları, ölçümler ve tüm bölgelerden merkez gözlemlenebilirlik platformuna izler. AWS CloudWatch with cross-account/long-term aggregation, Azure Monitor with Log Analytics workspaces, or Google Cloud's Operations Suite (eski olarak Stackvi) alternatif olarak, her bölge telegrafi ile çok sayıdaki desteği destekleyen üçüncü taraf araçları kullanın.Her bölgenin sağlık, hata oranları, gecikme oranları ve tek bir paniğe sahip fonksiyon sağlayın.

Sağlık Kontrolleri ve Alarmları

Her bölgenin API uç noktaları ve geri dönüş hizmetleri için sağlık kontrolleri yapılandırın. Bu, güvenli bir bölgeden trafikten uzaklaşmak için küresel trafik yönlendiriciniz ile bütünleme yapar (örneğin, 53 sağlık kontrolleri CloudWatch aracılığıyla). Ayrıca, bir bölgenin hata oranı bir eşiği veya geç gecikme süresine kadar hataları tetikleyen alarmlar oluşturun.

Kaos Mühendislik

Düzenli olarak, çoklu bölge kesintilerini veya veritabanı başarısızlıklarını test edin. Bu, başarısız mekanizmalarınızın gerçek olaylar için hazırlandığını ve ekibinizin gözlemlenen kurtarma süreleri ve iyi belge yapılandırması için araç kullanın.

Maliyetleri

Kaynak Reddancy

Birden çok bölgeden en az iki kat daha fazla kaynak çalıştırın altyapı maliyetinizi optimize etmek, kullanım için:0) Pasif bölgeler için [Döneticileri için) kullanılabilirlik, daha küçük veritabanı örneklerini kullanın ve geçici kurulumlarda kesintiye uğratın, her iki bölge de tamamen operasyoneldir, ancak gerçek trafik dağıtımına dayanan doğru düzgün kaynaklar kullanabilirsiniz.

Data Transfer Maliyetleri

Hızlı bir şekilde toplanabilir veri aktarımı.Veri gerisi yerelleri her bölgede halka açık internet egresyon ücretlerinden kaçınmak için geri dönüşümlü bir gerileme yapın. Gerçek zamanlı senkronizasyon hacmini azaltmak için bir örnek seçin.For read-heavy workloads, consider caching often access data in each region to minimise cross-region reads.

Yönetilen Servis Fiyatlandırması

Bazı multiregion özellikleri bir prime gelir. Dy-namoDB Global Tables, geri dönüşüm trafiği için masa başına ücret alır; Cosmos DB çoklu derecemaster, bölge başına düğümler için şarj eder. Her bir sağlayıcı için toplam mal maliyeti (TCO) ve maliyeti olmayan verileri kullanarak daha basit bir olay dışı verileri kullanarak.

En İyi Uygulamalar ve Uygulama Yolu

  1. [[Düzg:0) Tek bir bölgeye başlayın, sonra DR için ikinci bir tane ekleyin.[Dönetici:0) Üretime gitmeden önce başarısız süreçleri geliştirin ve test başarısız işlemleri yapın. Kod (Terraform, Pulumi, AWS CDK) her bölgede aynı yığınları dağıtmak için.
  2. [FONT:0] Yerel multi-bölge desteği ile bir bulut sağlayıcıyı desteklemektedir.[[DÜT:1] AWS, Azure ve Google Cloud, çapraz bölge yetenekleri ile sunucusuz hizmetler sunar.
  3. [FONT:0) Sağlığı kontrolleriyle küresel bir DNS kullanın.[DÜDÜT:1] Başlangıçta birincil bölgeye trafik, ilk bölgeye ilk olarak, ilk olarak, ilk olarak, ikinci bir bölgeye oturtulmuş bir kez aktif olarak dönüştürülür.
  4. [FONT:0]Implement data replication with conflict solution.[DDÜT:1] Veritabanı için LWW veya özel bir birleşme mantığı kullanın.Replication lag and conflict için izleme yapın.
  5. [FONT:0)Test düzenli olarak başarısız oldu.[[Dönetici:0) Test süresi üç katına çıkar.(CTO) ve kurtarma noktası hedefi (RPO) iş gereksinimlerinizi karşılamak için.
  6. [FONT:0) Geçim için Optimise.[DÜT:1] Statik ve dinamik içerik için bir CDN kullanın. Servis ettikleri kullanıcılara yakın işlem fonksiyonları.YouTubexous cross-region aramaları üzerinde etkinlik odaklı iletişim tercih edin.
  7. [FONT:0] Her şeyi şifreleyin.[Dönetici ve diğer yerlerde şifreler ve kimlik federasyonu kullanın. WAF, DDoS koruması ve en az kardigi IAM politikaları ile savunma yaklaşımı uygulayın.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Çok-bölgesel dayanıklılık için sunucusuz uygulamalar, küresel bir seyirciye hizmet eden veya en yüksek erişilebilirlik seviyelerini gerektiren bir bulut-natif organizasyon için kritik bir yetenektir.Rektörlük, veri replikasyonu ve akıllı trafik yönlendirmesi, her zaman düşük gecikmeliliğe sahip olan bölgesel başarısızlıkları sürekli olarak geliştirmek için bir mimari oluşturabilirsiniz.Veri tutarlılığı, maliyet ve güvenlik karmaşıklığı mevcut olduğunda, dikkatli planlama, otomasyon ve düzenli testlerle idare edilebilir.

Daha fazla okuma için resmi belgeye bakınız:0)AWS çok-bölge mimarisi), [[Dönetici:2|Azure dayanıklı tasarım kalıpları[[Dönetici: 3) ve [[Dönetici Bulut güvenilirliği en iyi uygulamalar).