architectural impact of saas
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Architectural Impact of SaaS
Eric Nelson
Microsoft
1. ad-1. ad-hoc hoc
/custom/custom
2. 2. configurable configurable single tenantsingle tenant
3. 3. configurable configurable multi tenantmulti tenant
4. 4. configurable configurable multi tenant multi tenant (scalable)(scalable)
Basic SaaS Maturity Model
Three Headed Monster
ConfigurablConfigurablee
ScaleablScaleablee
Multi-Multi-Tenant Tenant EfficientEfficient
multi-tenant data multi-tenant data architecturesarchitectures
shareshare isolateisolate
vsvs
business model (can I monetise?)business model (can I monetise?)
architectural model (can I do it?)architectural model (can I do it?)
operational model (can I guarantee operational model (can I guarantee SLAs?)SLAs?)
regulatory constraints (can we share regulatory constraints (can we share data?)data?)
Approach:Approach:Meta data identifies database Meta data identifies database instance for each tenantinstance for each tenant
Advantages:Advantages:Easy to implement data model Easy to implement data model extensionextensionEasy to restore tenant dataEasy to restore tenant dataMore security isolationMore security isolation
Tradeoff:Tradeoff:Number of tenants per database Number of tenants per database server is lowserver is lowHigher management, backup cost Higher management, backup cost and database server and database server infrastructure costsinfrastructure costs
When to use:When to use:When tenant has specific When tenant has specific database isolation requirementsdatabase isolation requirements
Tenant Tenant AA
Tenant Tenant CC
Tenant Tenant BB
separate database per tenantseparate database per tenant
TenanTenant At A
TenanTenant Bt B
TenanTenant Ct C
ApproachApproach::Each tenant gets their own Each tenant gets their own group of tables in the same group of tables in the same database.database.
AdvantagesAdvantages::Easy to implement data model Easy to implement data model extensionextensionModerate security isolationModerate security isolationBetter tenant scale per server Better tenant scale per server
TradeoffTradeoff::More difficult to restore tenant More difficult to restore tenant datadata
When to useWhen to use::Number of tables for the app Number of tables for the app is small (100s)is small (100s)Scale per server is importantScale per server is importantOK to co-locate tenant data in OK to co-locate tenant data in same databasesame database
same database, separate schemasame database, separate schema
TenanTenant At A
Tenant Tenant BB
TenanTenant Ct C
ApproachApproach::All tenants use the same set All tenants use the same set of tables in the same of tables in the same database.database.
AdvantagesAdvantages::Better tenant scale per server Better tenant scale per server Cost of management and Cost of management and backup is lowerbackup is lower
TradeoffTradeoff::Difficult to restore tenant dataDifficult to restore tenant dataHarder to implement data Harder to implement data model extensionmodel extension
When to useWhen to use::Scale per server is importantScale per server is importantOK to co-mingle tenant data in OK to co-mingle tenant data in same databasesame database
same database, same schemasame database, same schema
single instance, mult-single instance, mult-tenanttenant
ConfigurableConfigurable
considerationsconsiderations
meta-datameta-data
UI/brandingUI/branding
workflow and rulesworkflow and rules
data model extensionsdata model extensions
access controlaccess control
… … other domain specific other domain specific considerations…considerations…
UI/brandingUI/branding
meta-datameta-data
workflow/rulesworkflow/rules
meta-datameta-data
data model data model extensionsextensions
meta-datameta-data we want to we want to track customer track customer
colour colour preferencespreferences
our customers our customers have peculiar have peculiar
address address formatsformats
we need to we need to track customer track customer
history by history by productproduct
we want to we want to keep track of keep track of
customer visits customer visits onlineonline
access controlaccess control
meta-datameta-data
Summary
• Plenty of stuff to get right • Plenty of stuff to get wrong • It is not easy to do well...