Çok kiracılı model
Şimdi çok kiracılı mimariye ve aşağıdakiler gibi farklı yönlerine odaklanalım:
- Veri yalıtımı
- Kontrol düzlemi
- "Gürültülü komşu" sorunundan kaçınma
Veri yalıtımı
Şimdiye kadar çözümünüz için gereksinimleri toplamış ve özellikle de şu anda uyumluluk gereksinimlerini biliyorsunuz ve bu da veri yalıtımı stratejisi üzerinde büyük bir etkiye sahip olacaktır. Veriler için yalıtım düzeylerine karar verirken dikkate alınması gereken birkaç faktör daha vardır:
- Güvenlik: Bir kiracının verilerinin yalıtılmış ve diğer kiracıların verilerinden ayrılmış olmasını sağlamak çok önemlidir. Bu, güçlü erişim denetimleri, şifreleme ve istenmeyen veri sızıntıları veya kiracılar arası veri erişimi olmadığından emin olunmasını içerir.
- Maliyetler: Kiracıların dağıtım altyapınıza olan yoğunluğu ne kadar yüksek olursa, o altyapıyı sağlama maliyeti de o kadar düşük olur. Ancak, paylaşılan altyapı gürültülü komşu sorunu gibi sorunların olasılığını artırır.
- Performans: Birden çok müşteri veya kiracı aynı altyapıyı paylaştığında, performans dikkate alınması gereken kritik bir faktördür. Yalıtım ve performans arasında bir denge bulmak önemlidir. Bunu başarmak için, yanıt süreleri, aktarım hızı ve kaynak kullanımı dahil olmak üzere sistemin performansını sürekli izlemek için izleme ve profil oluşturma araçları uygulamanız gerekir. Performans sorunlarını ve iyileştirme alanlarını belirlemek için verileri analiz edin. Veri depoları genellikle bir darboğaz haline gelir ve gürültücü komşu sorununa neden olur.
- Ölçeklenebilirlik: Veri depolama hizmetleriyle çalışırken kiracı sayısını ve veri hacmini dikkate alır. Kiracı başına verileri sınırlı olan birkaç kiracı için kapsamlı ölçeklenebilir depolama veya tam otomasyon planlamak boşa gider. Ancak büyümeyle birlikte verileri, depolamayı ve otomasyonu ölçeklendirmeye yönelik net bir strateji değerli hale gelir. Hırslı ölçeklendirme için, verilerinizi ve depolama yaklaşımınızı ölçeklenebilirlik göz önünde bulundurarak tasarlamaya öncelik sağlayın. Ölçeklendirme planlarınızı değerlendirin ve veri depolama mimarinizi uygun şekilde titizlikle uyarlayın.
Çok kiracılı çözümler için çeşitli veri yalıtımı düzeyleri vardır:
En az yalıtılmış: tüm kiracılar arasında paylaşılan veritabanı / veri deposu. Bu yaklaşım, altyapıya en yüksek kiracı yoğunluğu sağlar, bu nedenle herhangi bir yaklaşımın en düşük maliyetiyle gelme eğilimindedir. Ayrıca yönetilmesi, yedeklenmesi ve güvenliğinin sağlanması gereken tek bir veritabanı veya kaynak olduğu için genellikle yönetim ek yükünü azaltır. Ancak yukarıda açıklandığı gibi, veritabanı tüm kiracılar arasında paylaşıldığında güvenlik, performans ve ölçeklenebilirlik hesaba katılmalıdır. Veritabanlarının parçalanması, yatay olarak ölçeklendirmeye ve daha yüksek hacimli verileri barındırmaya yardımcı olabilir.
Her kiracı için ayrılmış bir veritabanı bulunurken, işlem (uygulama örneği) kiracılar arasında paylaşılır. Bu modelde, her kiracının verileri diğerlerinden yalıtılır ve her kiracı için bir miktar özelleştirmeyi destekleyebilirsiniz.
Kontrol düzlemi
Kontrol düzleminin yapısı ve görevleri çözümünüzün gereksinimlerine ve mimarisine göre değişir. Bazı çok kiracılı kurulumlarda farklı karmaşık sorumluluklar taşırken, bazılarında ise daha basittir.
Tipik çekirdek kontrol düzlemi sorumlulukları şunlardır:
- Ekleme, taşıma ve çıkarma gibi kiracı yaşam döngüsü olaylarını işleme.
- Kiracı özellik kullanımını ve sistem performansını izleme.
- Kiracıya özgü kaynaklar da dahil olmak üzere iş yükleri için sistem kaynaklarını ayırma ve yönetme. Bu, bir işlem hattı aracılığıyla dağıtım yapmayı veya dağıtımları doğrudan gerçekleştirmeyi içerebilir.
- Ağ yönlendirmesini yapılandırma veya kapasiteyi ölçeklendirme gibi paylaşılan kaynakları yeni kiracılar için uyarlama.
- Kiracı yapılandırmalarını depolama ve denetleme.
- Faturalama veya idare için kiracı kaynak tüketimini ölçme.
Kiracıya özgü kaynaklar içermeyen tamamen çok kiracılı modeller için temel bir denetim düzlemi, yeni kiracılar kaydolduğunda kayıtları güncelleştirme gibi bir veritabanındaki kiracı verilerini yönetebilir.
Örnek olarak Azure SaaS Dev Kit mimarisine göz atabiliriz.
Azure SaaS Dev Kit'te iki bölümden oluşan denetim düzlemi vardır: "SaaS Yönetim hizmeti" ve "Kaydolma Yönetimi" web sayfası:
SaaS Yönetici Hizmeti modülü (Yönetici Hizmeti), iki ana sorumluluğu olan bir API'dir:
- Kiracılarda Oluşturma, Okuma, Güncelleştirme ve Silme (CRUD) işlemlerini gerçekleştirme
- Kiracılara rol ve izin atamak için izinler API'sine aracı olarak hizmet verme
SaaS SignUp Administration Web (SignupAdmin) modülü, SaaS ürününüzde self servis eklemeyi kolaylaştırmaya yönelik bir web uygulamasıdır. Son Kullanıcılar/Müşteriler aşağıdakiler için bu siteyi ziyaret edebilir:
- Hesap için kaydolma
- Yeni kiracı oluşturmak için bir onboarding sürecinden geçin
- Mevcut kiracılarını yönetme
Bu site, genel yöneticilerin uygulamanın tüm kiracılarını ve kullanıcılarını görüntülemesi ve yönetmesi için yönetici işlevselliğini de destekler.
Gürültülü komşu sorunu
Gürültülü komşu sorunları paylaşılan sistemlerde doğal bir risktir ve gürültülü bir komşudan etkilenme olasılığını tamamen ortadan kaldırmak mümkün değildir.
Gürültülü komşu etkisi, bir kullanıcı veya uygulama kullanılabilir kaynakların çoğunu tükettiğinde ortaya çıkar ve diğer kullanıcılar için performans sorunlarına neden olur.
Gürültülü komşu sorunlarının olasılığını azaltmak için yazılım sağlayıcılarının isteklerinin başarı oranını ve performansını izlemesi ve karşılaştırma için temel ölçümler oluşturması gerekir.
Yazılım sağlayıcıları aşağıdaki uygulamaları oluşturabilir:
- Kiracılara önceden sağlanan veya ayrılmış kapasite için daha fazla altyapı teklifi sağlama
- Kaynak kullanımını izleme ve temel altyapının otomatik ölçeklenebilirliğini uygulama
- Kaynak idare ilkelerini uygulama
- Kaynak kullanımını düzeltmek için şu teknikleri uygulayın:
- Çözümünüzün birden fazla örneğini barındırıyorsanız, kiracıları örnekler veya birimler arasında yeniden dengelemeyi göz önünde bulundurun. Örneğin, kullanımlarındaki zirveleri düzleştirme amacıyla birden çok damgaya öngörülebilir ve benzer kullanım desenlerine sahip kiracılar yerleştirmeyi göz önünde bulundurun
- Arka plan işlemleriniz mi yoksa zamana duyarlı olmayan yoğun kaynak kullanan iş yükleriniz mi olduğunu düşünün. Zamana duyarlı iş yüklerinde en yüksek kaynak kapasitenizi korumak için bu iş yüklerini yoğun olmayan zamanlarda zaman uyumsuz olarak çalıştırın
Buna ek olarak, hizmet sağlayıcıları aşağı akış hizmetlerinin gürültülü komşu sorunlarını azaltmak, belirli kiracı işlemlerini kısıtlamak ve bir Hizmet Kalitesi (QoS) sistemi oluşturmak için denetimler sağlayıp sağlamadığını denetleyebilir.
Her hizmetin gürültülü komşu sorununu çözmek için kendine özgü yaklaşımları ve en iyi yöntemleri olabilir.
Aşağıdaki belgede daha fazla bilgi bulabilirsiniz: Gürültülü Komşu karşı örüntü - Azure Mimari Merkezi | Microsoft Learn