0% found this document useful (0 votes)
178 views69 pages

Building SaaS Solutions

The document discusses building and architecting Software as a Service (SaaS) solutions for enterprises. It covers key considerations around consumability, customization, multi-tenancy and scaling SaaS applications to serve many customers. The document provides guidance and references a sample SaaS application that addresses major architectural challenges.

Uploaded by

elco5ftbl
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
178 views69 pages

Building SaaS Solutions

The document discusses building and architecting Software as a Service (SaaS) solutions for enterprises. It covers key considerations around consumability, customization, multi-tenancy and scaling SaaS applications to serve many customers. The document provides guidance and references a sample SaaS application that addresses major architectural challenges.

Uploaded by

elco5ftbl
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 69

Building SaaS Solutions

EMEA

Jrgen Pfeifer Architect, MCA Microsoft EMEA HQ http://blogs.msdn.com/juergenp

Consuming SaaS

EMEA

The Enterprise

enterprise
Purchase

EMEA

From Evaluation...

EMEA

To Try before you buy...

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

From reliance on internal IT...

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

SaaS ISV considerations

EMEA

SaaS Vendors

enterprise
Purchase long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs

independent software vendors (ISVs)


enable try before you buy
EMEA

SaaS Vendors

enterprise
Purchase long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs

independent software vendors (ISVs)


enable try before you buy enable no-code config
EMEA

SaaS Vendors

enterprise
Purchase long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs

independent software vendors (ISVs)


enable try before you buy enable no-code config enable SLA infrastructure
EMEA

SaaS Vendors
enterprise
Purchase
long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs

independent software vendors (ISVs)


enable try before you buy enable enable no-code config enable SLA infrastructure

economies of scale
EMEA

Monetisation

EMEA

Monetization Scheme matters


For the Enterprise
No upfront perpetual license cost Finance people like predictable recurring cost

For the ISV


Subscription model provides better predicability of revenue streams

EMEA

SaaS Vendors
enterprise
Purchase
long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs

independent software vendors (ISVs)


enable try before you buy enable enable no-code config enable SLA infrastructure

enable
monetisation schemes
EMEA

economies of scale

EMEA

EMEA

Minimize human intervention

referrals & breadth marketing self provisioning self-customisation automatic billing

delegated administration

EMEA

SaaS Vendors
enterprise
Purchase
long eval process try before you buy Deploy customisation configuration Manage reliance on internal IT SLAs

independent software vendors (ISVs)


enable try before you buy enable enable no-code config enable SLA infrastructure enable minimal intervention
EMEA

enable
monetisation schemes

economies of scale

User Experience counts

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

Economy of Scale Simpler Management

SLA per tenant Data Separation

The right balance is determined by:


Business model (can I monetise?) Architectural model (can I do it?) Operational model (can I guarantee SLAs?) Regulatory constraints (can we share data?)
EMEA

High Level Application Architecture


Browser
Smart Client Presentation

Meta Data Services

Security Services
Process Services

Directory Service

Business Services

Meta Data

File System

Databases
EMEA

Metadata Driven Instances


Application Configuration and Designer Tools Virtual application instance

User Interface
Workflow and Rules Entity Model

Configurability
Meta Data Service

Multi-tenant efficiency
Application Runtime (same code image)

Tenant Profile and Configuration Data

Farm of deployed application runtime components

Scaleability

EMEA

Templatizing Configuration
Design Time
Designer Policy Enforcement Engine

Policies Security, Fairness and Halting Policies


Metadata

Runtime
Runtime Policy Enforcement Engine

Standard Customers

Runtime Metadata

Premium Customers Trusted Partners

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.

For Windows Apps:


Use Windows Presentation Foundation (WPF)

EMEA

Meta-Data: Configure Workflows

EMEA

Configurable Workflow
Workflow Foundation
Uses Markup Can be stored, manipulated, executed on a per tenant basis

EMEA

Workflow Customization: Design Time


Hosted Designer
Loads current workflow definition (from .xoml file) Manipulates workflow object model Serialize modified object model Calls Web Service to update .xoml

Customization type
Behavioral (decisions/rules) Structural (activities)
EMEA

Workflow Customization: Runtime


XAML Activation
public WorkflowInstance CreateWorkflow (XmlReader workflowDefinitionReader);

EMEA

Meta Data: Data Model Extension


we want to track customer colour preferences

we want to keep track of customer visits online


we need to track customer history by product our customers have peculiar address formats
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

Trusted Database Connections Secure Database Tables Tenant Data Encryption

Custom Columns

Single Tenant Scaleout

Shared Database, Separate Schemas

Trusted Database Connections Secure Database Tables Tenant Data Encryption

Custom Columns

Tenant-Based Horizontal Partitioning

Shared Database, Shared Trusted Database Schema Connections


Tenant View Filter Tenant Data Encryption

Preallocated Fields
Name-Value Pairs

Tenant-Based Horizontal Partitioning

EMEA

Custom Fields Data and Definition


Meta-data/data dictionary required 3 general approaches:
Separate database for each tenant Shared database, a canned set of extended fields Shared database, any number of extended fields

Tradeoff between each approach

EMEA

Dedicated Tenant Database


Approach:
Separate database for each tenant Database maintains data dictionary

Advantages:
Easy to implement Meta data identifies database instance for each tenant

Tenant Tenant Tenant 1 2 3

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

Shared Database, fixed set of extensions


Approach:
All tenants data in one database. Pre-defined set of custom fields
Tenant ID 345 F1 Ted F2 53 C1 Null C2 C3 paid Null

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

Same database, variable custom extensions


Approach
All tenants in one database Variable number of custom fields Name-value pair in separate tables
Unlimited number/option for custom fields Increase index/search/query/update complexity OK to co-mingle tenant data Custom fields are high value features Difficult to predict custom fields
Tenant ID F1 F2 Record ID

764
673 783

Ted
John Sal

$56
$32 $99

893
Null 564

Advantage
Tradeoff

Record ID 893 893 564

Name Status Expire Affiliation

Value Gold 7-29-2008 Acme


EMEA

When to use

Data: a practical advice


Consider design for the most general case, the single shared database If a customer wants isolation, just deploy him on a single instance Pro: This approach gives you the greatest flexibility. Con: More complex queries, may affect performance
EMEA

Meta-Data: Access Control

EMEA

Implication on Identity Architecture


Use identity federation to achieve SSO
How to manage trust PKI Standard-based products (WS-Federation, SAML etc)

Use claims-centric architecture to communicate access policies


Signed attributes and assertions to rely on roles and access rules information:
E.g. authorized to purchase if amount < 50

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

Litware HR: A Sample SaaS App


Retail Shoe Chain Music School

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 APIs Public site

Web Interface

Private site Authenticated access Configuration & Post jobs

Unauthenticated access Search & Apply for jobs

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

Automated Resource Allocation


Automated provisioning

Early evidence shows SaaS customer are expecting more when hosted than in-house
EMEA

Composition & Integration


Provide clean and well defined Service Interfaces
Follow SOA best practices For Enterprise: support SOAP style and WS-* if necessary. Windows Communication Foundation (WCF) is your friend For Consumer SaaS: support REST style (again, WCF is your friend)

Be OBA friendly (Office Business Applications)


Emerging Office based Composite App Framework
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 Hosting CPU-Storage-Bandwidth As provider: do you build or buy the hosting?

Classic Hoster
EMEA

SaaS Hosting Platform: Operational


SaaS Application SaaS Application SaaS Application SaaS Application

SaaS Hosting Platform Runtime


Access Control Order Management Management Agent Metering

Security Log

Identity Management

Provisio ning

Management Log

Usage Tracking

Provisioning

SLA Monitoring Availability Security Performance Management Alerts

CRM

Billing

Call Center Support System EMEA

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

SaaS sample application (for the long tail)


http://msdn.microsoft.com/architecture/saas/sampleApp

Service Provider License Agreement


http://www.microsoft.com/serviceproviders/licensing
EMEA

2006,2007 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

You might also like