Post on 09-May-2015
description
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
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