Olayı Tasarlamak Çok Bulut Deployments için Sürücüler
Multi-Cloud Event-Driven Architectures'a yönelik Evrim
Organizasyonlar bugün birçok bulut sağlayıcının satıcı kilitlemeden kaçınmaları, maliyetleri optimize etmek ve API'sini değiştiğinde, senkronizasyoncular tarafından, doğru iletişim kurmalı üreticiler tarafından, talep edilen iletişimin kısıtlamaları açık hale gelir: hizmetler arasında sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkı sıkıştırma ve her bir sağlayıcı API'sini değiştirir. Etkinlik odaklı mimari (EDA) her bir iş akışına katılmadan bağımsız olarak hizmet sağlar.
EDA'nın çoklu bulut dağıtımında temel vaadi esnekliktir: Bir sağlayıcı üzerinde kesintiler, diğerleriyle etkinlik işlemeyi durdurmaz ve bu makalenin geri kalanı, birden fazla bulut ortamına yayılan değişken geç saatler boyunca pratik bir çerçeve sağlar.
Multi-Cloud Event-Driven Systems
Etkinlik Sözleşmeleri ile Dekoupling
Her olay geçmişte gerçekleşen bir şeyi açıklayan kendi kendine özgü bir mesajdır. çoklu bulut sisteminde, bu olaylar bulut sınırlarına seyahat etmelidir, bu da yapımcı ve tüketici arasındaki sözleşmenin platforma özgü JSON nesneleri kullanması gerekir. Bulut kayıtları standart zarf formatı olarak kullanın.Bu, Azure'da çalışan bir hizmetin derin protokole özel bilgi olmadan AWS'de bir hizmette bir etkinlik yapabileceğini sağlar.
Asynchronous Boundaries ve Idempotency
Bulutlar arasındaki ağ bölmeleri anormal değildir; tüketici tarafında normal bir işlem koşuludur. Her olay tüketicisi idempotent olmalıdır: Aynı olayı iki kez işlemeye çalışmalı, bu olayda bir şarj olmadan elde edilebilir. Bu, kurtarma için eşsiz bir olay kimliği dahil edilebilir ve bir deduplikasyon penceresi korumak için, iki kez iki kez bir "ChargeSucceed" olayının işlemesi gerekir.
Garantili Teslimat ve In-Least-Once Semantics
Çoğu çoklu bulut olayı sistemleri, en az en az teslimiyet için hedeflemelidir. Bu, brokerin yalnızca durgun bir şekilde devam ettikten sonra bir olayı kabul etmesi ve tüketiciler sadece olay güvenli bir şekilde ele alındıktan sonra işlemeyi kabul eder.
Saat Skew ve Temporal Ordering
Farklı bulutlardan gelen olaylar, olay ilk devam ettiğinde, Apache Kafka gibi bir bulut-agnostic broker aracılığıyla ilgili olayları takip eden, üreticinin saatlerine bakılmaksızın, platform numaralarına göre korumayı başarabilir.
Multi-Cloud Deployments için Olay Brokerlerini seçmek
Bulut-Agnostic Broker
Apache Kafka ve TavşanMQ, herhangi bir bulutta konuşabilen iki baskın açık kaynak brokerdir. Kafka yüksek çözünürlüklü olay akışında, uzun vadeli etkinlik tutma ve yeniden oyun yetenekleriyle ilgili olarak, Kubernet'lerde, Kafka veya TavşanMQ gibi operatörleri kullanarak yeniden işlemeye ihtiyaç duyan sistemler için idealdir.
Yönetilen Bulut Olayı Hizmetleri
Her büyük bulut sağlayıcısı yerel bir etkinlik hizmeti sunuyor: AWS EventBridge, Google Cloud Pub/Sub ve Azure Event Grid. Bu hizmetler her bulut ekosistemiyle sıkı entegrasyon sağlar, operasyonel API'leri azaltır ve diğer bulutlarda hizmet etmek için baskı uygularlar, homojen bir ağ oluşturmak için bir federasyon oluşturmanız gerekir.
Broker Federasyon ve Event Mekrajlar
Bir etkinlik ağı, tüm trafiği tek bir merkezden geçmek için gerekli olmayan bulutları birbirine bağlar. Her bulut kendi broker örneğini çalışır ve Kafkas'ı kullanarak ağ geçidini ileri sürer.Bu model farklı bulutlardaki konuları tekrarlayabilir ve her bölgenin bağımsız olarak çalışmasını sağlar.
Event Schemas ve Sözleşmeleri Tasarlamak
Bulut Standart En Geliştirme Olarak Değil
Bulutlar, CNCF tarafından barındırılan bir özellik, çoklu bulut sisteminde her etkinliğe standart bir özellik tanımla: 0,0), [[Ücretsiz:0), [[Şerefli, [[Şerefli, [[Döneticiler ve [[Döneticiler, ve LNTS'ler, farklı brokerler ve bulut sınırları arasındaki tek bir yol, ve denetim olayları kazanırlar. Tüm büyük bulut etkinlik hizmetleri şimdi Bulutlar yerel olarak desteklenir ve birçok SDK'lar HTTP'da, MTTK'ye, Kafkas'ya ve diğer birçok protokoller için otomatik olarak otomatik olarak otomatik olarak gönderirler sağlar.
Schema Kayıt ve Versioning
Paylaşılan bir şema kaydı olmadan, farklı bulutlardaki üreticiler ve tüketiciler sessiz bir şekilde sürüklenebilir. Bir üretici, bir tüketicinin uzatmasını beklediği bir etkinliğe yeni bir alan ekleyebilir, ancak tüketicinin değişim hakkında bilmediğinden, olayı sessiz bir şekilde silmeden ziyade olayları reddetmesi gerekir.
Alan-Level Uyumluluk Kuralları
Bulutlar arasında gelişen olay şemaları gelişmekte olduğunda, bu kuralları tüketicilere kırılmaktan kaçınmaya takip edin:
- Yeni alanlar önceki şema olarak aynı davranışı koruyan varsayılan değerler ile istenmelidir.
- Alanlar asla kaldırılmamalıdır. Onları isteğe bağlı olarak işaretlemek ve bunları belgeden dışlamak.
- Veri türleri değişmemelidir. Bir alan tamsaysa, tam bir tamsa kalmalıdır.
- Yapısal değişiklikler gerekliyse, mevcut olanı değiştirmek yerine yeni bir Cloud Events tipi özelliği ile yeni bir etkinlik türü yaratın.
Multi-Cloud Event Systems için Uygulama Desenleri
Event Sourcing Across Clouds
Olay kaynağı, mevcut bir anlık görüntüler olarak yerine olayların bir dizisi olarak devletleri finanse ediyor. multi-cloud ortamında, bu model, merkezi logdan gelen olayları yeniden canlandırarak, her hizmet sonunda doğru duruma yakınlaştırarak, her hizmet arasındaki işlemleri geri almak için farklı hizmetlere izin veriyor.
Komutan Sorgu Sorumluluk Segregation
CQRS, yazı yayınını (komünleri) okumaktan (kahkahalar) ayırıyor, bu yüzden genellikle tek bir bulut bölgesinde basılır.Yaz modelleri, olay akışının tek kaynağı olarak kullanarak global olarak çoğaltılabilir.
Dağılan İşlemler için Saga Deseni
Birden fazla bulut kullanan uzun süren iş süreçleri ACID işlemlerine güvenemez. Bunun yerine, süreçdeki her adım bir sonraki adımı tetikleyen bir olayı yayınlar.Eğer bir adım başarısız olursa, bir hesaplama olayı önceki adımları geri getirmek için yayınlanır. Örneğin, AWS ve Azure arasındaki bir rezervasyon takip edilebilir:
- AWS'de hizmet Kafka'ya "ReservationRequested" olayı yayınlar.
- Azure prosesleri üzerinde hizmet, envanter tutar ve "InventoryHeld" olayı yayınlar.
- AWS süreçleri üzerinde hizmet "InventoryHeld", bir sipariş yaratır ve "OrderCreated" olayı yayınlar.
- Sipariş oluşturma başarısız olursa, “RekrementInventory” bir olay, düzenlenen envanteri serbest bırakmak için gönderilir.
En bilge her buluttaki her katılımcının, tutarlılığı korumak için eylemleri tam olarak bir kez eylemleri gerçekleştiriyor.
Multi-Cloud Event Systems için Güvenlik Tahminleri
Transit'te şifre ve Rest
Bulutlar arasındaki tüm olay trafiği TLS 1.2 veya daha yüksek. Broker-to-broker replikasyon bağlantıları karşılıklı TLS kimlik doğrulamasını kullanmalıdır. Etkinlikler broker girişlerinde veya alt mağazalardan TLS'yi tüm canlı anahtarlar veya müşteri tarafından kontrol edilen anahtarlar arasında şifrelenmelidir (CMKs). Kubernet'lerde dağıtılan bir bulut-agnostic broker kullanarak, Istio veya Linkerd gibi bir hizmet ağı kullanmak için.
Bulutlar Arasında Kimlik ve Yetki
Her bulut sağlayıcısının kendi kimlik sistemi vardır: BenAM'da, Azure Active Directory ve Cloud IAM'ı GCP'de bir brokere imza atmış bir müşteri belgesi ile satın almış veya diğer bulutlara yeniden yapılan kısa süreli dosyalarda bir müşteri belgesi kullanmaktadır.Ingerekli bir istemci belgesini kullanarak.Ingerekli bir istemcinin içeriğine sahip olmak için, HashiCorp Vault veya AWS tarafından üretilen kısa süreli olarak erişilebilir.
Denetim Logging ve Event Traceability
Bulut sınırının geçtiği her olay, tüm alt işleme yoluyla ortaya çıkan bir iz ID taşımalıdır. Bulut EventsurFLT:6) uzatma veya dağıtılmış tracing için benzer bir mekanizma. Merkezileştirilmiş denetim logları olayı ID, kaynak bulut, hedef bulut, zaman damgasını yakalamak ve işlemenin sonucu.Bu loglar uyumluluk için gereklidir.
İzleme ve gözlemlenebilirlik Bulut Sınırları
Merkezileştirilmiş Event Metrikleri
Tüm bulutlardan tek bir izleme sistemine kadar agregate metrics from event brokers in all cloud into a single monitoring system. Key metrics to track:
- Prodüktör başına ve türü başına olay üretimi oranı
- Tüketici grubu başına gelir ve bölme başına
- Cross-cloud etkinliği üretimden tüketime geç kaldı
- Olay başarısızlığı oranı ve başarısızlık nedenleri
- Broker disk kullanımı ve ağ aracılığıyla
Prometheus'u Thanos veya Grafana Mimir'ı, bağlamı kaybetmeden birden fazla bulut dağıtımını sorgulamak için kullanın.
Cross-Cloud Events için Dağıttı
Bir olay bir bulutta ortaya çıktığında ve diğer bulutlarda bir işlem zincirini tetiklerken, eller dağıtılmadan performans sorunlarını silmek zordur.Her bulutta çalışan OpenTelemetri koleksiyoncular, verileri Jaeger veya Grafana Tempo gibi merkezi bir arkaya doğru takip eden bir etkinliktir.
End-to-Bitki Olay Sağlığı Kontrolleri
Tüm olay boru hattını bir bulutta başka bir şekilde satın alan sentetik olaylar.Birbireyde zaman ve bayrak herhangi bir anormallik gösterir.Eğer sentetik olay beklenen pencereye varmıyorsa, bir uyarıyı tetikleyin.Bu tür bir sağlık kontrolü yanlış yapılandırılmış bir güvenlik kuralı olarak sessiz hataları yakalar, bir broker tam şart veya tek başına metriklerden görünür olmaz.
Gerçek Dünya Vakaları Kullanıyor
Multi-Cloud Order Orchestration
ABD Batı Bölgesinde yapılan ortak Kafka kümesi aracılığıyla akışlar yapan bir etkinlik, Azure'da ödeme işlemi ve GCP'de lojistik göndermek ve sipariş yaşam döngüsündeki her adım, üç bulutta dağıtılan bir Kafka kümesi aracılığıyla akışlar yapan bir olaydır.Sonunda GCP'de teslimat ve teslimat işlemleri yapan bir "OrderPlaced" etkinliği üretir.
Multi-Cloud IoT Data Ingestion
Bir endüstriyel IoT platformu dünya çapında fabrikalardan sensör verilerini toplar. Her fabrika, veri bilim adamlarının Avrupa'da veya GCP'de bir anomali tespit ettiği merkezi Kafka kümeye veri gönderir.Her bölge brokerlerine yol açan ham sensör verileri toplar ve tüm boru hattının yerel bir etkinlik akışına gönderilmesi gerekir.
Ortak Pitfalls ve Them'dan Nasıl Kaçırmak
Bulutlar Arasında Homojen Latency
Cross-cloud ağı geçncy, 10ms'tan coğrafi mesafeye bağlı olarak 500m'lere değişebilir, internet sıkışıklığı ve bulut sağlayıcı sözleşmeleri. Tasarım etkinliği zamanları, yeniden deneme aralıkları ve tüketici zaman aralığı, varsayımlara göre ölçümlere dayanan ölçümlere göre değişir.
Güçlü Konsistency için Broker Geo-Replication'a temel
Bulutların çoğu broker replikasyon mekanizmaları sonunda tasarımla tutarlıdır. Bir bulutta bir olay yazarsa ve o zaman başka bir bulutta bir tüketiciden hemen okursa, tüketici saniyeler veya dakikalar boyunca olayı göremeyebilir. Bulut sınırları boyunca güçlü okuma-yazma tutarlılığı gerektiren iş akışları tasarlayamaz.
Neglecting Cross-Cloud Cost Viability
Bulutlar arasındaki veri transferi pahalı olabilir. Her olay, etkinlik ödeme yüklerini azaltmak, etkinlik frekansına veya yerel bir bağlantı devrelerini hedef sağlayıcıdan azaltmak için aylık etkinlik hacmini ve ortalama ücret yükü boyutunu hesaplamak için dikkate alın.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Multi-cloud dağıtımları için olay odaklı sistemler, burada ve öngörülemeyen yük modellerinden bir geçiş gerektirir; etkinlik, CQRS ve bilge şemalar; veri ve heterojen ortamlardaki dayanıklılık için kanıtlanmış yaklaşımlar.
Bulut Events'ı evrensel zarfınız olarak kabul ederek, Apache Kafka veya Pulsar gibi bir bulut-agnostic broker dağıtın ve son kanalını doğrulayan sentetik sağlık kontrolleri inşa edin. Zamanla, altyapı stratejiniz geliştikçe sistemi genişletin.