Microsoft Saas Good Webinar

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Microsoft Saas Good Webinar as PDF for free.

More details

  • Words: 1,019
  • Pages: 34
ARC219 

Software As a Service (SaaS): The Good, the Bad and the Ugly

Gianpaolo Carraro Architecture Strategy Team

[email protected] http://blogs.msdn.com/gianpaolo

DC-13

Developers Strongly Cautioned

Strong Architectural Language Limited Visual Studio Wizardry

What is SaaS? Software deployed as a hosted service and accessed over the network (Internet). as opposed to: “on premise”

“SaaS Stack”

SaaS Impacts the Entire Consumption Cycle : In particular in the L.O.B. application space

Deployment From: From: Customizatio Long Eval Process n Purchase

Enterprise

To: To: Try before you buy Configuratio n

ISVs

Enable: Try before you buy

Enable: Configuratio n (no custom code)

Management From: Reliance on internal IT To: SLAs Enable: SLA monitoring / enforcement

Importance of Economy of Scale

Economy of scale

Hardware Cost at Provider

ISVs

People Cost at Provider

Enable: Economy of Scale

The Long Tail $ / Customer

Dozens of markets of millions or millions of markets of dozens? Your Large Customers

What if you lower your cost of sale (i.e. lower barrier to entry) and you also lower cost of operations Your Typical Customers New addressable market >> current market (Currently) “non addressable” Customers

# of Customers

Monetization Options Subscription (monthly fee per seat) Transaction based pricing (profit sharing) Ad-based revenue (e.g. pay per click)

ISVs

Enable: Multiple Monetization Schemes

Humans are costly Reduce human intervention No Direct Sales (but referrals and breadth marketing) Self Provisioning Self Customization Delegate Administration Automatic billing Enable: ISVs

Impact on YOUR architecture

Requires Architectural Shift: Single instance – multi tenancy

Multi-tenant efficient Sharing resources (One instance to run them all)

Customizable Customization through configuration

Scaleable Many applications will require Internet scale

“Basic” SaaS Maturity Model

Share vs. Isolate SLA per tenant Data Separation

Share Isolate

Economy of Scale Simpler Management

The right balance is determined by: Business model (“can I monetize isolation?”) Architectural model (“can I run on a single logical instance?”) Operation model (“can I guarantee my SLA without isolating?”) Regulatory constrains “data must be physically separate”)

High Level Application Architecture Smart Client

Browser

Presentation

Meta Data Services

Security Services Process Services

Business Services

Meta Data

File System

Databases

Directory Service

Meta Data Service

UI/Branding Scope

Workflow/Business Rules Data Model Extensions Access Control

Domain-specific ext. 0 or more scopes

Customizable: UI/Branding Workflow Data Model Business rules Domain-specific

Scope: Nested hierarchy of customization Inheritable E.g. Enterprise, department, user levels

“Peopleware”: a multitenant HR application Powered by SuzSoft www.suzsoft.com and Matias Woloski http://staff.southworks.net/blogs/matiaswoloski

High Level Scenario Contoso: Uses PeoplewareHR

Fabrikam: Uses PeoplewareHR

Needs to customize:

Needs to customize:

Data Model

Data Model

Business Process

Business Process

PeoplewareHR: Software to manage training programs Maximize economy of scale: Single Web Server, Single Workflow Engine, Single Database

Multi-tenant architecture

Act 1: Multi Tenant Data Model

Extension Value Pairs Approach

Offers “Unlimited” number/option for custom fields Extension-value pairs in separate tables Metadata table keeps track of data labels and data types for extensions

Metadata Table Tena nt ID

Extensi on ID

764

6729

764 783

Data Tables Tenant ID 764

Name

Score

Ted

56

Record ID 893

673

John

32

Null

783

Sally

99

564

Extensi on Label Status

Dataty pe

Record ID

ntext

7634

StartD ate

dateti me

8903

Univer sity

ntext

Value

893

Extension ID 6729

893

7634

5-29-2006

564

8903

UCLA

Trainee

Extension Value Pairs Advantage “Unlimited” number/option for custom fields

Tradeoff Increase index/query/update complexity and delay

When to use OK to co-mingle tenant data Custom fields are high value features Difficult to predict custom fields

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 predefined custom fields

Tenant ID

F1

F2

C1

C2

C3

345

Ted

53

Null

p aid

Null

777

Kay

34

23

Null

Null

784

M ary

45

Null

Null

Null

345

Ned

21

Null

owe

Null

438

Pat

26

Null

Null

yes

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

Tenan t Ten ant Ten ant 1 2 3

Scaling Data Data Partition Divide subscriber data into smaller partitions to meet performance goals Schemes: hashing, temporal, etc.

Dynamic Repartitioning Automatically repartition when database size reaches maximum size

http://msdn.microsoft.com/architecture/learnmore/default.aspx?p http://msdn.microsoft.com/architecture/learnmore/default.aspx? =/library/en-us/dnbda/html/ScalOutSQL.asp

Act 2: Multi Tenant Workflow

Workflow Customization: Design Time Hosted Designer Loads “current” workflow definition (from .xoml file) Manipulates workflow object model Seriliaze modified object model Calls Web Service to update .xoml

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

Workflow Customization: Runtime XAML Activation

public WorkflowInstance CreateWorkflow (XmlReader workflowDefinitionReader);

Act 3: Running The Application

Demo: Next Steps Make it a publicly available “sample application” Probable additions AJAX UI (Atlas) / Office integration Single sign on Integration with “on premise” L.O.B. (legacy) applications Scale out More sophisticated cross tenant data access control Hooks in “shared services” (billing, monitoring)

Shared Services SaaS Provider

Shared Services: e.g. Billing, Metering, SLA Monitoring… a.k.a. SO Infra, Service Delivery Platform, OSS/BSS

“ Cl ass ic” Ho sting CPU -Sto rag e-Ba nd wid th As provider: do you build or buy the hosting?

SaaS Hoster

“Classic” Hoster

Ask the Zen Master: SOA vs. SaaS

Resources Blogs http://blogs.msdn.com/gianpaolo http://blogs.msdn.com/fred_chong

Web Sites http://msdn.microsoft.com/architecture http://msdn.microsoft.com/isv http://www.skyscrapr.net

© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Related Documents

Microsoft Saas Good Webinar
November 2019 7
Webinar Matlab.docx
November 2019 7
Webinar Schedule
July 2020 10
Open Source Saas
April 2020 4
Good
December 2019 49