successful saas - what will it take?
DESCRIPTION
Successful SaaS - what will it take?. Eric Nelson Application Architect Microsoft Ltd http://blogs.msdn.com/ericnel. Why should an ISV care?. RECAP. Achieve enormous wealth . Money Predictable revenue New revenue Shorter sales cycles Lower cost of sales - PowerPoint PPT PresentationTRANSCRIPT
Successful SaaS- what will it take?
Eric NelsonApplication Architect
Microsoft Ltdhttp://blogs.msdn.com/ericnel
RECAP...Why should an ISV care?
Achieve enormous wealth Money
Predictable revenueNew revenueShorter sales cyclesLower cost of salesReduced support and maintenance costs
I want your cool SaaS
App!
Gain millions of new customers
I want your cool SaaS
App!I want
your cool SaaS App!
I want your cool SaaS
App!
Opportunities“The Long Tail”New geographies
Become more desirable Agility
Quick to enter new marketsQuick to respond to competitorsQuick to respond to customers
LoyaltyTry before you buyTighter RelationshipResponsive
After SAAS
Before SAAS
Yet don’t work very hardSimplicity
One version of the application deployedCore vs Custom headaches vanishNo more onsite visitsNo more customers tinkering with your codeNo more competitors spying on your codeLess sales people (selling something you haven’t built)
Ah... but... There is a Huge Impact on...
Business ModelSales and MarketingTechnical ModelNeed to execute well in all 3 areas
Sidebar: SaaS-less SaaS?SaaS benefits on-premise?Benefits:
Rapid provisioningReduced initial costsImmediate ValueHigh degree of configuration vs customisationSeamless deploymentSeamless upgradesAddress the “long tail”
TECHNICAL CHALLENGESI suppose there are a few
1. ad-hoc
/custom2. configurable single tenant
3. configurable multi tenant
4. configurable multi tenant (scalable)
Basic SaaS Maturity Model
Three Headed Monster
Configurable
Scaleable
Multi-Tenant Efficient
multi-tenant data architectures
share isolate
vs
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 extensionEasy to restore tenant dataMore security isolation
Tradeoff:Number of tenants per database server is lowHigher management, backup cost and database server infrastructure costs
When to use:When tenant has specific database isolation requirements
Tenant A
Tenant C
Tenant B
separate database per tenant
Tenant A
Tenant B
Tenant C
Approach:Each tenant gets their own group of tables in the same database.
Advantages:Easy to implement data model extensionModerate security isolationBetter 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 importantOK to co-locate tenant data in same database
same database, separate schema
Tenant A
Tenant B
Tenant C
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 dataHarder to implement data model extension
When to use:Scale per server is importantOK to co-mingle tenant data in same database
same database, same schema
single instance, mult-tenant
Configurable
considerations
meta-data
UI/brandingworkflow and rules
data model extensionsaccess control
… other domain specific considerations…
UI/branding
meta-data
workflow/rules
meta-data
data model extensions
meta-data we want to track customer
colour preferences
our customers have peculiar
address formats
we need to track customer
history by product
we want to keep track of
customer visits online
Sample Application
Microsoft has developed a sample application - LitwareHRAddressing the major architectural challenges of a SaaS application for the “Long Tail“Available for download
http://www.codeplex.com/litwarehr
Contoso Customizations:UI: “Contoso Orange” L&F Data: New “Job Level” Field
Workflow: Recruitement based on Job Level
Litware HR: A Sample SaaS App
HR App (Recruitment)Single Instance Multi Tenant
Authenticated accessConfiguration & Post jobs
Private site
Web Interface
Unauthenticated accessSearch & Apply for jobs
Web APIs
Public site
Web Interface
Internet
Music SchoolRetail Shoe Chain
Operational Platform
“Internal” SaaS Hosting PlatformProvisioning (try before buy)
Billing (not implemented)
LitwareHR
Act 1: Tenant Sign Up and Provisioning
demo
TenantProvisioning
Service
ADAM
SQL Database
IIS
Tenant Provisioning Behind the Scene
Provisioning Process Workflow
LitwareHR
Act 2: Configuring Application
demo
Meta Data Driven Architecture
Tenant Profile and
Configuration Data
Meta Data Service
Entity Model
Workflow and Rules
User Interface
Application Configuration and Designer Tools
Runtime
SummaryPlenty of stuff to get right Plenty of stuff to get wrong LitwareHR is a good starting point
But... plenty “left to the reader”
Appendix
Templatized Configuration
Templatized Designers
Trusted Partners
Premium Customers
Standard Customers Runtime
Metadata
Runtime Metadata
Runtime Metadata
Policies
Security, Fairness
and Halting Policies
Runtime Policy Enforcement
Engine
Design Time Runtime
Application Instance
Metadata
Designer Policy
Enforcement Engine
View
Entity 1
Entity 2
Extension
Tenant ID … Row ID
123 … …
456 … …
Extension ID
Name Data Type
999 Location Short Text
888 JobLevel Number
3. Multi-tenant Data Store
Extension name-value pair
Extension
Row ID Value Extension ID
ABC … 999
DEF … 888
2. Extensible Data Model
1. Tenant Configurable
Data View
Data Model Configuration
Extension meta data