Patternsformovingtothecloudarc308guest

205

description

 

Transcript of Patternsformovingtothecloudarc308guest

Page 1: Patternsformovingtothecloudarc308guest
Page 2: Patternsformovingtothecloudarc308guest

Simon GuestSenior Director, Technical StrategyMicrosoft CorporationSession Code: ARC308

Page 3: Patternsformovingtothecloudarc308guest

Moving to the Cloud

Page 4: Patternsformovingtothecloudarc308guest

Moving to the Cloud

You are an IT Architect

Page 5: Patternsformovingtothecloudarc308guest

Moving to the Cloud

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

Page 6: Patternsformovingtothecloudarc308guest

Moving to the Cloud

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

intro sessions, but unsure where to start

Page 7: Patternsformovingtothecloudarc308guest

Moving to the Cloud

Do I have to move everything to the cloud?

Page 8: Patternsformovingtothecloudarc308guest

Moving to the Cloud

What applications work best in the cloud?

Page 9: Patternsformovingtothecloudarc308guest

Moving to the Cloud

Goal of the next 55 minutes:

Page 10: Patternsformovingtothecloudarc308guest

Moving to the Cloud

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

the cloud

Page 11: Patternsformovingtothecloudarc308guest

Moving to the Cloud

Look at the popular types of applications that are driving cloud

computing

Page 12: Patternsformovingtothecloudarc308guest

Moving to the Cloud

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

own thinking

Page 13: Patternsformovingtothecloudarc308guest

Moving to the Cloud

Introduce terminology and a way of visually diagramming these

patterns for cloud computing

Page 14: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Page 15: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

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

application “lives”

Page 16: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

On-premises, hosted, and cloud

Page 17: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

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

Page 29: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Pattern 1: Transference

Page 30: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

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

cloud

Page 31: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Drivers?Economic, Consolidation,

Prototyping

Page 33: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Pattern 2: Scale and Multi-Tenancy

Page 34: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Drivers?Prototyping, Risk Mitigation

Page 37: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Pattern 3: Burst Compute

Page 38: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Drivers?Economic (avoiding over capacity)

Page 41: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Pattern 4: Elastic Storage

Page 42: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

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

storage perspective

Page 43: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Drivers?Economic (avoiding over capacity),

Management

Page 45: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Pattern 5: Inter-Org Communications

Page 46: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

Drivers?Infrastructure Management

Page 49: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

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

Page 50: Patternsformovingtothecloudarc308guest

Which Applications should I move to the Cloud?

First need to cover some building blocks

Page 51: Patternsformovingtothecloudarc308guest

Building Blocks

Page 52: Patternsformovingtothecloudarc308guest

On Premises Hoster Cloud

Building Blocks

Page 53: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Infrastructure Compute

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

On Premises Hoster Cloud

Building Blocks

Page 55: Patternsformovingtothecloudarc308guest

Infrastructure

Infrastructure Services

Compute

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

On Premises Hoster Cloud

Building Blocks

Page 56: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Infrastructure

Infrastructure Services

Storage

BlobRelationalFile

Compute

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

On Premises Hoster Cloud

Table

Building Blocks

Page 58: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Building Blocks

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

Page 79: Patternsformovingtothecloudarc308guest

Building Blocks

Use these blocks to explore the detail of the five patterns

Page 80: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Pattern 1: Transference

Page 81: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Moving Exchange to Hoster/Cloud

Page 87: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Hang on! That looked too simple!

Page 90: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

How do we solve this?

Page 92: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Why is this important for cloud computing?

Page 100: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Disgruntled ex-employees!

Page 101: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Takeaways from Pattern #1

Page 104: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Transference is about moving on premises applications to the cloud

Page 105: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Largely the on-premise application goes across as is

Page 106: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Need to watch out for customizations that the hoster/cloud

does not support

Page 107: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

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

multiple identity stores)

Page 108: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Pattern 2: Scale and Multi-Tenancy

Page 109: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Opposite pattern here is predicting the growth of the web site

Page 115: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

What does this look like in the cloud?

Page 116: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Takeaways from Pattern #2

Page 123: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

The cloud is not only for mega-scale applications

Page 124: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Architecture lets you start very small, yet expand when needed

Page 125: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

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

Page 126: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Pattern 3: Burst Compute

Page 127: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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

Page 132: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Sure, but how does this scale again?

Page 139: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

• Show config here

Page 141: Patternsformovingtothecloudarc308guest

• Show config here

Page 142: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

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

Page 143: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Takeaways from Pattern #3

Page 144: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Anti pattern to expose worker role (business logic) directly

Page 145: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

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

pointer in queue

Page 146: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

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

to refresh

Page 147: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Pattern 4: Elastic Storage

Page 148: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Storage for the last few decades

Page 149: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

…and getting the image back?

Page 156: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

http://livelabs.com/seadragon/

Page 159: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

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

Page 160: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

SQL Data Services (SDS)

Page 161: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

SDS Moving Forward Using Relational Model

Page 164: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Takeaways from Pattern #4

Page 168: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Local storage is cheap, but management can be difficult

Page 169: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Cloud enables elastic storage growth for large files, but consider

how user will access

Page 170: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Pattern 5: Inter-Org Communications

Page 172: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

• Intro Service Bus (product slide)

Page 175: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

One of the other components of .NET Services is workflow

Page 178: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Event Driven vs. Hosted

Page 179: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

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

Page 181: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Red Prairie Example

Page 183: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Takeaways from Pattern #5

Page 187: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Azure queues can be exposed through REST, but difficult to

receive messages (without polling)

Page 188: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Protocol handling within the .NET Service Bus overcomes this

Page 189: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

(Also provides durable queues as of March CTP)

Page 190: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Workflow can handle more complex communications

Page 191: Patternsformovingtothecloudarc308guest

Patterns for Moving to the Cloud

Hosted workflow in the cloud useful for monitoring

Page 192: Patternsformovingtothecloudarc308guest

Conclusion

Page 193: Patternsformovingtothecloudarc308guest

Conclusion

We covered 5 patterns

Page 194: Patternsformovingtothecloudarc308guest

Conclusion

Pattern 1: Transference

Page 195: Patternsformovingtothecloudarc308guest

Conclusion

Pattern 2: Scale and Multi-Tenancy

Page 196: Patternsformovingtothecloudarc308guest

Conclusion

Pattern 3: Burst Compute

Page 197: Patternsformovingtothecloudarc308guest

Conclusion

Pattern 4: Elastic Storage

Page 198: Patternsformovingtothecloudarc308guest

Conclusion

Pattern 5: Inter-Org Communication

Page 199: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

Conclusion

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

will emerge

Page 201: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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: Patternsformovingtothecloudarc308guest

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

Page 205: Patternsformovingtothecloudarc308guest

© 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