160 likes | 330 Views
Architectural Impact of SaaS. Eric Nelson Microsoft. Basic SaaS Maturity Model. 1. ad-hoc /custom. 2. configurable single tenant. 4. configurable multi tenant (scalable). 3. configurable multi tenant. Three Headed Monster. Scaleable. Configurable. Multi-Tenant Efficient.
E N D
Architectural Impact of SaaS Eric Nelson Microsoft
Basic SaaS Maturity Model 1. ad-hoc /custom 2. configurable single tenant 4. configurable multi tenant (scalable) 3. configurable multi tenant
Three Headed Monster Scaleable Configurable Multi-Tenant Efficient
vs share isolate business model (can I monetise?) architectural model (can I do it?) operational model (can I guarantee SLAs?) regulatory constraints (can we share data?)
Approach: Meta data identifies database instance for each tenant Advantages: Easy to implement data model extension Easy to restore tenant data More security isolation Tradeoff: Number of tenants per database server is low Higher management, backup cost and database server infrastructure costs When to use: When tenant has specific database isolation requirements separate database per tenant Tenant A Tenant B Tenant C
same database, separate schema • Approach: • Each tenant gets their own group of tables in the same database. • Advantages: • Easy to implement data model extension • Moderate security isolation • Better tenant scale per server • Tradeoff: • More difficult to restore tenant data • When to use: • Number of tables for the app is small (100s) • Scale per server is important • OK to co-locate tenant data in same database Tenant A Tenant B Tenant C
same database, same schema • Approach: • All tenants use the same set of tables in the same database. • Advantages: • Better tenant scale per server • Cost of management and backup is lower • Tradeoff: • Difficult to restore tenant data • Harder to implement data model extension • When to use: • Scale per server is important • OK to co-mingle tenant data in same database Tenant B Tenant A Tenant C
meta-data considerations UI/branding workflow and rules data model extensions access control … other domain specific considerations…
meta-data UI/branding
meta-data workflow/rules
we want to track customer colour preferences we want to keep track of customer visits online our customers have peculiar address formats we need to track customer history by product meta-data data model extensions
meta-data access control
Summary • Plenty of stuff to get right • Plenty of stuff to get wrong • It is not easy to do well...