Azure Cosmos DB kullanarak genel olarak dağıtılmış uygulamalar

Azure Cosmos DB
Traffic Manager

Uygulamaların yüksek oranda hızlı yanıt veren ve her zaman çevrimiçi olması gerekir. Bu makalede, bu gereksinimleri karşılamak için genel olarak dağıtılmış uygulamaların kullanıldığı bir çözüm sunulur. Azure Cosmos DB ve Azure küresel veri merkezlerinde yerleşik olarak bulunan yüksek kullanılabilirlik ve düşük gecikme süresi özelliklerinden yararlanır.

Mimari

Azure Traffic Manager'ın bir uygulama kullanıcısını Azure Cosmos DB'ye erişmek için en iyi konuma nasıl yönlendirdiğini gösteren mimari diyagramı.

Bu mimarinin bir Visio dosyasını indirin.

Veri akışı

  1. Kullanıcı bir uygulamaya ayrılmış bir istemci aracılığıyla erişir.
  2. Azure Traffic Manager, kullanıcının bağlantısını uygulamaya erişmek için en iyi konuma yönlendirmek için bir yönlendirme profili veya iç içe profiller kullanır.
  3. Kullanıcının yönlendirıldığı bölgede, uygulama bir veritabanı oturumu ve bağlantısı kurar.
  4. Çözüm, çeşitli karmaşıklıklara sahip uygulamaları barındırabilir. Örneğin, uygulama temel, statik bir sayfa olabilir. Veya Kubernetes'te barındırılan mikro hizmet odaklı bir uygulama olabilir.
  5. Uygulama ortamı ile Azure Cosmos DB arasındaki bağlantı, Azure Key Vault'dan Azure Cosmos DB anahtarlarını alan bir Azure Active Directory (Azure AD) kullanıcısı aracılığıyla işlenir.
  6. Uygulama en yakın bölgenin farkındadır ve Azure Cosmos DB çoklu giriş API'lerini kullanarak 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 DB hesabınıza bölge ekleyip kaldırdığınızda uygulamanızın yeniden dağıtılması veya duraklatılması gerekmez. Uygulama yüksek oranda kullanılabilir olmaya devam eder. Azure Cosmos DB, verilerin genel dağıtımını ve çoğaltmasını, tanımlanan bölgelerin sayısına göre işler. Otomatik yük devretme seçeneği açıksa ve bir bölge kullanılamaz hale gelirse, sistem en yüksek yük devretme önceliğine sahip bölgeye yük devreder. Bu yük devretme için kullanıcı eylemi gerekmez. Otomatik yük devretme etkinleştirildiğinde bölge öncelikleri değiştirilebilir.

Bileşenler

  • Traffic Manager: DNS tabanlı bir trafik yük dengeleyicidir. İç içe yerleştirilebilen çeşitli DNS tabanlı trafik yönlendirme seçeneklerini kullanarak uygulamalarınız için yük dengeleme seçenekleri oluşturmak için Traffic Manager'ı kullanabilirsiniz.
  • Azure AD: Çok kiracılı, bulut tabanlı bir kimlik ve erişim yönetimi hizmetidir. şirket içi dizinleri eşitlemek ve çoklu oturum açmayı etkinleştirmek için Azure AD kullanabilirsiniz.
  • Azure Cosmos DB, tüm ölçekler için genel olarak dağıtılmış, çok modelli bir veritabanıdır.

Alternatifler

Bu senaryoya çeşitli işlem ve sunucusuz seçenekler ekleyebilirsiniz.

İşlem seçenekleri

  • Azure Sanal Makineler bir hizmet olarak altyapı (IaaS) teklifidir. Linux ve Windows sanal makineleri (VM) gibi isteğe bağlı, ölçeklenebilir bilgi işlem kaynaklarını dağıtmak için Sanal Makineler kullanabilirsiniz.
  • Azure Kubernetes Service (AKS), uygulama ve mikro hizmet temel iş yükleri için yüksek oranda kullanılabilir, güvenli ve tam olarak yönetilen bir Kubernetes hizmetidir.
  • Azure App Service, web ve mobil senaryolar için güçlü bulut uygulamaları oluşturmaya, dağıtmaya ve ölçeklendirmeye yönelik bir çerçeve sağlar.

Sunucusuz seçenekler

  • Azure İşlevleri, olay odaklı sunucusuz bir işlem platformudur. İşlevler ile bulutta büyük ölçekte dağıtım ve çalıştırma gerçekleştirebilir ve tetikleyicileri ve bağlamaları kullanarak hizmetleri tümleştirebilirsiniz.
  • Azure Logic Apps iş akışlarını otomatikleştirir. Bu hizmetle, hızlı bir şekilde güçlü tümleştirme çözümleri oluşturabilirsiniz.

Senaryo ayrıntıları

Uygulamaların hızlı yanıt süreleri sağlaması gerekir. Kuruluşlar, düşük gecikme süresi elde etmek için uygulamaları kullanıcılarına yakın bir şekilde dağıtır. Ayrıca verileri kullanıcılara yakın tutarlar. Kuruluşlar küresel olarak çalıştığında, birden çok veri merkezi ve genel olarak dağıtılmış uygulamalar kullanmaları gerekir. Bu uygulamalar daha sonra yüksek oranda yanıt vermeye devam etmek için genel olarak çoğaltılan verilerin yerel bir kopyasını kullanır.

Bu çözümde genel olarak dağıtılmış uygulamalar kullanılır. Ayrıca verileri birden çok bölgeye saydam bir şekilde çoğaltan genel olarak dağıtılmış bir veritabanı sistemi olan Azure Cosmos DB'yi de kullanır. Uygulamalar, verileri okumak ve yazmak için veritabanının yerel bir çoğaltmasını kullanır.

Düşük gecikme süresi sunmanın yanı sıra çözüm, Azure Cosmos DB'nin sağladığı yüksek kullanılabilirlik avantajından da yararlanır.

Olası kullanım örnekleri

Bu çözüm, küresel olarak çalışan ve verileri kullanıcılarına yakın tutması gereken sektörler için uygundur. Medya, eğlence, seyahat ve konukseverlik sektörleri buna örnek olarak verilebilir. Genel olarak dağıtılmış uygulamaları kullanan bazı senaryolar şunlardır:

  • Tüketici video hizmetlerinin akışı.
  • Kişiler ve ürünler için uygulama tabanlı teslim alma ve teslim hizmetleri.

Dikkat edilmesi gerekenler

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure Well-Architected Framework'ün yapı taşlarını uygular. Daha fazla bilgi için bkz. Microsoft Azure Well-Architected Framework.

Güvenilirlik

Güvenilirlik, uygulamanızın müşterilerinize yaptığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış.

Azure Cosmos DB örneğinin kullanılabilirliği birçok faktöre bağlıdır. Azure Cosmos DB'nin çoğaltıldığı bölge sayısı arttıkça uygulamanın kullanılabilirliği de artar. Her bölge bir Azure Cosmos DB kapsayıcısının tüm veri bölümlerini içerir ve varsayılan olarak okuma işlemleri yapabilir. Veri katmanının kullanılabilirliğini artırmak için çok bölgeli yazmayı etkinleştirebilirsiniz. Ayrıca daha zayıf tutarlılık düzeyleri ve kullanılabilirlik alanları kullanarak kullanılabilirliği artırabilirsiniz.

Çözümünüzü uygulamanızın sunduğu SLA'yı en üst düzeye çıkaracak şekilde yapılandırmak için Azure Cosmos DB otomatik yük devretmesini kullanın.

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

Daha yüksek dayanıklılık için Azure Cosmos DB dağıtımları için kullanılabilirlik alanlarını kullanabilirsiniz. Dayanıklılık, Azure Cosmos DB dağıtımınızda kullandığınız tutarlılık düzeyine de bağlıdır. Daha fazla bilgi için bkz . Tutarlılık, kullanılabilirlik ve performans dengeleri.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanımına karşı güvence sağlar. Daha fazla bilgi için bkz. Güvenlik sütununa genel bakış.

Güvenlik açısından bakıldığında, Azure AD ortama erişimin güvenliğini sağlamak için kullanılabilecek kimlik tabanlı bir sistem için çaba gösterin. Arka uçta, yönetilen kimlikler aracılığıyla uygulamaya erişin. Alternatif olarak, erişimin güvenliğini sağlamak için Azure AD kullanıcıları ve Key Vault kullanmayı göz önünde bulundurun. Azure Cosmos DB örneğinin güvenliği daha da sağlanmalıdır. Farklı bölgelere dağıtılan çeşitli arka uçları, veritabanı örneğini okuyabilen ve yazabilen tek varlıklar yapın. Yerleşik güvenlik duvarını kullanarak hesaba IP adresi kısıtlaması uygulayın.

Azure Cosmos DB, Azure AD ile rol tabanlı erişim denetimini de destekler. Daha fazla bilgi için bkz. Azure Cosmos DB hesabınız için Azure Active Directory ile rol tabanlı erişim denetimini yapılandırma.

Performans verimliliği

Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.

Sistem performansı, işlem ve veritabanı düzeyinde birçok faktörden etkilenir. bir App Service planının veya başka bir işlem seçeneğinin SKU'su, her bölgede kullanılabilen belleği ve çekirdekleri etkiler. Ayrıca işlem katmanının dağıtılacağı bölge sayısı, işleyebildiği ölçeği dikte edebilir. Daha fazla konumun dağıtılması mevcut bölgelerdeki baskıyı azaltır ve uygulamanın karşılayabildiği maksimum aktarım hızındaki doğrusal artışlara neden olmalıdır.

Azure Cosmos DB'yi işlem katmanı kaynakları için performans sorunu olmayacak şekilde yapılandırın. Azure Cosmos DB'deki her veritabanı ve kapsayıcı otomatik ölçeklendirme için yapılandırılmalıdır ve Azure Cosmos DB'nin istekleri kısıtlamamasını sağlayan bir maksimum istek birimi değeri verilmelidir. Azure Cosmos DB varlıkları için uygun maksimum istek birimi değerlerini belirlemek için, uygulama için yaklaşık maksimum aktarım hızına yakın yük testleri çalıştırabilirsiniz. Daha güçlü karşılıkları ile 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.

Kritik olarak, azure Cosmos DB'den okuyan ve Azure Cosmos DB'ye yazan kodda mantığı uygularken, her bölgesel API'nin istekleri en yakın Azure Cosmos DB bölgesine yönlendirmesi için SDK, PreferredLocations İşlev bağlamaları vb. aracılığıyla kullanılması gerekir. Azure Cosmos DB hesap yapılandırmasına, geçerli bölgesel kullanılabilirliğe ve belirtilen tercih listesine bağlı olarak SDK, okuma ve yazma işlemlerini gerçekleştirmek için en uygun uç noktayı seçer. Bu işlem önemli performans artışlarına neden olur.

Ölçeklendirme, bu çözümdeki birçok düzeyi temel alır. Azure Cosmos DB esnek ölçek ve öngörülebilir performans için oluşturulmuş bir hizmettir. Uygulama düzeyinde kullanılan işlem modeline bakmanız gerekir. İşlevler ve App Service otomatik ölçeklendirme yapabilir. Azure VM'leri için Azure Sanal Makine Ölçek Kümeleri kullanabilirsiniz. Bu gereksinimin farkında olduğunuzda, mümkün olduğunda her zaman sunucusuz bir seçeneği göz önünde bulundurmanız gerekir.

Sonraki adımlar

Azure Cosmos DB hakkında daha fazla bilgi:

Traffic Manager hakkında daha fazla bilgi:

İlgili çözüm fikirleri:

İlgili tam mimariler:

İlgili mimari kılavuzu: