Jeot deseni

Azure Cosmos DB

Geode düzeni, her biri herhangi bir bölgedeki herhangi bir istemci için herhangi bir isteğe hizmet sunabilen bir dizi coğrafi nod kümesine arka uç hizmeti koleksiyonu dağıtmayı içerir. Bu düzen, isteklerin etkin-etkin bir stilde sunulmasına olanak tanır ve istek işlemeyi dünya çapında dağıtarak gecikme süresini artırır ve kullanılabilirliği artırır.

Coğrafi harita

Bağlam ve sorun

Birçok büyük ölçekli hizmet, coğrafi kullanılabilirlik ve ölçekle ilgili belirli zorluklara sahiptir. Klasik tasarımlar genellikle verilerin işlem gördüğü yere taşınmasını verileri, ölçeklenebilirliği artırarak büyümeye yönelik çalışan uzak bir SQL sunucusunda depolayarak sağlar.

Klasik yaklaşım aşağıdaki sorunlara neden olabilir:

  • Dünyanın diğer ucundan gelen kullanıcıların barındırma uç noktasına bağlanması için ağ gecikmesi sorunları
  • Tek bir bölgedeki hizmetleri bunaltabilecek talep artışları için trafik yönetimi
  • 7/24 hizmet için uygulama altyapısı kopyalarını birden çok bölgeye dağıtmanın maliyet açısından engelleyici karmaşıklığı

Modern bulut altyapısı, arka uç hizmetlerinin coğrafi çoğaltmasını sağlarken ön uç hizmetlerinin coğrafi yük dengelemesini sağlayacak şekilde gelişti. Kullanılabilirlik ve performans açısından verileri kullanıcıya yaklaştırmak iyidir. Veriler uzak bir kullanıcı tabanında coğrafi olarak dağıtıldığında, coğrafi olarak dağıtılmış veri depoları da verileri işleyen işlem kaynaklarıyla birlikte bulunmalıdır. Coğrafi bölge deseni , hesaplamayı verilere getirir.

Çözüm

Hizmeti dünyanın her yerine yayılmış ve her biri coğrafi bölge olarak adlandırılan birden çok uydu dağıtımına dağıtın. Coğrafi bölge düzeni, Azure'ın önemli özelliklerinden yararlanarak trafiği en kısa yol üzerinden yakındaki bir coğrafi bölgeye yönlendirir ve bu da gecikme süresini ve performansı artırır. Her coğrafi bölge genel yük dengeleyicinin arkasındadır ve veri düzlemini barındırmak için Azure Cosmos DB gibi coğrafi olarak çoğaltılmış bir okuma-yazma hizmeti kullanarak coğrafi bölgeler arası veri tutarlılığı sağlar. Veri çoğaltma hizmetleri, veri depolarının coğrafi bölgeler arasında aynı olmasını sağlar, böylece tüm istekler tüm coğrafi bölgelerden sunılabilir.

Dağıtım damgası ile bir jeod arasındaki temel fark, jeodların hiçbir zaman yalıtılmış olarak bulunmamasıdır. Üretim platformunda her zaman birden fazla jeot olmalıdır.

Coğrafi bölgeye genel bakış

Jeoitler şu özelliklere sahiptir:

  • Genellikle şablonda tanımlanan farklı kaynak türlerinden oluşan bir koleksiyondan oluşur.
  • Coğrafi ayak izi dışında hiçbir bağımlılığınız yoktur ve bağımsızdır. Hiçbir geode, çalışmak için diğerine bağımlı değildir ve biri hata verirse, diğerleri çalışmaya devam eder.
  • Bir uç ağı ve çoğaltma arka düzlemi aracılığıyla gevşek bir şekilde bağlanır. Örneğin, geoitlerin önünü yönetmek için Azure Traffic Manager veya Azure Front Door kullanabilirsiniz, Azure Cosmos DB ise çoğaltma arka planı olarak görev yapabilir. Jeoidoslar, çoğaltma arka plânını paylaştıkları için kümelerle aynı değildir, bu nedenle kvorum sorunları platform tarafından ele alınır.

Coğrafi bölge düzeni, aynı makinede birlikte bulunan verileri işlemek için ticari donanım kullanan büyük veri mimarilerinde ve sonuçları makineler arasında birleştirmek için MapReduce'da oluşur. Diğer bir kullanım, yanıt süresini kısaltmak için işlemi ağın akıllı kenarına yaklaştıran yakın uç işlemdir.

Hizmetler bu kalıbı onlarca veya yüzlerce jeod üzerinde kullanabilir. Ayrıca, eklenen her düğümde çözümün sağlamlığı artar, çünkü bölgesel bir kesinti bir veya daha fazla düğümü çevrimdışı bırakırsa, herhangi bir düğüm devralabilir.

Kullanılabilirlik alanları veya eşleştirilmiş bölgeler gibi yerel kullanılabilirlik tekniklerini genel kullanılabilirlik için coğrafi bölge düzeniyle artırmak da mümkündür. Bu, karmaşıklığı artırır, ancak mimariniz yalnızca eşleştirilmiş bir bölgeye çoğaltabilen blob depolama gibi bir depolama motoru tarafından destekleniyorsa yararlıdır. Geodları, mevzuat veya konumla ilgili gecikme kısıtlamalarını göz önünde bulundurarak tek zonlu, çok zonlu veya bölgesel düzeyde dağıtabilirsiniz.

Sorunlar ve dikkat edilmesi gerekenler

Bu düzeni uygulamak için aşağıdaki teknikleri ve teknolojileri kullanın:

  • Modern DevOps uygulamaları ve araçları, çok sayıda bölge veya örneğe aynı geodların üretimlerini sağlamak ve hızla dağıtmak için kullanılır.
  • Coğrafi bölge içindeki işlem ve veritabanı aktarım hızı örneklerinin ölçeğini genişletmek için otomatik ölçeklendirme. Her geod, ortak arka plan kısıtlamaları çerçevesinde ayrı ayrı ölçeklenir.
  • Azure Front Door gibi dinamik içerik hızlandırma, en uygun iletişim noktası üzerinden yönlendirme ve Bölünmüş TCP gibi bir ön uç hizmeti.
  • Veri tutarlılığını denetlemek için Azure Cosmos DB gibi çoğaltan bir veri deposu.
  • Mümkün olduğunda, özellikle de yükün dünya genelinde sık sık yeniden dengelendiği durumlarda, her zaman açık dağıtım maliyetlerini azaltmak için sunucusuz teknolojiler kullanılır. Bu strateji, asgari ek yatırımla birçok geodun dağıtılmasını sağlar. Sunucusuz ve tüketime dayalı faturalama teknolojileri, yinelenen coğrafi olarak dağıtılmış dağıtımlardan kaynaklanan israfı ve maliyeti azaltır.
  • Tasarım desenini uygulamak için API Management gerekli değildir; ancak, daha sağlam bir API katmanı sağlamak ve örneğin hız sınırlaması gibi ek işlevlerin uygulanmasına olanak tanımak için bölgenin Azure İşlev Uygulamasını ön yüzleyen her bir geode'a eklenebilir.

Bu düzenin nasıl uygulanacağına karar verirken aşağıdaki noktaları göz önünde bulundurun:

  • Verileri her bölgede yerel olarak mı işleyeceğinizi yoksa toplamaların tek bir geode'de dağıtılıp ve sonucu dünya genelinde çoğaltılacağı şekilde mi seçeceğinizi belirleyin. Azure Cosmos DB değişiklik akışı işlemcisi, kiralama kapsayıcısı kavramını ve karşılık gelen Azure İşlevleri bağlayıcısında leasecollectionprefix'i kullanarak bu ayrıntılı denetimi sunar. Her yaklaşımın farklı avantajları ve dezavantajları vardır.
  • Geodes, Azure Cosmos DB değişiklik akışını ve SignalR gibi gerçek zamanlı bir iletişim platformunu kullanarak birlikte çalışabilir. Jeodlar, uzak kullanıcının nerede olduğunu bilmeden, ağ desenindeki diğer jeodlar aracılığıyla uzak kullanıcılarla iletişim kurabilir.
  • Bu tasarım deseni her şeyi örtük bir şekilde bağımsızlaştırır ve bu da son derece dağıtılmış ve bağımsız bir mimariyle sonuçlanır. Aynı isteğin farklı bileşenlerini, farklı örneklerde eşzamanlı olmayan bir şekilde çalışırken nasıl izleyeceğinizi düşünün. Uygun bir izleme stratejisi çok önemlidir. Hem Azure Front Door hem de Azure Cosmos DB, Log Analytics ile kolayca tümleştirilebilir ve mimarideki her bileşende güçlü bir izleme sistemi sağlamak için Application Insights ile birlikte Azure İşlevleri dağıtılmalıdır.
  • Dağıtılmış dağıtımlar, uygun güvenlik önlemleri gerektiren daha fazla sayıda gizlilik ve giriş noktasına sahiptir. Key Vault gizli dizi yönetimi için güvenli bir katman sağlar ve API mimarisindeki her katmanın düzgün bir şekilde güvenliği sağlanmalıdır; böylece API için tek giriş noktası Azure Front Door gibi ön uç hizmetidir. Azure Cosmos DB, Microsoft Entra Kimliğini veya IP kısıtlaması gibi uygulamaları kullanarak Azure İşlev Uygulamaları'na ve İşlev uygulamalarının Azure Front Door'a trafiği kısıtlamalıdır.
  • Performans, dağıtılan coğrafi bölge sayısından ve her bir coğrafi bölgedeki API teknolojisine uygulanan belirli App Service Planlarından önemli ölçüde etkilenir. Ek coğrafi bölgelerin veya premium katmanlara yönelik hareketin dağıtımı, ek bellek ve işlem için daha fazla maliyetle birlikte gelir, ancak bunu işlem bazında yapmaz. API mimarisini dağıttıktan sonra yük testini göz önünde bulundurun ve coğrafi bölge sayısını artırmanın mı yoksa fiyatlandırma katmanını artırmanın mı daha maliyet-etkin olduğunu değerlendirerek gereksinimleriniz için en uygun maliyetli seçeneği kullanın.
  • Verileriniz için kullanılabilirlik gereksinimlerini belirleyin. Azure Cosmos DB'de çok bölgeli yazma, kullanılabilirlik alanları ve daha fazlasını etkinleştirmek için isteğe bağlı bayraklar bulunur. Bunlar Azure Cosmos DB örneğinin kullanılabilirliğini artırır ve daha dayanıklı bir veri katmanı oluşturur, ancak ek maliyetlerle birlikte gelir.
  • Azure, trafiğin dağıtımı için farklı işlevler sağlayan çeşitli yük dengeleyiciler sunar. API'nizin ön ucu için doğru seçeneği belirlemenize yardımcı olması için karar ağacını kullanın.

Bu düzenin kullanılacağı durumlar

Bu deseni kullan:

  • Kullanıcıların geniş bir alana dağıtıldığı yüksek ölçekli bir platform uygulamak.
  • Aşırı kullanılabilirlik ve dayanıklılık özellikleri gerektiren herhangi bir hizmet için, coğrafi bölge desenini temel alan hizmetler aynı anda birden çok hizmet bölgesinin kaybından kurtulabilir.

Bu düzen, uygun olmayabilir

  • Veri depolamada tüm geodların eşit olmasını engelleyen kısıtlamalara sahip mimariler. Örneğin, veri yerleşim gereksinimleri, belirli bir oturum için geçici bir durumu koruması gereken bir uygulama veya tek bir bölgeye yoğunlaşan istekler olabilir. Bu durumda dağıtım damgalarını, dağıtım damgaları düzeninde açıklanan trafik yönlendirme bileşeni gibi kullanıcının verilerinin bulunduğu yeri fark eden genel yönlendirme düzlemi ile birlikte kullanmayı göz önünde bulundurun.
  • Coğrafi dağılımın gerekli olmadığı durumlar. Bunun yerine, kümeleme için kullanılabilirlik alanlarını ve eşleştirilmiş bölgeleri göz önünde bulundurun.
  • Eski bir platformun yenilenmesi gereken durumlar. Bu desen yalnızca bulut yerel geliştirme için çalışır ancak başka sistemlere uyarlamak zor olabilir.
  • Coğrafi olarak yedeklilik ve coğrafi dağılımın gerekli olmadığı veya avantajlı olmadığı basit mimariler ve gereksinimler.

İş yükü tasarımı

Bir mimar, Azure İyi Tasarlanmış Çerçeve yapılarında ele alınan hedefleri ve ilkeleri ele almak için Geode deseninin iş yükünün tasarımında nasıl kullanılabileceğini değerlendirmelidir. Örneğin:

Sütun Bu desen sütun hedeflerini nasıl destekler?
Güvenilirlik tasarımı kararları, iş yükünüzün arızaya karşı dayanıklı olmasına ve bir hata oluştuktan sonra tamamen çalışır duruma gelmesini sağlamaya yardımcı olur. Bu düzen, herhangi bir istemcinin herhangi bir coğrafi örneğe bağlanabilmesi idealini desteklemek için veri çoğaltmayı kullanır ve bunu yaparak iş yükünüzün bir veya daha fazla bölgesel kesintiye dayanabilmesine yardımcı olur.

- RE:05 Yüksek kullanılabilirlik çoklu bölge tasarımı
- RE:05 Bölgeler ve kullanılabilirlik alanları
Performans Verimliliği , ölçeklendirme, veri ve kod iyileştirmeleri aracılığıyla iş yükünüzün talepleri verimli bir şekilde karşılamasını sağlar. Bu düzeni, dağıtılmış kullanıcı tabanınıza en yakın bölgeden uygulamanızı sunmak için kullanabilirsiniz. Bunun yapılması, uzun mesafeli trafiği ortadan kaldırarak ve altyapıyı yalnızca aynı coğrafi bölge kullanan kullanıcılar arasında paylaştığınız için gecikme süresini azaltır.

- PE:03 Hizmetleri seçme

Herhangi bir tasarım kararında olduğu gibi, bu desenle ortaya konulabilecek diğer temel bileşenlerin hedeflerine karşı herhangi bir tavizi göz önünde bulundurun.

Örnekler

  • Windows Active Directory bu desenin erken bir değişkenini uygular. Çoklu birincil çoğaltma, tüm güncelleştirmelerin ve isteklerin teoride tüm hizmet edilebilir düğümlerden sağlanabileceği anlamına gelir. Ancak, Esnek Tek Ana İşlem (FSMO) rolleri nedeniyle tüm düğümler eşit değildir.