Azure'da başarılı bir SaaS ürünü inşa etmek, birden çok müşteri için bir gün tasarlamak anlamına gelir. Multi-tenancy sadece bir özellik değildir - temel kavramlar, tasarım ilkeleri ve uygulamanızı ölçen mimari temeldir. Azure, çok katmanlılık ve maliyet kontrolleri uygulamanıza yardımcı olmak için zengin bir hizmet ekosistemi sağlar, ancak doğru mimari sizin kiracınızın gereksinimlerine bağlıdır, veri hassasiyetine ve operasyonel kapasitenize bağlıdır.Bu makaleniz temel kavramlar, tasarım ilkelerine, veri izolasyon stratejilerine, Azure hizmetlerine, uygulama kalıplarına ve operasyonel en iyi uygulamalarla başlar.
SaaS'da Multi-Tenancy
Çok katmanlılık, uygulamanın tek bir örneği birden fazla kiracıya hizmet ettiği bir yazılım mimarisidir (bir kod tabanı, bir dağıtma), ve hızlı özellikteki veri izolasyonunu ve paylaşılan bir ortamdaki özel yapılandırmayı sağlar.
Azure SaaS sağlayıcıları genellikle üç kararla karşı karşıya kalır: izolasyon derecesi, hesaplama modeli (PaaS vs. IaaaS vs. konteynerler), ve depolama mimarisi. bu ticaret-offs erken daha pahalı yeniden-arşistlüğü önlemeye başlar.
Azure üzerinde Multi-Tenant Uygulamaları için Temel Tasarım İlkeleri
Azure'da etkili çok katmanlı tasarım dört sütunda: izolasyon, ölçeklenebilirlik, güvenlik ve maliyet yönetimi. Her ilke Azure servis ve dağıtım modellerinin seçiminizi etkiler.
Isolation
Veri ve yapılandırma onants. Isolation asla mantıksal olabilir (orta düzey onant kimlikleri paylaşılan bir veritabanında) veya fiziksel (parate databases, depolama hesapları veya hatta ayrı abonelikler) Azure SQL Database ve Azure Cosmos DB desteği her iki onant seviyesindeki güvenlik politikaları ve konteyner seviyesindeki anahtarlarla ilgili yaklaşımlar olabilir.
Scalability
Çok katmanlı iş yükleri, bazı kiracılar hızla büyürken, diğerleri sabit kalırken Azure’un otomatik satış yeteneklerine gider - App Service's ölçekli kurallar gibi, AKS küme otomatik olarak, ve Azure SQL Database elastik havuzlar - uygulama durumunızı manuel müdahale olmadan büyütmeniz için izin verin.
Güvenlik Güvenliği Güvenlik Güvenliği Güvenlik Güvenliği
Her onant, diğer her onanttan izole edilmelidir ve onant kimlikleri ve Azure Key Vault'u sertleştirmeden kaçınmak için korumalıdır. Azure Active Directory (Azure AD) API'de onant-specific B2C veya B2B özellikleri kimlik federasyonu için. Hizmeti-ta-servis iletişim için, yönetilen kimliklere ve Azure Key Vault'u zorlamaktan kaçınmalı.
Maliyet Yönetimi
Ortak altyapı, düşük maliyetli maliyetle azalır, ancak optimize edilmemiş kullanımlar para harcayabilir. Azure Cost Management'ı onant ve track spend.Auto-scaling to handle baseline load ucuzly and scale premium instances for ticks. Database elastik havuzlar, sadece en az DTU/vCore kullanımı için, ortak veya özel bir kaynak stratejisini ayrı olarak ayarlamayı tercih etmek yerine, fiyat modeliniz ile uyumlu veya özel kaynak strateji uyumlu hale getirir.
Data Isolation Strategies
Onant veri depolamanın en uygun mimari karar olduğunu seçmek. Azure, izolasyonda farklı ticaret-offlarla her biri, yönetilebilirlik ve maliyetle destek vermektedir.
Single Database, Shared Schema
Bu modelde, tüm kiracılar her masada onant tanımlayıcı bir sütunla bir veritabanında depolanırlar. (bir yedek, bir bağlantı dizesi) ve küçük kiracılar için en uygun maliyetlidir. Ancak, izolasyon tamamen mantıklıdır: 10 filtreleme kodunuzda bir otobüs diğer on seviyeyi ortaya çıkarabilir (ya da) on müşteri sayısını azaltmak için en basit şekilde devre dışı bırakabilir ve her kodlamayı etkiler.
Ayrı Veritabanları (Database per Tenant)
Her onant kendi veritabanına (ve isteğe bağlı olarak kendi sunucu veya elastik havuz) sahiptir.Bu, en güçlü izolasyonu sağlar - fiziksel veri ayrımı - ve daha kolay (örneğin, GDPR veri uzmanlığı) yedeklemeleri sağlar, geri yükleme ve performans ayarlayıcısı onant başına yapılabilir.
Hibrit Yaklaşımlar
Birçok SaaS sağlayıcısı bir kravatlı strateji benimsemiştir: ücretsiz veya deneme kiracıları ortak bir veritabanı paylaşırken, premium kiracılar veritabanına özel olarak erişimli ve onant veri (örneğin, her onant’ın işlem verilerinin kendi shard veya veritabanına aktarılabilir. Azure SQL Database'in hibrid noktaları ile ortak noktası, örneğin, doğrulama ve on metadata için tek bir veritabanı kullanabilirsiniz.
Azure Hizmetlerini Multi-Tenancy için Çıkarın
Data depolamanın ötesinde, Azure, çoklu-tenant SaaS'ı operasyonelleştirmek için tam bir platform sunuyor. Aşağıdaki hizmetler özellikle ilgilidir.
Tamam ve ev sahipliği
Azure App Servisi birçok SaaS sağlayıcısı için giriş noktasıdır. Otomatik ölçeklendirme, slot tabanlı dağıtımları destekler ve sunucusuz mimariler için Azure Kubernetes Service (AKS) giriş noktaları kullanarak onant-özel depolama hesaplarını ayırt etmenizi sağlar.
Depolama ve Veritabanı
Azure SQL Database ve Cosmos DB'yi zaten tartıştık. blob veya dosya depolama için Azure Blob Storage, ayrı konteyner seviyesinde onant izolasyonu destekliyor. Azure RBAC ile erişim politikalarını uygulayabilirsiniz. Azure Storage hesabı da yüksek izolasyon için bir seçenek, ancak Redis için yönetim kurulunun onant-özel SAS jetonlarını veya anahtar eklerini kullanarak bölümlerini genişletilebilir.
Kimlik ve Access Management
Azure AD B2C (iş-to-consumer), dış kiracılarla SaaS için tasarlanmıştır. Azure API Yönetimleri ile geçerliliği sağlamak için özel politikalar, sosyal kimlik sağlayıcıları ve çok faktörlü kimlik doğrulamayı destekler.For corporate SaaS where onants are organization, Azure AD B2B (business-to-business) kullanıcıların kendi organizasyonlarının bilgilerini imzalamasını sağlar. Azure API Management ile entegre etmek için Azure kaynaklarına kimlikleri kullanın.
Güvenlik ve Sırlar
Azure Key Vault, 10. özel sır, bağlantı dizeleri ve sertifikalar ile hizmet veya geliştiricilere ihtiyacınız olan hizmetleri seçme veya geliştirmeleri için erişim sağlar. Azure Key Vault, Azure SQL Database, Help Data Encryption (TDE) with müşteri tarafından yönetilen anahtar tablolarda depolanır - anahtarlar gerekli olduğunda. Azure Policy and Azure Blueprints help onant uyumluluk gereksinimleri (e.g., geo-restrictions, Allow resource types).
İzleme ve gözlemlenebilirlik
Azure Monitor ve Uygulama İçgörüleri çok katmanlı bir sorun için gereklidir. Tüm telemetri onant kimlik ile - özel özelliklerde veya zenginleştirilmiş bir veri akışı olmadan Azure Yönetilen sabitleyici kurallar oluşturun.Influence Grafana for pan-tenant when pairs are queryed (e.g., database >% 80 for a specific tenant) Use Azure Log Analytics and KQL to examine onant data sızıntı.Get using Azure managed Grafana for pan-tenant.
Multi-Tenancy Desenleri Uygulamayın
Tamamen adanmış olarak paylaşılan bir şekilde seçilerek seçim yapmak için birkaç mimari deseniniz var. Doğru model, kiracınızın büyüklüğüne, uyumluluk ihtiyaçlarına ve DevOps olgunluğa bağlıdır.
Paylaşılan her şey (Tek Uygulama Instance, Shared Database)
Tüm kiracılar aynı uygulama kodunu, hesap kaynaklarını ve veritabanını paylaşıyor. Isolation tamamen mantıkla veya RLS-enforced. Bu model, kaynak kullanımı ve dağıtımını basitleştirir. erken aşama SaaS veya yüksek hacimli için idealdir. ana risk, başkaları için gürültülü bir komşudur.
Ortak Veritabanı, Ayrı Schemas
Tenants tek bir veritabanı paylaşıyor ancak ayrı şemalar (örneğin, onant id sütunu yerine onant id sütunu) mevcuttu ve per-schema yedeklemeleri ( Azure SQL Database) nadiren kullanılır.
Ayrı Veritabanları (Database per Tenant)
Her bir kiracı kendi veritabanına sahiptir ve potansiyel olarak kendi elastik havuzu veya sunucu.Bu model en güçlü izolasyonu, onant-spesifik konfigürasyon için en esneklik ve en kolay uyum (sadece onant tarafından bir veritabanını kaldırabilirsiniz). alt tarafı yönetim kuruludur - birçok veritabanı için senaryo düzenlemeniz, yedekleme ve geçiş eylemleri gerekir. Azure Elastic Jobs, Azure Otomasyon ve Azure CLI yardımcı olabilir.For binlerce kiracı için, onant için bir sharded veritabanı.
Hybrid and Pooled Models
Birçok olgun SaaS sağlayıcıları, örneğin, onant metadata, konfigürasyon ve denetim logları için paylaşılan bir veritabanı kullanın ve belirli bir gelir eşine dayanan onant veri tabanına bağlı olarak bu yaklaşımı destekler. veya küçük kiracıları özel havuzlarda bir araya getirin. Azure SQL Database'in sharding (via Elastic Database araçları) Bu yaklaşımı onant key.
Multi-Tenant Azure SaaS Uygulamaları için En İyi Uygulamalar
İlk tasarımın ötesinde, devam eden işlemler çok katmanlı bir SaaS teklifini bozar veya kırılır. Bu uygulamaları güvenilirlik, güvenlik ve maliyet verimliliği sağlamak için takip edin.
- [FONT:0) Başlangıçtan ölçeklenebilirlik için tasarım.[DÜT:1] Azure'ın App Servisi, AKS ve veri tabanları için inşa edilmiş otomatik satışını kullanın. ölçeklendirme mantığınızı sağlamak için onant büyüme test edin. Azure Front Door veya Trafik Yöneticisini global yük dağıtım için kullanmayı düşünün.
- [FONT:0] Her katmanda onant izolasyonu kabul etmek.[[Dönetici:0) Kontrolünüz, yetkiniz, veri erişiminiz ve giriş her şeyin yalnızca kod düzeyinde kontrollere güvenmemesi gerekir - veritabanı sıra seviyesindeki güvenlik, Azure RBAC veya API politikaları ile düzenli olarak denetim.
- [FONT=0) Sürekli olarak optimize edin ve optimize edin.[Dönetici:0) Azure Monitor'i per-tenant performans, maliyet ve hata oranları takip etmek için kullanın. gürültülü bir komşu veya güvenlik sorunu gösterebilir.
- [FONT:0)Automate onant yaşam döngüsü yönetimi. ARM şablonları, Bicep veya Terraform. Automate veritabanı oluşturma, kimlik kurulumu ve ilk veri tohumlama.Decommission onants temiz bir şekilde -arıcı veriler, geri dönüş erişim, ve gereksiz maliyetlerden kaçınmak için kaynakları ortadan kaldırır.
- [[Döneticileri için planlayın ve kurtarma için.[Dönetici modelleri için, tüm veritabanına geri dönün ve tüm kiracılar için zaman geri yükleme çalışmaları sağlar. per-tenant databases için, otomatik yedekleme politikaları uygulayın (Azure SQL Database bunu otomatik olarak saklama politikaları ile yapar).
- [FONT=0]Implement maliyet izleme maliyeti onant başına maliyet izleme maliyetine sahiptir.[DÜDÜT:1] Tag tüm Azure kaynakları onant ID ile birlikte. Azure Cost Management'ı per-tenant maliyet raporları oluşturmak için kullanın. 10ants based on real tüketim (CPU, storage, data transfer) gelirle uyum sağlamak için.
- [FONT:0) sizi CI/CD boru hattını güvenli dağıtım yuvalarını veya AKS alanlarını kullanarak kullanın. Birden fazla kiracıyı taklit eden Run integration testleri asla giriş veya test çıktılarında onant veriyi açığa çıkarın. Azure Devir kullanın.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Azure'daki çok katmanlı uygulamalar, Azure'un ve Azure SQL Database'in tüm egzersizlerini gerçekleştirerek, herhangi bir deseni uygulamaya koyup, tam olarak adanmış olan ilkeleri ve uygulamalarınıza dayanarak, SaaS sağlayıcılarının güvenilir, güvenli ve maliyetli bir şekilde teslim edebileceği ve Azure Server'a ek olarak, herhangi bir şekilde okuduğunuz bina bloklarının tamamının tamamının tamamının tamamının tamamının tamamının tamamının tamamının tamamının tamamının tamamının tamamının (örneğin, WindowsTent) sunulmasına olanak sağlayan güvenilir ve güvenli ve maliyetli bir şekilde sunulmasına olanak sağlar.