Çok Kiracılı ve Azure Uygulaması Yapılandırması
Azure Uygulaması Yapılandırması, uygulamanız için yapılandırma ayarlarını depolamanıza olanak tanır. Azure Uygulaması Yapılandırması'nı kullanarak Dış Yapılandırma Deposu düzenini kolayca uygulayabilirsiniz. Bu makalede, Azure Uygulaması Yapılandırması'nın çok kiracılı sistemlerle çalışırken yararlı olan özelliklerinden bazılarını açıklıyoruz ve çok kiracılı bir çözümde Azure Uygulaması Yapılandırması'nı kullanma yönergelerine ve örneklerine bağlanıyoruz.
Yalıtım modelleri
Depo, Azure Uygulaması Yapılandırma hizmetinin tek bir örneğine başvurur.
Çok kiracılı bir çözümde iki tür ayarın olması yaygın olarak görülür:
Paylaşılan ayarlar, genel ayarlar veya dağıtım damgası içindeki tüm kiracılar için geçerli olan ayarlar gibi birden çok kiracıya uygulanan ayarlardır. Genel ayarlar genellikle paylaşılan bir Uygulama Yapılandırması deposunda depolanır. Bu yaklaşımı izleyerek, bir ayarın değeri değiştiğinde güncelleştirmeniz gereken yer sayısını en aza indirirsiniz. Bu yaklaşım, ayarların eşitlenme riskini de en aza indirir.
Her kiracının veritabanı adı veya iç tanımlayıcıları gibi kiracıya özgü ayarlar. Alternatif olarak, belirli bir kiracı tarafından bildirilen bir sorunu tanılamanız ve bu kiracıdan tanılama günlüklerini toplamanız gerektiği gibi, her kiracı için farklı günlük düzeyleri belirtmek isteyebilirsiniz. Birden çok kiracı için kiracıya özgü ayarları tek bir depoda birleştirmeyi veya her kiracı için bir depo dağıtmayı seçebilirsiniz. Bu karar gereksinimlerinize bağlı olmalıdır. Çözümünüz birden çok kiracı için tek bir paylaşılan uygulama katmanı kullanıyorsa, kiracıya özgü depoları kullanmanın çok düşük bir avantajı olabilir. Ancak kiracıya özgü uygulama örnekleri dağıtırsanız, kiracıya özgü yapılandırma depolarını dağıtarak aynı yaklaşımı yansıtmayı seçebilirsiniz.
Aşağıdaki tabloda, Azure Uygulaması Yapılandırması için ana kiracı yalıtım modelleri arasındaki farklar özetlemektedir:
Dikkat edilmesi gereken noktalar | Paylaşılan mağaza | Kiracı başına depolama |
---|---|---|
Veri yalıtımı | Düşük. Her kiracının verilerini tanımlamak için anahtar ön ekleri veya etiketleri kullanma | Yüksek |
Performans yalıtımı | Düşük | Yüksek |
Dağıtım karmaşıklığı | Düşük | Orta-yüksek |
operasyonel karmaşıklık | Düşük | Orta-yüksek |
Kaynak maliyeti | Düşük | Orta-yüksek |
Örnek senaryo | Paylaşılan uygulama katmanına sahip büyük çok kiracılı çözüm | Tamamen yalıtılmış dağıtımlara sahip premium katman kiracıları |
Paylaşılan mağazalar
Tüm çözümünüz için paylaşılan bir Azure Uygulaması Yapılandırma deposu veya her damga için bir depo dağıtabilirsiniz. Daha sonra tüm kiracılarınızın ayarları için aynı depoyu kullanabilir ve bunları ayırt etmek için anahtar ön ekleri veya etiketleri kullanabilirsiniz.
Kiracı başına büyük miktarda veri depolamanız gerekiyorsa veya çok sayıda kiracıya ölçeklendirmeniz gerekiyorsa, tek bir depo için kaynak sınırlarından herhangi birini aşma riskiyle karşı karşıya olabilirsiniz. Bu senaryoda, dağıtım ve yönetim maliyetlerini en aza indirmek için kiracılarınızı bir dizi paylaşılan depoda parçalayıp parçalayabileceğinizi düşünün.
Bu yaklaşımı izlerseniz, geçerli olan kaynak kotalarını ve sınırlarını anladığınızdan emin olun. Özellikle, kullandığınız hizmet katmanı için toplam depolama sınırına dikkat edin ve saat başına maksimum isteği aşmadığınızdan emin olun.
Kiracı başına depo sayısı
Bunun yerine, her kiracı için bir Azure Uygulaması Yapılandırma deposu dağıtmayı seçebilirsiniz. Azure Uygulaması Yapılandırması standart katmanı, aboneliğinizde sınırsız sayıda mağaza dağıtmanıza olanak tanır. Ancak, daha fazla kaynak dağıtmanız ve yapılandırmanız gerektiğinden, bu yaklaşımı yönetmek genellikle daha karmaşıktır. Ayrıca dağıttığınız her mağaza kaynağı için bir ücret uygulanır.
Aşağıdaki durumlardan birine sahipseniz kiracıya özgü depoları göz önünde bulundurun:
- Anahtarların her kiracı için ayrı olduğu müşteri tarafından yönetilen şifreleme anahtarlarını kullanmanız gerekir.
- Kiracılarınız, yapılandırma verilerinin diğer kiracıların verilerinden tamamen yalıtılmış olmasını gerektirir. Azure Uygulaması Yapılandırması için erişim izni depo düzeyinde denetlendiği için ayrı depolar dağıtarak ayrı erişim izinleri yapılandırabilirsiniz.
çok kiracılılığı destekleyen Azure Uygulaması Yapılandırması özellikleri
Azure Uygulaması Yapılandırması'nı çok kiracılı bir uygulamada kullandığınızda, kiracıya özgü ayarları depolamak ve almak için kullanabileceğiniz çeşitli özellikler vardır.
Anahtar ön ekleri
Azure Uygulaması Yapılandırması'nda, uygulama ayarlarını temsil eden anahtar-değer çiftleriyle çalışırsınız. anahtar, yapılandırma ayarının adını temsil eder. Anahtarlarınız için hiyerarşik bir adlandırma yapısı kullanabilirsiniz. Çok kiracılı bir çözümde, anahtarlarınızın ön eki olarak bir kiracı tanımlayıcısı kullanmayı göz önünde bulundurun.
Örneğin, uygulamanızın günlük düzeyini belirtmek için bir ayar depolamanız gerektiğini varsayalım. Tek kiracılı bir çözümde bu ayarı LogLevel
olarak adlandırabilirsiniz. Çok kiracılı bir çözümde, kiracı 1tenant2/LogLevel
, tenant1/LogLevel
kiracı 2 gibi hiyerarşik bir anahtar adı kullanmayı seçebilirsiniz.
Azure Uygulaması Yapılandırması, hiyerarşideki birden çok düzeyi desteklemek için uzun anahtar adları belirtmenize olanak tanır. Uzun anahtar adları kullanmayı seçerseniz anahtarlar ve değerler için boyut sınırlarını anladığınızdan emin olun.
Uygulamanıza tek bir kiracının yapılandırmasını yüklediğinizde, yalnızca bu kiracının anahtarlarını yüklemek için bir anahtar ön eki filtresi belirtebilirsiniz. Ayrıca Azure Uygulaması Yapılandırması için sağlayıcı kitaplığını, anahtarlardan anahtar ön ekini uygulamanızda kullanılabilir hale gelmeden önce kırpacak şekilde yapılandırabilirsiniz. Anahtar ön ekini kırptığınızda uygulamanız, kiracının değerleri uygulamaya yüklenmiş tutarlı bir anahtar adı görür.
Etiketler
Azure Uygulaması Yapılandırması aynı anahtara sahip ayrı değerlere sahip olmanıza olanak tanıyan etiketleri de destekler.
Etiketler genellikle sürüm oluşturma, birden çok dağıtım ortamıyla çalışma veya çözümünüzdeki diğer amaçlar için kullanılır. Kiracı tanımlayıcılarını etiket olarak kullanabilirsiniz ancak başka hiçbir şey için etiketleri kullanamazsınız. Bu nedenle, çok kiracılı çözümler için kiracıya özgü ayarları yönetmek için anahtar ön ekleri kullanmak ve etiketleri başka amaçlarla kullanmak genellikle iyi bir uygulamadır.
Her kiracı için etiket kullanmaya karar verirseniz, uygulamanız bir etiket filtresi kullanarak yalnızca belirli bir kiracının ayarlarını yükleyebilir. Her kiracı için ayrı uygulama dağıtımlarınız varsa bu yaklaşım yararlı olabilir.
Uygulama tarafı önbelleğe alma
Azure Uygulaması Yapılandırması ile çalışırken, ayarları her kullandığınızda yüklemek yerine uygulamanızda önbelleğe almak önemlidir. Azure Uygulaması Yapılandırma sağlayıcısı kitaplıkları ayarları önbelleğe alır ve otomatik olarak yeniler.
Ayrıca uygulamanızın tek bir kiracının veya tüm kiracıların ayarlarını yükleyip yüklemediğine karar vermeniz gerekir.
Kiracı tabanınız büyüdükçe, tüm kiracıların ayarlarını birlikte yüklemek için gereken süre ve bellek miktarı artacaktır. Bu nedenle çoğu durumda, uygulamanızın ihtiyaç duyduğu her kiracının ayarlarını ayrı olarak yüklemek iyi bir uygulamadır.
Her kiracının yapılandırma ayarlarını ayrı ayrı yüklerseniz, uygulamanızın her bir ayar kümesini diğerlerine ayrı ayrı önbelleğe alması gerekir. .NET uygulamalarında, kiracının IConfiguration
nesnesini önbelleğe almak için bellek içi önbellek kullanmayı ve ardından önbellek anahtarı olarak kiracı tanımlayıcısını kullanmayı göz önünde bulundurun. Bellek içi önbellek kullanarak her istekte yapılandırmayı yeniden yüklemeniz gerekmez, ancak uygulamanız bellek baskısı altındaysa önbellek kullanılmayan örnekleri kaldırabilir. Ayrıca her kiracının yapılandırma ayarları için süre sonu zamanlarını yapılandırabilirsiniz.
Katkıda Bulunanlar
Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.
Asıl yazar:
- John Downs | Baş Yazılım Mühendisi
Diğer katkıda bulunanlar:
- Arsen Vladimirskiy | Baş Müşteri Mühendisi, Azure için FastTrack
- Zhenlan Wang | Ana Yazılım Mühendisliği Yöneticisi, Azure Uygulaması Yapılandırması
Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.
Sonraki adımlar
Çok kiracılı dağıtım ve yapılandırma yaklaşımlarını gözden geçirin.