Building SaaS Solutions
Building SaaS Solutions
EMEA
Consuming SaaS
EMEA
The Enterprise
enterprise
Purchase
EMEA
From Evaluation...
EMEA
EMEA
The Enterprise
enterprise
Purchase long eval process try before you buy Deploy
EMEA
From Customization...
EMEA
To Configuration...
EMEA
The Enterprise
enterprise
Purchase long eval process try before you buy Deploy customisation configuration Manage
EMEA
EMEA
To SLAs...
EMEA
The Enterprise
enterprise
Purchase long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs
EMEA
EMEA
SaaS Vendors
enterprise
Purchase long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs
SaaS Vendors
enterprise
Purchase long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs
SaaS Vendors
enterprise
Purchase long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs
SaaS Vendors
enterprise
Purchase
long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs
economies of scale
EMEA
Monetisation
EMEA
EMEA
SaaS Vendors
enterprise
Purchase
long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs
enable
monetisation schemes
EMEA
economies of scale
EMEA
EMEA
delegated administration
EMEA
SaaS Vendors
enterprise
Purchase
long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs
enable
monetisation schemes
economies of scale
EMEA
Architectural Impact
Very Visible Business (Examples) Opportunities Business Opportunities
Serving the long tail try before you buy Subscription model Often Overlooked Business SLAs
Architectural Challenges
Multi-tenancy / Scale Self service / Automatic provisioning Metering / Billing SLA Monitoring/Enforcement
Architectural Challenges
EMEA
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?)
EMEA
Security Services
Process Services
Directory Service
Business Services
Meta Data
File System
Databases
EMEA
User Interface
Workflow and Rules Entity Model
Configurability
Meta Data Service
Multi-tenant efficiency
Application Runtime (same code image)
Scaleability
EMEA
Templatizing Configuration
Design Time
Designer Policy Enforcement Engine
Runtime
Runtime Policy Enforcement Engine
Standard Customers
Runtime Metadata
Runtime Metadata
Runtime Metadata Application Instance
EMEA
Templatized Designers
Meta-Data : UI/Branding
EMEA
Configurable UI
Well understood topic on Microsoft Platform For Web Apps:
ASP.NET 2.0, AJAX: CSS, Masterpages, Themes etc.
EMEA
EMEA
Configurable Workflow
Workflow Foundation
Uses Markup Can be stored, manipulated, executed on a per tenant basis
EMEA
Customization type
Behavioral (decisions/rules) Structural (activities)
EMEA
EMEA
Configurable Data
Tenant A
Tenant B
Catalog Item
Product ID
Catalog Item
Product ID
Description
Category ID
Description
Classification Code
Challenges:
Defining custom fields and storing custom data for each tenant. Business logic that can handle custom fields EMEA Presentation logic that can handle custom fields
Database Patterns
Approach Security Patterns Extensibility Patterns Scalability Patterns
Separate Databases
Custom Columns
Custom Columns
Preallocated Fields
Name-Value Pairs
EMEA
EMEA
Advantages:
Easy to implement Meta data identifies database instance for each tenant
Tradeoff:
Number of tenants per database server is low Infrastructure cost of providing service rise quickly
When to use:
When tenant has data isolation requirements Able to monetize the data extension/isolation feature
EMEA
Advantages:
Easy to implement Maximize number of tenants per database server
777 Kay 34 23 Null Null
Tradeoff:
Tendency to results in sparse table
784
Mar y Ned
45
Null
Null
Null
When to use:
When data co-mingling is OK Easy to anticipate pre-defined custom fields
345
21
Null
owe
Null
438
Pat
26
Null
Null
yes
EMEA
764
673 783
Ted
John Sal
$56
$32 $99
893
Null 564
Advantage
Tradeoff
When to use
EMEA
EMEA
Access Control
Some Platform Technologies to consider
ADFS Windows Role Based Access Control (RBAC)
Authorization Manager (AzMan)
EMEA
Meta-Data Considerations
UI/Branding Workflow and Rules Data model extensions Access Control other domain specific considerations
EMEA
GUIDANCE
EMEA
Sample Application
Microsoft has developed a sample application (Litware HR)
Addressing all the major architectural challenges of a SaaS application for the Long Tail Is available for download on MSDN
http://msdn.microsoft.com/architecture/saas/sampleApp
EMEA
Contoso Customizations:
UI: Contoso Orange L&F Data: New Job Level Field Workflow: Recruitement based on Job Level Roles and Access: HR Manager, CEO
Fabrikam Customizations:
UI: Fabrikam L&F Data: New Audition Required Field Workflow: based on audition required Roles and Access: Audition Judge, Owner
Internet
Web Interface
Web Interface
Operational Platform
Internal SaaS Hosting Platform Provisioning (try before buy) HR App (Recruitment) Billing (not implemented) Single Instance Multi Tenant
Scaling Application
Stateless
Improve service memory footprint Improve ability to load balance
Asynchronous I/O
Do useful work while waiting for I/O to complete
Resource Pooling
Threads, network and database connections
Maximize concurrency
Minimize exclusive locking
EMEA
Scaling Data
Data Partition (horizontal)
Divide subscriber data into smaller partitions to meet performance goals Schemes: hashing, temporal, etc.
Dynamic Repartitioning
Automatically repartition when database size reaches maximum size
EMEA
SLAs
SLA Monitoring
Availability Performance
SLA Enforcing
Rules, notification and alerts
Early evidence shows SaaS customer are expecting more when hosted than in-house
EMEA
Shared Services
SaaS Provider
Shared Services: e.g. Billing, Metering, SLA Monitoring a.k.a. SO Infra, Service Delivery Platform, OSS/BSS
SaaS Hoster
Classic Hoster
EMEA
Security Log
Identity Management
Provisio ning
Management Log
Usage Tracking
Provisioning
CRM
Billing
Business Implications
Perpetual licenses to Subscription model Ad based revenue Critical mass on new business Long-tail, low-margin customers Customer acquisition and retention
MS Service Provider License Agreement (SPLA) No Up-Front Cost No Minimum Commitment Success-based, Pay What You Use Two Models: Per User or Per CPU Right to Upgrade Evaluation Period Extended No cost for Disaster Recovery Licenses SPLA Feedback Project
EMEA
Call to Action
ISV council for collaborative efforts [email protected] Additional Information Software as Services Architectural Guidance http://msdn.microsoft.com/architecture/saas Blogs about Architecture: http://blogs.msdn.com/fred_chong http://blogs.msdn.com/gianpaolo
2006,2007 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.