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:

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:

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:

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.