building saas solutions -...

66
EMEA Jürgen Pfeifer Architect, MCA Microsoft EMEA HQ http://blogs.msdn.com/juergenp Building SaaS Solutions

Upload: others

Post on 24-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Jürgen Pfeifer

Architect, MCA

Microsoft EMEA HQ

http://blogs.msdn.com/juergenp

Building SaaS Solutions

Page 2: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Consuming SaaS

Page 3: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

enterprise

Purchase

The Enterprise

Page 4: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

From Evaluation...

Page 5: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

To „Try before you buy“...

Page 6: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

enterprise

Purchase Deploy

long eval process

try before you buy

The Enterprise

Page 7: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

From Customization...

Page 8: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

To Configuration...

Page 9: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

enterprise

Purchase Deploy Manage

long eval process

try before you buy

customisation

configuration

The Enterprise

Page 10: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

From reliance on internal IT...

Page 11: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

To SLAs...

Page 12: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

enterprise

Purchase Deploy Manage

long eval process

try before you buy

customisation

configuration

reliance on internal IT

SLAs

The Enterprise

Page 13: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

SaaS ISV considerations

Page 14: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security
Page 15: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

independent software vendors (ISVs)

enterprise

Purchase Deploy Manage

long eval process

try before you buy

customisation

configuration

reliance on internal IT

SLAs

enable

try before you buy

SaaS Vendors

Page 16: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security
Page 17: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

independent software vendors (ISVs)

enterprise

Purchase Deploy Manage

long eval process

try before you buy

customisation

configuration

reliance on internal IT

SLAs

enable

try before you buy

enable

no-code config

SaaS Vendors

Page 18: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security
Page 19: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

independent software vendors (ISVs)

enterprise

Purchase Deploy Manage

long eval process

try before you buy

customisation

configuration

reliance on internal IT

SLAs

enable

try before you buy

enable

no-code config

enable

SLA infrastructure

SaaS Vendors

Page 20: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

enable

economies of scale

independent software vendors (ISVs)

enable

try before you buy

enable

no-code config

enable

SLA infrastructure

enterprise

Purchase Deploy Manage

long eval process

try before you buy

customisation

configuration

reliance on internal IT

SLAs

SaaS Vendors

Page 21: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Monetisation

Page 22: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security
Page 23: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security
Page 24: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security
Page 25: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

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

Page 26: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

independent software vendors (ISVs)

enable

economies of scale

enable

try before you buy

enable

no-code config

enable

SLA infrastructure

enterprise

Purchase Deploy Manage

long eval process

try before you buy

customisation

configuration

reliance on internal IT

SLAs

enable

monetisation schemes

SaaS Vendors

Page 27: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Page 28: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Page 29: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

referrals & breadth marketing

self provisioning

self-customisation

delegated administration

automatic billing

Minimize human intervention

Page 30: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

independent software vendors (ISVs)

enable

economies of scale

enable

try before you buy

enable

no-code config

enable

SLA infrastructure

enterprise

Purchase Deploy Manage

long eval process

try before you buy

customisation

configuration

reliance on internal IT

SLAs

enable

monetisation schemes

enable

minimal intervention

SaaS Vendors

Page 31: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

User Experience counts

Page 32: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security
Page 33: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security
Page 34: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security
Page 35: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Architectural Impact

Very Visible Business

Opportunities

Often Overlooked

Architectural

Challenges

Business Opportunities Architectural Challenges

•Serving the “long tail”

•“try before you buy”

•Subscription model

•Business SLAs

•Multi-tenancy / Scale

•Self service / Automatic provisioning

•Metering / Billing

•SLA Monitoring/Enforcement

(Examples)

Page 36: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

share isolate

vs

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?)

SLA per tenant

Data Separation

Economy of Scale

Simpler Management

Page 37: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

BrowserSmart

Client

Presentation

Process Services

Business Services

Meta Data

Services

Security

Services Directory

Service

DatabasesFile

System

Meta

Data

High Level Application Architecture

Page 38: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Application Runtime (same code image)

Tenant Profile

and

Configuration Data

Meta Data Service

Farm of deployed application runtime components

Entity Model

Workflow and Rules

User Interface

Application Configuration

and Designer ToolsVirtual application instance

Configurability

Scaleability

Multi-tenant efficiency

Metadata Driven Instances

Page 39: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Meta-Data : UI/Branding

Page 40: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Meta-Data: Configure Workflows

Page 41: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

we want to track customer colourpreferences

our customers have peculiar address formats

we need to track customer history by product

we want to keep track of customer visits online

Meta Data: Data Model Extension

Page 42: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Meta-Data: Access Control

Page 43: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

UI/Branding

Workflow and Rules

Data model extensions

Access Control

… other domain specific considerations…

Meta-Data Considerations

Page 44: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

GUIDANCE

Page 45: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Sample Application

Microsoft is developing a sample

application

Addressing all the major architectural

challenges of a SaaS application for the „Long

Tail“

Will be available for download on MSDN

Planned for December 2006

Page 46: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

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)

Page 47: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Configurable Workflow

Workflow Foundation

Uses Markup

Can be stored, manipulated, executed on a per

tenant basis

Page 48: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

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)

Page 49: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

public WorkflowInstance CreateWorkflow

(XmlReader workflowDefinitionReader);

Workflow Customization: Runtime

XAML Activation

Page 50: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Configurable Data

Challenges:

Defining custom fields and storing custom data

for each tenant.

Business logic that can handle custom fields

Presentation logic that can handle custom fields

Tenant A

Product ID

Description

Category ID

Catalog Item

Tenant B

Product ID

Description

Classification Code

Catalog Item

Page 51: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Approach Security Patterns Extensibility Patterns Scalability Patterns

Separate Databases Trusted Database Connections

Custom Columns Single Tenant Scaleout

Secure Database Tables

Tenant Data Encryption

Shared Database, Separate Schemas

Trusted Database Connections

Custom Columns Tenant-Based Horizontal Partitioning

Secure Database Tables

Tenant Data Encryption

Shared Database, Shared Schema

Trusted Database Connections

Preallocated Fields Tenant-Based Horizontal Partitioning

Tenant View Filter Name-Value Pairs

Tenant Data Encryption

Database Patterns

Page 52: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

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

Page 53: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

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

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

Tenant

1Tenant

3

Tenant

2

Page 54: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Shared Database, fixed set of

extensions

Approach: All tenants data in one database.

Pre-defined set of custom fields

Advantages: Easy to implement

Maximize number of tenants per database server

Tradeoff: Tendency to results in sparse

table

When to use: When data co-mingling is OK

Easy to anticipate pre-defined custom fields

Tenant ID

F1 F2 C1 C2 C3

345 Ted 53 Null paid Null

777 Kay 34 23 Null Null

784 Mary 45 Null Null Null

345 Ned 21 Null owe Null

438 Pat 26 Null Null yes

Page 55: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Same database, variable custom

extensions Approach

All tenants in one database Variable number of custom

fields Name-value pair in separate

tables

Advantage “Unlimited” number/option

for custom fields

Tradeoff Increase

index/search/query/update complexity

When to use OK to co-mingle tenant data Custom fields are high value

features Difficult to predict custom

fields

Tenant ID F1 F2 Record ID

764 Ted $56 893

673 John $32 Null

783 Sal $99 564

Record ID Name Value

893 Status Gold

893 Expire 7-29-2008

564 Affiliation Acme

Page 56: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Data: a practical advice

Always design for the most general case, the

single shared database

If a customer wants isolation, just deploy him

on a single instance

This approach gives you the greatest

flexibility.

Page 57: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

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

Page 58: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

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

Page 59: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

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

Page 60: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Access Control

Some Platform Technologies to consider

ADFS

Windows Role Based Access Control (RBAC)

Authorization Manager (AzMan)

Page 61: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Access Control

Role

Users

Groups

Permission

Permission

Business Rules

Authorization policies can be defined at different scopes (enterprise, dept etc.)

Permissions, roles, groups and business rules can be customizable per tenant

SCOPE

Page 62: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

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

Page 63: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

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)

Page 64: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

“Classic” Hosting

CPU-Storage-Bandwidth

Shared Services: e.g. Billing, Metering, SLA Monitoring…

a.k.a. SO Infra, Service Delivery Platform, OSS/BSS

As provider: do you build or buy the hosting?

“Classic”

Hoster

SaaS

Hoster

SaaS

Provider

Shared Services

Page 65: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

EMEA

Service Delivery Platform: Operational

Security

Log

SaaS

Application

Identity

Management

Usage

Tracking

CRM

Call Center

Support

System

Management

Log

SaaS

Application

SaaS

Application

SaaS

Application

Performance

Availability

Security

SLA Monitoring

Provisioning

Provisioning

Management

Agent

Access

ControlMetering

Order

Management

Service Delivery Platform Runtime

Billing

Management

Alerts

Page 66: Building SaaS Solutions - download.microsoft.comdownload.microsoft.com/.../forum_talk_2_building_saas_solutions.pdf · 7/29/2008  · Service Delivery Platform: Operational Security

© 2006 Microsoft Corporation. All rights reserved.

This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.