205

Patterns For Moving To The Cloud

Embed Size (px)

DESCRIPTION

Patterns For Moving To The Cloud (Arc308 Guest) - Presentation from TechEd 2009 that shows patterns for moving applications to the cloud.

Citation preview

Page 1: Patterns For Moving To The Cloud
Page 2: Patterns For Moving To The Cloud

Simon GuestSenior Director, Technical StrategyMicrosoft CorporationSession Code: ARC308

Page 3: Patterns For Moving To The Cloud

Moving to the Cloud

Page 4: Patterns For Moving To The Cloud

Moving to the Cloud

You are an IT Architect

Page 5: Patterns For Moving To The Cloud

Moving to the Cloud

Your boss (the CIO) has asked you to “move the company to the cloud”

Page 6: Patterns For Moving To The Cloud

Moving to the Cloud

Heard of cloud computing, and you’ve been through the “Azure”

intro sessions, but unsure where to start

Page 7: Patterns For Moving To The Cloud

Moving to the Cloud

Do I have to move everything to the cloud?

Page 8: Patterns For Moving To The Cloud

Moving to the Cloud

What applications work best in the cloud?

Page 9: Patterns For Moving To The Cloud

Moving to the Cloud

Goal of the next 55 minutes:

Page 10: Patterns For Moving To The Cloud

Moving to the Cloud

Cover some of the differences between on premises, hosted, and

the cloud

Page 11: Patterns For Moving To The Cloud

Moving to the Cloud

Look at the popular types of applications that are driving cloud

computing

Page 12: Patterns For Moving To The Cloud

Moving to the Cloud

Share a set of patterns that you can take away and apply for your

own thinking

Page 13: Patterns For Moving To The Cloud

Moving to the Cloud

Introduce terminology and a way of visually diagramming these

patterns for cloud computing

Page 14: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Page 15: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Less about the style of an application, more about where an

application “lives”

Page 16: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

On-premises, hosted, and cloud

Page 17: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Buy my own hardware, and

manage my own data center

Application runs at a hoster

Pay someone to host my

application using hardware that I

specify

Application runs using cloud platform

Pay someone for a pool of computing resources that can be applied to a set

of applications

Application runs on-premises

•Bring my own machines, connectivity, software, etc.•Complete control and responsibility•Upfront capital costs for the infrastructure

Application runs at a hoster

•Rent machines, connectivity, software•Less control, but fewer responsibilities•Lower capital costs, but pay for fixed capacity, even if idle

Page 18: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Buy my own hardware, and

manage my own data center

Application runs at a hoster

Pay someone to host my

application using hardware that I

specify

Application runs using cloud platform

Pay someone for a pool of computing resources that can be applied to a set

of applications

Application runs on-premises

•Bring my own machines, connectivity, software, etc.•Complete control and responsibility•Upfront capital costs for the infrastructure

Application runs at a hoster

•Rent machines, connectivity, software•Less control, but fewer responsibilities•Lower capital costs, but pay for fixed capacity, even if idle

Cloud computing is a pay-per-use model for enabling available, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, services) that can be rapidly provisioned and released with minimal

management effort or service provider interaction.

[National Institute of Standards and Technology]

http://news.cnet.com/8301-19413_3-10237274-240.html

Page 19: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Buy my own hardware, and

manage my own data center

Application runs at a hoster

Pay someone to host my

application using hardware that I

specify

Application runs using cloud platform

Pay someone for a pool of computing resources that can be applied to a set

of applications

Application runs on-premises

•Bring my own machines, connectivity, software, etc.•Complete control and responsibility•Upfront capital costs for the infrastructure

Application runs at a hoster

•Rent machines, connectivity, software•Less control, but fewer responsibilities•Lower capital costs, but pay for fixed capacity, even if idle

Application runs using cloud platform

•Shared, multi-tenant

environment•Offers pool of computing resources, abstracted from infrastructure•Pay as you go

Page 20: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

An application that I buy “off the shelf”

and run myself

“Home Built”Application

An application that I develop and run

myself

Hosted “Home Built”

An application that I develop myself,

but run at a hoster

Hosted “Packaged”

An application that I buy “off the shelf” and then run at a

hoster

Cloud Platform

An application that I develop myself, that I run in the

cloud

“Software as a Service”

A hosted application that I

buy from a vendor

Page 21: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

“CRM and Email are commodity services. We have few customizations, and it should be cheaper for someone else to run these.”

“CRM and Email are commodity services. We have few customizations, and it should be cheaper for someone else to run these.”

Page 22: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Molecule Research

“This is a viral marketing website. It has a small chance of being really big, but we’re not sure!”

“This is a viral marketing website. It has a small chance of being really big, but we’re not sure!”

Viral Marketing

“How difficult is it to move these to a software as a service model?”

“How difficult is it to move these to a software as a service model?”

Page 23: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

“This application runs at full capacity for short periods of time at the end of each month.”

“This application runs at full capacity for short periods of time at the end of each month.”

In case it is successful, we’re interested to see if the cloud would help us scale better.”

In case it is successful, we’re interested to see if the cloud would help us scale better.”

Page 24: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

“MRI images are very large and exponentially growing. Is there a better way of storing these?”

“MRI images are very large and exponentially growing. Is there a better way of storing these?”

“Can the cloud help us in providing compute power on an as needed basis?”

“Can the cloud help us in providing compute power on an as needed basis?”

Page 25: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

HR Application

Viral Marketing

Molecule Research

“Does the cloud give me the storage I’m after?”“Does the cloud give me the storage I’m after?”

MRI Imaging“We need to share results from our H1N1 trials with government entities.”

“We need to share results from our H1N1 trials with government entities.”

Page 26: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

“I can’t afford to maintain this old HR application written in VB – it’s driving me mad!”

“I can’t afford to maintain this old HR application written in VB – it’s driving me mad!”

“…but due to regulatory issues, I can’t store my data off premise.”

“…but due to regulatory issues, I can’t store my data off premise.”

“Does the cloud provide anything for inter-organization communication?”

“Does the cloud provide anything for inter-organization communication?”

Page 27: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

“A good solution could be to find a suitable packaged application here.”

“A good solution could be to find a suitable packaged application here.”

Page 28: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

We see a shift to the “right”, but what patterns emerge here?

Page 29: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Pattern 1: Transference

Page 30: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Taking an existing on-premises application and moving it to the

cloud

Page 31: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

Page 32: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Drivers?Economic, Consolidation,

Prototyping

Page 33: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Pattern 2: Scale and Multi-Tenancy

Page 34: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Creating an application that has the ability to handle web load without

requiring the full capital investment from day one

Page 35: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

Page 36: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Drivers?Prototyping, Risk Mitigation

Page 37: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Pattern 3: Burst Compute

Page 38: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Creating an application that has the ability to handle additional compute

on an as-needed basis

Page 39: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

Page 40: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Drivers?Economic (avoiding over capacity)

Page 41: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Pattern 4: Elastic Storage

Page 42: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Creating an application that has the ability to grow exponentially from a

storage perspective

Page 43: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

Page 44: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Drivers?Economic (avoiding over capacity),

Management

Page 45: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Pattern 5: Inter-Org Communications

Page 46: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Creating an application that has the ability to communicate between

organizations using a pre-defined infrastructure

Page 47: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Application runs on-premises

Application runs at a hoster

Application runs using cloud platform

“Packaged”Application

“Home Built”Application

Hosted “Home Built”

Hosted “Packaged”

Cloud Platform

“Software as a Service”

CRM / Email

Clinical Trial

MRI Imaging

HR Application

Viral Marketing

Molecule Research

Page 48: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

Drivers?Infrastructure Management

Page 49: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

What do we need to start to dig deeper into some of the patterns?

Page 50: Patterns For Moving To The Cloud

Which Applications should I move to the Cloud?

First need to cover some building blocks

Page 51: Patterns For Moving To The Cloud

Building Blocks

Page 52: Patterns For Moving To The Cloud

On Premises Hoster Cloud

Building Blocks

Page 53: Patterns For Moving To The Cloud

Infrastructure

On Premises Hoster Cloud

Building Blocks

Physical, DedicatedSingle service on dedicated hardware

Physical, SharedMultiple services sharing same hardware

Virtual, SingleSingle instance virtual image

Virtual, ScalableVirtual “fabric” for applications

Page 54: Patterns For Moving To The Cloud

Infrastructure Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

On Premises Hoster Cloud

Building Blocks

Page 55: Patterns For Moving To The Cloud

Infrastructure

Infrastructure Services

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

On Premises Hoster Cloud

Building Blocks

Page 56: Patterns For Moving To The Cloud

Infrastructure

Infrastructure Services

Storage

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

On Premises Hoster Cloud

Building Blocks

FileFlat file, page-based (e.g. HTML/ASPX), server affinity

RelationalRelational database, transactional, finite

TableStorage for structured entities, scalable data

BlobStorage for large data items, typically media files, no server affinity

Page 57: Patterns For Moving To The Cloud

Infrastructure

Infrastructure Services

Storage

BlobRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

On Premises Hoster Cloud

Table

Building Blocks

Page 58: Patterns For Moving To The Cloud

Infrastructure

Infrastructure Services

MessagingStorage

BlobRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

On Premises Hoster Cloud

Table

Building Blocks

Async Queue or BusAsynchronous, reliable messaging, publish/subscribe model

Peer to PeerNode registration, directory, presence awareness

Page 59: Patterns For Moving To The Cloud

Infrastructure

Infrastructure Services

MessagingStorage

Async Queue/Bus Peer to PeerBlobRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

On Premises Hoster Cloud

Table

Building Blocks

Page 60: Patterns For Moving To The Cloud

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage

Async Queue/Bus Peer to PeerBlobRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

On Premises Hoster Cloud

Table

Building Blocks

AuthenticationUsername / Password or Claims based

Role Based AuthorizationRole-checking and Authorization

Page 61: Patterns For Moving To The Cloud

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage

Async Queue/Bus Peer to PeerBlobRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 62: Patterns For Moving To The Cloud

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlobRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Event BasedTriggered based on events (e.g. document upload)

Worker BasedPersistent workflow, always active (e.g. monitoring service)

Page 63: Patterns For Moving To The Cloud

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 64: Patterns For Moving To The Cloud

Application

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 65: Patterns For Moving To The Cloud

Application

Application

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

PresentationWeb Role

Business LogicWorker Role

Page 66: Patterns For Moving To The Cloud

Application

Application

Business Logic (Worker Role)Presentation (Web Role)

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 67: Patterns For Moving To The Cloud

ApplicationWeb Presentation

Application

Business Logic (Worker Role)Presentation (Web Role)

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

StaticStatic content, HTML etc

DynamicDynamic created pages, ASPX, PHP, etc. Client interaction through AJAX, JavaScript

Rich Internet ApplicationHigh visual interaction through browser plug in, some offline support

StreamingOptimized for content delivery, videos etc.

Page 68: Patterns For Moving To The Cloud

Application

Programmatic AccessWeb Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 69: Patterns For Moving To The Cloud

Application

Programmatic AccessWeb Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Web ServicesSOAP based, WS-I compliant, WS-*

RESTCRUD access to services using HTTP constructs

RSSSyndication services for subscriptions

VoiceXMLMobile Application Speech API

SIPSession Initiation Protocol – IM Clients

SMTPEmail inbound and outbound delivery

SMSMobile inbound and outbound text messaging

Page 70: Patterns For Moving To The Cloud

Application

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 71: Patterns For Moving To The Cloud

Application

Client Software

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 72: Patterns For Moving To The Cloud

Application

Client Software

PC

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks BrowserConsumer of web based content, HTML etc., including RIA plug in

OfficeOffice Suite, including Email and RSS reader capability

Client ApplicationRich (Smart) client applications installed locally on machine

GadgetsLocally installed, desktop based

Instant MessagingLocally installed Instant Messaging client

Page 73: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 74: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

BrowserConsumer of web based content, HTML etc., including RIA plug in

OfficeOffice Suite, including Email and RSS reader capability

Client ApplicationRich (Smart) client applications installed locally on machine

SMS / IMText messaging and IM using Mobile Device

SpeechSpeech enabled interface

Page 75: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 76: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

DevicesDedicated devices

ConsolesGames Consoles

Page 77: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Building Blocks

Page 78: Patterns For Moving To The Cloud

Building Blocks

Err… Didn’t you just build a marketing diagram? :-)

Page 79: Patterns For Moving To The Cloud

Building Blocks

Use these blocks to explore the detail of the five patterns

Page 80: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Pattern 1: Transference

Page 81: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 4.0 and Office 97

RPCRPC

JET Database

JET Database

Page 82: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 5.0 and Office 97

JET Database

JET Database Active Directory for

Account StorageActive Directory for Account Storage

Page 83: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 5.0 SP1 and Office XP

Support for Outlook Web Access

Support for Outlook Web Access

Page 84: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 2003 and Office 2003

Support for RPC over HTTPS

Support for RPC over HTTPS

Page 85: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 2007 and Office 2007

Support for Speech and Mobile

Support for Speech and Mobile

Page 86: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Moving Exchange to Hoster/Cloud

Page 87: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 2007 and Office 2007

Page 88: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 2007 and Office 2007

Same pattern applies, different provider

Same pattern applies, different provider

Page 89: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Hang on! That looked too simple!

Page 90: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 2007 and Office 2007

Made assumption that Identity Provider moved to

the cloud also

Made assumption that Identity Provider moved to

the cloud also

Page 91: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

How do we solve this?

Page 92: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 2007 and Office 2007

We could use replication, but difficult to manage

We could use replication, but difficult to manage

Page 93: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

RegistrationDesk

RegistrationDesk

Door personDoor

person

AttendeeAttendee

SpeakerSpeaker

CrewCrew

Main HallAttendeeAttendee

SpeakerSpeaker

CrewCrew

Speaker RmSpeakerSpeaker

CrewCrew

Bill VeghteGreen Room

CrewCrew

Joe Pharma AttendeeAttendee

Joe Pharma

Passport Agency

Passport Agency

Need a system similar to your speaker badge!

Page 94: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Exchange Lifecycle – Exchange 2007 and Office 2007

Local ADLocal AD STS (Secure Token Service)

STS (Secure Token Service)

Page 95: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Local ADLocal AD STS (Secure Token Service)

STS (Secure Token Service)

Exchange Lifecycle – Exchange 2007 and Office 2007

Passport Agency

Passport Agency

RegistrationDesk

RegistrationDesk

Door personDoor

person

Page 96: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Local ADLocal AD STS (Secure Token Service)

STS (Secure Token Service)

Exchange Lifecycle – Exchange 2007 and Office 2007

Where’s your badge(token)?Where’s your

badge(token)?

Errr… Don’t have oneErrr… Don’t have one

Go get one and come backGo get one and come back

Page 97: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Local ADLocal AD STS (Secure Token Service)

STS (Secure Token Service)

Exchange Lifecycle – Exchange 2007 and Office 2007

Can I have a badge (token) please?

Can I have a badge (token) please?

Where’s your ID?Where’s your ID?

Here:[email protected]

Pwd: 123

Here:[email protected]

Pwd: 123

Hang onHang on

This guy ok?This guy ok?Yeah, he’s goodYeah, he’s good

Here’s your badge (token)Here’s your badge (token)

Page 98: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Local ADLocal AD STS (Secure Token Service)

STS (Secure Token Service)

Exchange Lifecycle – Exchange 2007 and Office 2007

Where’s your badge(token)?Where’s your

badge(token)?

Here you areHere you are

Looks good – come on in!Looks good – come on in!

Page 99: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Why is this important for cloud computing?

Page 100: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Disgruntled ex-employees!

Page 101: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Local ADLocal AD STS (Secure Token Service)

STS (Secure Token Service)

Exchange Lifecycle – Exchange 2007 and Office 2007

Where’s your badge(token)?Where’s your

badge(token)?

Errr… Don’t have oneErrr… Don’t have one

Go get one and come backGo get one and come back

Page 102: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Local ADLocal AD STS (Secure Token Service)

STS (Secure Token Service)

Exchange Lifecycle – Exchange 2007 and Office 2007

Can I have a badge (token) please?

Can I have a badge (token) please?

Where’s your ID?Where’s your ID?

Here:[email protected]

Pwd: 123

Here:[email protected]

Pwd: 123

Hang onHang on

This guy ok?This guy ok?

No way! We fired him an hour ago!

No way! We fired him an hour ago!

No cigar for you!No cigar for you!

Page 103: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Takeaways from Pattern #1

Page 104: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Transference is about moving on premises applications to the cloud

Page 105: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Largely the on-premise application goes across as is

Page 106: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Need to watch out for customizations that the hoster/cloud

does not support

Page 107: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Relies on claims based identity (unless you are going to manage

multiple identity stores)

Page 108: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Pattern 2: Scale and Multi-Tenancy

Page 109: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

“Viral” Web Site, Hosted On Premises

We are only getting a few users per month – let’s put

it on this machine with these other applications

We are only getting a few users per month – let’s put

it on this machine with these other applications

Things seem to be picking up (and the users of the other applications are

complaining)

Things seem to be picking up (and the users of the other applications are

complaining)

Page 110: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

“Viral” Web Site, Hosted On Premises

Let’s move it to a dedicated box instead

Let’s move it to a dedicated box instead

Page 111: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

“Viral” Web Site, Hosted On Premises

Wow, things are really taking off!

Wow, things are really taking off!

Can we borrow that machine over there?

And that load balancer?

Can we borrow that machine over there?

And that load balancer?

Page 112: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

“Viral” Web Site, Hosted by Hoster

This is beyond our operations control – let’s move to a hoster instead

This is beyond our operations control – let’s move to a hoster instead

Page 113: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

“Viral” Web Site, Hosted by Hoster

More users, more machines, more service

packs/patches

More users, more machines, more service

packs/patches

Page 114: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Opposite pattern here is predicting the growth of the web site

Page 115: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

What does this look like in the cloud?

Page 116: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

“Viral” Web Site – Hosted using Azure

Only a few users per month? Let’s start off with 1 x

instance, we’ll pay as we go

Only a few users per month? Let’s start off with 1 x

instance, we’ll pay as we go

Page 117: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

“Viral” Web Site – Hosted using Azure

This is starting to take off…Let’s increase to 2 x instancesThis is starting to take off…

Let’s increase to 2 x instances

Page 118: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud<?xml version="1.0"?><ServiceConfiguration serviceName="Web" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">

<Role name="WebRole"> <Instances count=“2” /> <ConfigurationSettings> <Setting name="AccountName" value="primesolvrstorage"/>

</ConfigurationSettings> </Role></ServiceConfiguration>

Page 119: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

“Viral” Web Site – Hosted using Azure

This is starting to take off…Let’s increase to 5 x instancesThis is starting to take off…

Let’s increase to 5 x instances

Page 120: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud<?xml version="1.0"?><ServiceConfiguration serviceName="Web" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">

<Role name="WebRole"> <Instances count=“5” /> <ConfigurationSettings> <Setting name="AccountName" value="primesolvrstorage"/>

</ConfigurationSettings> </Role></ServiceConfiguration>

Page 121: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

“Viral” Web Site – Hosted using Azure

Actually, we were wrong – this isn’t going to make us

millionaires Let’s turn it off!

Actually, we were wrong – this isn’t going to make us

millionaires Let’s turn it off!

Page 122: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Takeaways from Pattern #2

Page 123: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

The cloud is not only for mega-scale applications

Page 124: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Architecture lets you start very small, yet expand when needed

Page 125: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Not all of those great ideas are going to work out!

Page 126: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Pattern 3: Burst Compute

Page 127: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Configuring a Worker Role using Azure

Let’s create 5 x worker rolesLet’s create 5 x worker roles

Page 128: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Configuring a Worker Role using Azure

Cannot (and should not) consume worker roles directly

Cannot (and should not) consume worker roles directly

Page 129: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Configuring a Worker Role using Azure

Need to expose through presentation (web role)

Need to expose through presentation (web role)

Page 130: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Configuring a Worker Role using Azure

How do you pass data from the presentation (web role) to

the business logic (worker role) to process?

How do you pass data from the presentation (web role) to

the business logic (worker role) to process?

Page 131: Patterns For Moving To The Cloud

PrimeSolvr ImplementationLarry Clarkin and Wade WegnerSr. Architect Evangelists, Central RegionMicrosoft Corporation

Page 132: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

PrimeSolvr Application

User passes a number to be checked if prime

User passes a number to be checked if prime

Page 133: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

PrimeSolvr Application

User passes a number to be checked if prime

User passes a number to be checked if prime

Page 134: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

PrimeSolvr Application

The data is stored in a tableThe data is stored in a table

Page 135: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

PrimeSolvr Application

A “pointer” to the data is placed on the queue

A “pointer” to the data is placed on the queue

Page 136: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

PrimeSolvr Application

The worker role is configured to monitor the queue

The worker role is configured to monitor the queue

Picks up the job and processes

Picks up the job and processes

Page 137: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

PrimeSolvr Application

The result is placed within a table

The result is placed within a table

The presentation reads the table (and displays) on the

next client request

The presentation reads the table (and displays) on the

next client request

Page 138: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Sure, but how does this scale again?

Page 139: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

PrimeSolvr Application

Multiple instances – scale to the number of Web users

Multiple instances – scale to the number of Web users

Multiple instances – scale to the pipeline of incoming

requests

Multiple instances – scale to the pipeline of incoming

requests

Page 140: Patterns For Moving To The Cloud

• Show config here

Page 141: Patterns For Moving To The Cloud

• Show config here

Page 142: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Try it out now!http://primesolvr.cloudapp.net/

Page 143: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Takeaways from Pattern #3

Page 144: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Anti pattern to expose worker role (business logic) directly

Page 145: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Passing data to worker role?Store in blob or table and pass

pointer in queue

Page 146: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Returning result to web role?Store in blob or table, wait for web

to refresh

Page 147: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Pattern 4: Elastic Storage

Page 148: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Storage for the last few decades

Page 149: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

File Storage over the Decades

File ServerFile Server

Direct through RPC, NFS, etc.Direct through RPC, NFS, etc.

Page 150: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

File Storage over the Decades

Intranet PortalIntranet Portal

Page 151: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

File Storage over the Decades

Extranet PortalExtranet Portal

Page 152: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

File Storage over the Decades

Problems with server affinity and mgt of large files.

Relational DB doesn’t solve problem either

Problems with server affinity and mgt of large files.

Relational DB doesn’t solve problem either

Page 153: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Blob Storage using Azure

Cloud provides support for storage through “blobs”

Cloud provides support for storage through “blobs”

REST interface (PutBlob, GetBlob, DeleteBlob)

REST interface (PutBlob, GetBlob, DeleteBlob)

Page 154: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Blob Storage using Azure

Support for BlocksPutBlock(blob, block, data)

Support for BlocksPutBlock(blob, block, data)

How about timeouts over HTTP?

10Gb MRI image

How about timeouts over HTTP?

10Gb MRI image

Commit with PutBlockListCommit with PutBlockList

Page 155: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

…and getting the image back?

Page 156: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Blob Storage using Azure

Please give me the image

http://mri.blob.core.windows.net/images/432532432.mri.jpg

Please give me the image

http://mri.blob.core.windows.net/images/432532432.mri.jpg

Page 157: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Blob Storage using Azure

Render low res-version of the imageRender low res-version of the image

Zoom in pleaseZoom in please

Render zoomed in portion of imageRender zoomed in portion of image

Please show me the imagePlease show me the image

Page 158: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

http://livelabs.com/seadragon/

Page 159: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

What if I want to do relational storage in the cloud?

Page 160: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

SQL Data Services (SDS)

Page 161: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Current SDS Implementation

“Code Near” ModelCode near to home, “long”

data access connection

“Code Near” ModelCode near to home, “long”

data access connection

Page 162: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Current SDS Implementation

“Code Far” ModelCode far from home, “short”

data access connection

“Code Far” ModelCode far from home, “short”

data access connection

Page 163: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

SDS Moving Forward Using Relational Model

Page 164: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Current SDS Implementation

“Code Near” Model using REST (Astoria)

“Code Near” Model using REST (Astoria)

Page 165: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Current SDS Implementation

“Code Far” Model using Azure application

“Code Far” Model using Azure application

Page 166: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Taking the MRI Example Forward

TDS (Tabular Data Stream) over TCP

TDS (Tabular Data Stream) over TCP

Code Near Model(using existing SQL Client

Library)

Code Near Model(using existing SQL Client

Library)

Page 167: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Takeaways from Pattern #4

Page 168: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Local storage is cheap, but management can be difficult

Page 169: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Cloud enables elastic storage growth for large files, but consider

how user will access

Page 170: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

SDS future has three ways of exposing – through HTTP (via

Azure), through REST (via Astoria), through TDS

Page 171: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Pattern 5: Inter-Org Communications

Page 172: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Azure Queues for Web to Worker Communication

Queue works between web and worker role, but not outside the organization

Queue works between web and worker role, but not outside the organization

Page 173: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Azure Queues for Web to Worker Communication

Technically possible to expose Azure queue via REST interface,

but…

Technically possible to expose Azure queue via REST interface,

but…

How do you deal with Firewall/NAT for incoming

msg?

How do you deal with Firewall/NAT for incoming

msg?

Page 174: Patterns For Moving To The Cloud

• Intro Service Bus (product slide)

Page 175: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

.NET Service Bus for Communication

sb://…/myqueue(Outbound bi-directional

socket, kept alive in background)

sb://…/myqueue(Outbound bi-directional

socket, kept alive in background)

SubscriberSubscriber

Page 176: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

.NET Service Bus for Communication

sb://…/myqueue(Outbound one-way socket)

sb://…/myqueue(Outbound one-way socket)

SenderSender

Message routed appropriatelyMessage routed appropriately

Delivered without the use of any inbound ports

Delivered without the use of any inbound ports

Page 177: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

One of the other components of .NET Services is workflow

Page 178: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Event Driven vs. Hosted

Page 179: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Event Driven Workflow

Workflow defined using XOMLWorkflow defined using XOML

Page 180: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Does the workflow always have to be initiated from the client?

Page 181: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Hosted Workflow

Hosted WorkflowHosted Workflow

Page 182: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Red Prairie Example

Page 183: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Red Prairie Example

Orchestrator ServiceOrchestrator Service

Recall – Lead paint discovered in Item #242522

Recall – Lead paint discovered in Item #242522

Page 184: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Red Prairie Example

Iterate through list of partnersIterate through list of partners Send recall noticeSend recall notice

Page 185: Patterns For Moving To The Cloud

Application

Client Software

PC

Browser

Programmatic Access

RSS REST Web Services VoiceXML

Web Presentation

Static Dynamic RIA Streaming

Application

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSIP

Office Client Gadgets IM

Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Infrastructure

Infrastructure Services

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Compute

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Red Prairie Example

Iterate through list of partnersIterate through list of partners Send recall noticeSend recall notice

Receive and Log AcknowledgementReceive and Log

Acknowledgement

Page 186: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Takeaways from Pattern #5

Page 187: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Azure queues can be exposed through REST, but difficult to

receive messages (without polling)

Page 188: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Protocol handling within the .NET Service Bus overcomes this

Page 189: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

(Also provides durable queues as of March CTP)

Page 190: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Workflow can handle more complex communications

Page 191: Patterns For Moving To The Cloud

Patterns for Moving to the Cloud

Hosted workflow in the cloud useful for monitoring

Page 192: Patterns For Moving To The Cloud

Conclusion

Page 193: Patterns For Moving To The Cloud

Conclusion

We covered 5 patterns

Page 194: Patterns For Moving To The Cloud

Conclusion

Pattern 1: Transference

Page 195: Patterns For Moving To The Cloud

Conclusion

Pattern 2: Scale and Multi-Tenancy

Page 196: Patterns For Moving To The Cloud

Conclusion

Pattern 3: Burst Compute

Page 197: Patterns For Moving To The Cloud

Conclusion

Pattern 4: Elastic Storage

Page 198: Patterns For Moving To The Cloud

Conclusion

Pattern 5: Inter-Org Communication

Page 199: Patterns For Moving To The Cloud

Conclusion

These are “starter” patterns - not an exhaustive list, but show some of

the different archetypes of applications possible in the cloud

today

Page 200: Patterns For Moving To The Cloud

Conclusion

This space is still evolving, but very exciting to see the new patterns that

will emerge

Page 201: Patterns For Moving To The Cloud

ARC-INT01 – Join us for Part 2 of this talk!Larry Clarkin and Wade WegnerSr. Architect Evangelists, Central RegionMicrosoft Corporation

Showing 25

instances running on

Azure!

Page 202: Patterns For Moving To The Cloud

www.microsoft.com/teched

Sessions On-Demand & Community

http://microsoft.com/technet

Resources for IT Professionals

http://microsoft.com/msdn

Resources for Developers

www.microsoft.com/learningMicrosoft Certification and Training Resources

www.microsoft.com/learning

Microsoft Certification & Training Resources

Resources

Page 203: Patterns For Moving To The Cloud

Related Content

Now – ARCINT01 – Where we are heading now =>> Architecture TLC in Expo HallNow – ARCINT01 – Where we are heading now =>> Architecture TLC in Expo Hall

Today 4.30pm – ARC311 – Software As A Service in the CloudToday 4.30pm – ARC311 – Software As A Service in the Cloud

Wednesday 4.30pm – ARC203 – Is the CIOs Head in the Cloud?Wednesday 4.30pm – ARC203 – Is the CIOs Head in the Cloud?

Thursday 8.30am – ARC206 – Claims Based IdentityThursday 8.30am – ARC206 – Claims Based Identity

Page 204: Patterns For Moving To The Cloud

Complete an Complete an evaluation on evaluation on CommNet CommNet and enter to and enter to win!win!

Page 205: Patterns For Moving To The Cloud

© 2009 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.

[email protected]://simonguest.com