Patterns For Moving To The Cloud

Preview:

DESCRIPTION

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

Citation preview

Simon GuestSenior Director, Technical StrategyMicrosoft CorporationSession Code: ARC308

Moving to the Cloud

Moving to the Cloud

You are an IT Architect

Moving to the Cloud

Your boss (the CIO) has asked you to “move the company 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

Moving to the Cloud

Do I have to move everything to the cloud?

Moving to the Cloud

What applications work best in the cloud?

Moving to the Cloud

Goal of the next 55 minutes:

Moving to the Cloud

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

the cloud

Moving to the Cloud

Look at the popular types of applications that are driving cloud

computing

Moving to the Cloud

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

own thinking

Moving to the Cloud

Introduce terminology and a way of visually diagramming these

patterns for cloud computing

Which Applications should I move to the Cloud?

Which Applications should I move to the Cloud?

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

application “lives”

Which Applications should I move to the Cloud?

On-premises, hosted, and 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

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

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

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

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.”

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

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.”

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

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.”

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

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.”

Which Applications should I move to the Cloud?

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

Which Applications should I move to the Cloud?

Pattern 1: Transference

Which Applications should I move to the Cloud?

Taking an existing on-premises application and moving it 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

Which Applications should I move to the Cloud?

Drivers?Economic, Consolidation,

Prototyping

Which Applications should I move to the Cloud?

Pattern 2: Scale and Multi-Tenancy

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

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

Which Applications should I move to the Cloud?

Drivers?Prototyping, Risk Mitigation

Which Applications should I move to the Cloud?

Pattern 3: Burst Compute

Which Applications should I move to the Cloud?

Creating an application that has the ability to handle additional compute

on an as-needed basis

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

Which Applications should I move to the Cloud?

Drivers?Economic (avoiding over capacity)

Which Applications should I move to the Cloud?

Pattern 4: Elastic Storage

Which Applications should I move to the Cloud?

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

storage perspective

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

Which Applications should I move to the Cloud?

Drivers?Economic (avoiding over capacity),

Management

Which Applications should I move to the Cloud?

Pattern 5: Inter-Org Communications

Which Applications should I move to the Cloud?

Creating an application that has the ability to communicate between

organizations using a pre-defined infrastructure

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

Which Applications should I move to the Cloud?

Drivers?Infrastructure Management

Which Applications should I move to the Cloud?

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

Which Applications should I move to the Cloud?

First need to cover some building blocks

Building Blocks

On Premises Hoster Cloud

Building Blocks

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

Infrastructure Compute

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

On Premises Hoster Cloud

Building Blocks

Infrastructure

Infrastructure Services

Compute

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

On Premises Hoster Cloud

Building Blocks

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

Infrastructure

Infrastructure Services

Storage

BlobRelationalFile

Compute

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

On Premises Hoster Cloud

Table

Building Blocks

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

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

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

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

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)

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

Building Blocks

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

Building Blocks

Use these blocks to explore the detail of the five patterns

Patterns for Moving to the Cloud

Pattern 1: Transference

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

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

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

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

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

Patterns for Moving to the Cloud

Moving Exchange to Hoster/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

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

Patterns for Moving to the Cloud

Hang on! That looked too simple!

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

Patterns for Moving to the Cloud

How do we solve this?

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

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!

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)

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

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

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:joe@pharama.com

Pwd: 123

Here:joe@pharama.com

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)

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!

Patterns for Moving to the Cloud

Why is this important for cloud computing?

Patterns for Moving to the Cloud

Disgruntled ex-employees!

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

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:joe@pharama.com

Pwd: 123

Here:joe@pharama.com

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!

Patterns for Moving to the Cloud

Takeaways from Pattern #1

Patterns for Moving to the Cloud

Transference is about moving on premises applications to the cloud

Patterns for Moving to the Cloud

Largely the on-premise application goes across as is

Patterns for Moving to the Cloud

Need to watch out for customizations that the hoster/cloud

does not support

Patterns for Moving to the Cloud

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

multiple identity stores)

Patterns for Moving to the Cloud

Pattern 2: Scale and Multi-Tenancy

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)

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

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?

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

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

Patterns for Moving to the Cloud

Opposite pattern here is predicting the growth of the web site

Patterns for Moving to the Cloud

What does this look like in 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

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

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>

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

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>

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!

Patterns for Moving to the Cloud

Takeaways from Pattern #2

Patterns for Moving to the Cloud

The cloud is not only for mega-scale applications

Patterns for Moving to the Cloud

Architecture lets you start very small, yet expand when needed

Patterns for Moving to the Cloud

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

Patterns for Moving to the Cloud

Pattern 3: Burst Compute

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

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

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)

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?

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

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

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

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

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

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

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

Patterns for Moving to the Cloud

Sure, but how does this scale again?

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

• Show config here

• Show config here

Patterns for Moving to the Cloud

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

Patterns for Moving to the Cloud

Takeaways from Pattern #3

Patterns for Moving to the Cloud

Anti pattern to expose worker role (business logic) directly

Patterns for Moving to the Cloud

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

pointer in queue

Patterns for Moving to the Cloud

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

to refresh

Patterns for Moving to the Cloud

Pattern 4: Elastic Storage

Patterns for Moving to the Cloud

Storage for the last few decades

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.

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

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

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

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)

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

Patterns for Moving to the Cloud

…and getting the image back?

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

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

Patterns for Moving to the Cloud

http://livelabs.com/seadragon/

Patterns for Moving to the Cloud

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

Patterns for Moving to the Cloud

SQL Data Services (SDS)

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

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

Patterns for Moving to the Cloud

SDS Moving Forward Using Relational Model

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)

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

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)

Patterns for Moving to the Cloud

Takeaways from Pattern #4

Patterns for Moving to the Cloud

Local storage is cheap, but management can be difficult

Patterns for Moving to the Cloud

Cloud enables elastic storage growth for large files, but consider

how user will access

Patterns for Moving to the Cloud

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

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

Patterns for Moving to the Cloud

Pattern 5: Inter-Org Communications

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

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?

• Intro Service Bus (product slide)

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

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

Patterns for Moving to the Cloud

One of the other components of .NET Services is workflow

Patterns for Moving to the Cloud

Event Driven vs. Hosted

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

Patterns for Moving to the Cloud

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

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

Patterns for Moving to the Cloud

Red Prairie Example

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

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

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

Patterns for Moving to the Cloud

Takeaways from Pattern #5

Patterns for Moving to the Cloud

Azure queues can be exposed through REST, but difficult to

receive messages (without polling)

Patterns for Moving to the Cloud

Protocol handling within the .NET Service Bus overcomes this

Patterns for Moving to the Cloud

(Also provides durable queues as of March CTP)

Patterns for Moving to the Cloud

Workflow can handle more complex communications

Patterns for Moving to the Cloud

Hosted workflow in the cloud useful for monitoring

Conclusion

Conclusion

We covered 5 patterns

Conclusion

Pattern 1: Transference

Conclusion

Pattern 2: Scale and Multi-Tenancy

Conclusion

Pattern 3: Burst Compute

Conclusion

Pattern 4: Elastic Storage

Conclusion

Pattern 5: Inter-Org Communication

Conclusion

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

the different archetypes of applications possible in the cloud

today

Conclusion

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

will emerge

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!

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

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

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

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

simon.guest@microsoft.comhttp://simonguest.com