Title: Architectural Impact of SaaS
1Architectural Impact of SaaS
2Basic SaaS Maturity Model
1. ad-hoc /custom
2. configurable single tenant
4. configurable multi tenant (scalable)
3. configurable multi tenant
3Three Headed Monster
Scaleable
Configurable
Multi-Tenant Efficient
4- multi-tenant data architectures
5vs
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?)
6separate database per tenant
- 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
Tenant A
Tenant B
Tenant C
7same 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
8same 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
9- single instance, mult-tenant
10 11meta-data
UI/branding workflow and rules data model
extensions access control other domain specific
considerations
12meta-data
13meta-data
14meta-data
15meta-data
16Summary
- Plenty of stuff to get right ?
- Plenty of stuff to get wrong ?
- It is not easy to do well...