Coğrafi bölge 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 geographicalnodekümesine bir arka uç hizmetleri 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 verileri, büyüme ölçeğini artırmaya bağlı olarak bu veriler için işlem katmanı görevi görecek uzak bir SQL sunucusunda depolayarak verileri hesaplamaya getirir.

Klasik yaklaşım bir dizi zorluk sunabilir:

  • 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 bir dizi 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 coğrafi bölge arasındaki temel fark, coğrafi bölgelerin hiçbir zaman yalıtılmış olarak varolmamış olmasıdır. Üretim platformunda her zaman birden fazla coğrafi bölge olmalıdır.

Coğrafi bölgeye genel bakış

Coğrafi bölgeler aşağıdaki ö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 coğrafi bölge, çalışmak için diğerine bağımlı değildir ve biri ölürse, 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, azure cosmos DB çoğaltma arka planı olarak görev yapabilirken, coğrafi bölgelerin önüne geçiş için Azure Traffic Manager veya Azure Front Door kullanabilirsiniz. Coğrafi bölgeler kümelerle aynı değildir çünkü çoğaltma arka düzlemini paylaşırlar, bu nedenle çekirdek sorunlarını platform üstlenir.

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 deseni onlarca veya yüzlerce coğrafi bölgede kullanabilir. Ayrıca, eklenen her coğrafi bölgede çözümün dayanıklılığı artar çünkü bölgesel bir kesinti bir veya daha fazla coğrafi bölge çevrimdışına geçerse herhangi bir coğrafi bölge 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 altyapısı tarafından destekleniyorsa yararlıdır. Bölge içi, bölgesel veya bölgesel ayak izine coğrafi bölgeler dağıtabilir ve konumla ilgili mevzuat veya gecikme kısıtlamalarına göz atabilirsiniz.

Sorunlar ve dikkat edilmesi gerekenler

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

  • Çok sayıda bölge veya örneğe aynı coğrafi bölgeleri üretmek ve hızla dağıtmak için modern DevOps uygulamaları ve araçları.
  • 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 coğrafi bölge, ortak arka plan kısıtlamaları içinde ayrı ayrı ölçeklendirilir.
  • Dinamik içerik hızlandırma, bölünmüş TCP ve Anycast yönlendirmesi sağlayan Azure Front Door 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 sunucusuz teknolojiler, özellikle de dünya genelinde yük sık sık yeniden dengelendiğinde her zaman açık dağıtım maliyetini azaltmak için. Bu strateji, çok az ek yatırımla birçok coğrafi bölge 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.
  • API Management,tasarım desenini uygulamak için gerekli değildir, ancak daha sağlam bir API katmanı sağlamak için bölgenin Azure İşlev Uygulaması'nı önleyen her bir coğrafi bölgeye eklenebilir ve örneğin hız sınırlama gibi ek işlevlerin uygulanmasına olanak tanır.

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şleceğini yoksa toplamaların tek bir coğrafi bölgede dağıtılıp sonucun dünya genelinde çoğaltılıp çoğaltılmayacağını seçin. Azure Cosmos DB değişiklik akışı işlemcisi, kira kapsayıcısı kavramını ve karşılık gelen Azure İşlevleri bağlamasında leasecollectionprefix'i kullanarak bu ayrıntılı denetimi sunar. Her yaklaşımın farklı avantajları ve dezavantajları vardır.
  • Coğrafi bölgeler, Azure Cosmos DB değişiklik akışını ve SignalR gibi gerçek zamanlı bir iletişim platformunu kullanarak birlikte çalışabilir. Coğrafi bölgeler, uzak kullanıcının nerede olduğunu bilmeden veya önemsemeden, ağ desenindeki diğer coğrafi bölgeler aracılığıyla uzak kullanıcılarla iletişim kurabilir.
  • Bu tasarım düzeni, her şeyi örtük olarak ayırır ve ultra yüksek oranda dağıtılmış ve ayrılmış bir mimariyle sonuçlanır. Aynı isteğin farklı bileşenlerini farklı örneklerde zaman uyumsuz olarak yürütebilecekleri şekilde nasıl izleyebileceklerini 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 sağlam bir izleme sistemi sağlamak için Uygulama Analizler birlikte Azure İşlevleri dağıtılmalıdır.
  • Dağıtılmış dağıtımlar, özellik güvenlik önlemleri gerektiren daha fazla sayıda gizli diziye 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ırıp fiyatlandırma katmanını artırarak gereksinimleriniz için en uygun maliyetli modelin kullanılmasını sağlayı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, trafik 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 düzeni kullanarak:

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

Bu düzen,

  • Veri depolama için tüm coğrafi bölgelerin eşit olabilmesi için kısıtlamaları olan mimariler. Örneğin, veri yerleşimi gereksinimleri, belirli bir oturum için geçici durumu koruması gereken bir uygulama veya tek bir bölgeye yönelik isteklerin ağır bir şekilde ağırlanması 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 buluta özel geliştirme için çalışır ve bunları 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:

Yapı Taşı 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 sütunların hedeflerine karşı herhangi bir dengeyi 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 tüm coğrafi bölgelerin eşit olmadığını gösterir.
  • GitHub'daki coğrafi desen hızlandırıcısı bu tasarım desenini pratikte gösterir ve geliştiricilerin bunu gerçek dünya API'leriyle uygulamasına yardımcı olmak için tasarlanmıştır.
  • GitHub'daki soru-cevap örnek uygulaması bu tasarım desenini pratikte gösterir.