Cosmos DB kullanan küresel olarak dağıtılan uygulamalar

Cosmos DB
Traffic Manager

Microsoft'un küresel veri merkezlerinde yerleşik olarak yer alan yüksek kullanılabilirlik ve düşük gecikme süresi özellikleriyle dünyanın her yanında kullanıcılara erişimi garanti edin.

Mimari

Mimari Diyagramı
Bu mimarinin SVG sürümünü indirin.

Veri akışı

  1. Kullanıcı, uygulamaya ayrılmış istemci üzerinden erişer.
  2. Azure Traffic Manager, kullanıcının bağlantısını tek veya iç içe yönlendirme profillerine göre uygulamaya erişmek için en iyi konuma yönlendirecek.
  3. Uygulamanın barındır bulunduğu indi bölgesinde, uygulama oturumu ve veritabanına yönelik bağlantıyı işler.
  4. Bu uygulama, basit bir statik sayfadan Kubernetes'te barındırılan mikro hizmet odaklı bir uygulamaya kadar çeşitli olabilir.
  5. Uygulama ortamı ile Cosmos DB arasındaki bağlantı, Azure Active Directory Kullanıcı tarafından Cosmos DB anahtarlarını Key Vault.
  6. Azure Cosmos DB birden çok gelen API'lerini kullanarak, uygulamanız en yakın bölgeyi biliyor ve bu bölgeye istek gönderebilir. En yakın bölge herhangi bir yapılandırma değişikliği olmadan tanımlanır. Azure Cosmos hesabınıza bölgeleri ekp kaldırsanız ve bu hesaptan bölgeleri kaldırıyorsanız, uygulamanın yeniden dağıtılması veya duraklatılmış olması gerekm yok, her zaman yüksek oranda kullanılabilir. Cosmos DB, verilerin genel dağıtımını ve çoğaltma işlemini tanımlanan bölge sayısına göre ele alır. Ayrıca, bir bölge kullanılamaz hale gelirse kullanıcı eylemine gerek kalmadan en yüksek yük devretme önceliğe sahip bölgeye yük devretme için Otomatik Yük Devretme seçeneğinden de yararlanması gerekir. Otomatik yük devretme etkinleştirildiğinde bölge önceliği değiştirilebilir.

Bileşenler

  • Azure Traffic Manager:İç içe geçmiş altı tür DNS tabanlı trafik yönlendirme seçeneğiyle uygulamalarınız için DNS tabanlı yük dengeleme/yönlendirme seçenekleri oluşturun.
  • Azure Active Directory:Şirket içi dizinleri eşitler ve çoklu oturum açmayı etkinleştirir.
  • Azure Cosmos DB:Tüm ölçekler için genel olarak dağıtılmış, çok modelli veritabanı.

Alternatifler

Bu senaryoyu çeşitli işlem ve sunucusuz seçeneklerle genişletebilirsiniz.

İşlem seçenekleri

  • Azure Sanal Makineler:Linux ve sanal Windows (VM) oluşturun ve maliyetleri düşürin.
  • Azure Kubernetes Services:Tüm uygulama ve mikro hizmet temel iş yükleriniz için yüksek oranda kullanılabilir, güvenli ve tam olarak yönetilen Kubernetes hizmeti.
  • App Service:Web ve mobil için hızlı bir şekilde güçlü bulut uygulamaları oluşturun.

Sunucusuz seçenekler

Dikkat edilmesi gerekenler

Kullanılabilirlik

Cosmos DB örneğinin kullanılabilirliği bir dizi faktöre bağlıdır. Çoğaltılan bölgelerin Cosmos, uygulamanın kullanılabilirliği de o kadar yüksek olur. Her bölge bir Azure Cosmos DB kapsayıcısı için tüm veri bölümlerini içerir ve varsayılan olarak okumalar için kullanılabilir. Veri katmanının kullanılabilirliğini artırmak için çok bölgeli yazmayı etkinleştirebilirsiniz. Bunu yapmak veri katmanının kullanılabilirliğini artırır. Daha zayıf tutarlılık düzeyleri ve kullanılabilirlik alanları kullanarak da kullanılabilirliği artırabilirsiniz.

Yukarıdaki yaklaşımı göz önünde bulundurarak, Azure Cosmos DB Otomatik Yük Devretme'de yüksek kullanılabilirlik elde ediyorsanız, çözümlerinizi uygulamayı mümkün olan en yüksek SLA'da çalıştıracak şekilde yapılandırabilirsiniz.

Uygulama katmanı için Traffic Manager iç içe geçmiş profillerle yapılandırılması gerekir. Bu tasarımı en üst düzeye iterek farklı uygulama seçimlerini bölge başına ölçeklendirebilirsiniz. Bölge başına dağıtım yüksek kullanılabilirlik yaklaşımını da benimser.

Performans

Sistem performansı, işlem ve veritabanı düzeyindeki bir dizi faktörden etkilenir. Bir sanal App Service veya başka bir işlem seçeneği için SKU, her bölgede kullanılabilen belleği ve çekirdekleri etkiler. Buna ek olarak, işlem katmanının dağıtılacağı bölge sayısı, işleme kapasitesine sahip olduğu ölçeği dikte eder. Ek konumların dağıtımı mevcut bölgeleri baskı altında tutar ve uygulamanın karşılanabilecek maksimum aktarım hızında doğrusal artışlara neden olması gerekir.

Cosmos veritabanı, işlem katmanı kaynakları için bir performans sorununa neden olmayacak şekilde yapılandırıldı. Cosmos DB'deki her veritabanı ve kapsayıcı, otomatik ölçeklendirme için yapılandırıldığından ve Cosmos DB'nin istekleri kısıtlamamalarını sağlayan en yüksek istek birimi değeriyle sağlanmalıdır. Cosmos DB varlıkları için uygun maksimum istek birimi değerlerini belirlemek için uygulama için yaklaşık en yüksek aktarım hızına yakın yük testleri çalıştırabilirsiniz. Daha güçlü karşıtlarıyla karşılaştırıldığında, daha zayıf tutarlılık düzeyleri daha yüksek aktarım hızı ve performans avantajları sunar.

En önemlisi, her bölgesel API'nin istekleri en yakın Cosmos DB bölgesine yönlendirip yönlendirmesi için SDK, Azure İşlevleri bağlamaları gibi, Cosmos DB'den okunan ve Cosmos DB'ye yazan kodda mantık uygulanırken PreferredLocations kullanılmalıdır. SDK, Azure Cosmos DB hesabı yapılandırmasına, geçerli bölgesel kullanılabilirlik durumuna ve belirtilen tercih listesine bağlı olarak, okuma ve yazma işlemlerini gerçekleştirmek için en uygun uç noktayı seçer. Bu işlem önemli performans artışları ile sonuç verir.

Dayanıklılık

Daha yüksek bir güvenlik için Azure veritabanı dağıtımları için kullanılabilirlik Cosmos kullanabilirsiniz. Ayrıca, Cosmos DB dağıtımında hangi tutarlılık düzeyi seçimlerini Cosmos bağlıdır. Bu tutarlılık düzeyine bağlı olarak farklı bir güvenlik düzeyi elde edeceksiniz (daha fazla bilgi için bkz. Tutarlılık, kullanılabilirlik ve performanstan çıkarmalar).

Ölçeklenebilirlik

Ölçeklendirme bu diyagramda birçok düzeyi temel alan bir uygulamadır. Azure Cosmos DB, esnek ölçek ve tahmin edilebilir performans için tasarlanmıştır. Uygulama düzeyinde, kullanılan işlem modeline bakmalısınız. Azure İşlevleri ve App Service otomatik olarak ölçeklendirme. Azure Sanal Makineler için Azure Sanal Makine Ölçek Kümelerini kullanabilirsiniz. Bu ihtiyacı fark ettiyseniz, mümkün olduğunda her zaman sunucusuz bir seçeneği göz önünde bulundurabilirsiniz.

Güvenlik

Güvenlik açısından bakıldığında, ortam erişiminin güvenliğini sağlamak için Azure Active Directory kimlik tabanlı bir sisteme doğru inin. Arka uçta uygulama yönetilen kimlikler aracılığıyla erişilir (en iyi tasarımla) ancak erişim güvenliğini sağlamak için Azure Active Directory Users ve Azure Key Vault yaklaşımını da göz önünde bulundurabilirsiniz. Ayrıca, Cosmos DB örneği daha fazla güvenlik altına alınarak yalnızca okuma ve yazma özelliğine sahip varlıklar farklı bölgelere dağıtılan çeşitli arka uçlar olacak şekilde sağlanacak. IP kısıtlaması, yerleşik güvenlik duvarı kullanılarak hesaba uygulanabilir.

Ayrıca, RBAC Azure Active Directory doğrudan Cosmos DB SQL API'sinde de desteklemektedir.

Sonraki adımlar

Azure Cosmos DB hakkında daha fazla bilgi:

Daha fazla bilgi Azure Traffic Manager:

İlgili çözüm fikirleri:

İlgili tam mimariler:

İlgili mimari Kılavuzu: