0
 
Simon Guest Senior Director, Technical Strategy Microsoft Corporation Session Code: ARC308
 
You are an IT Architect
Your boss (the CIO) has asked you to “move the company to the cloud”
Heard of cloud computing, and you’ve been through the “Azure” intro sessions, but unsure where to start
Do I have to move  everything  to the cloud?
What applications  work best  in the cloud?
Goal of the next 55 minutes:
Cover some of the differences between  on   premises ,  hosted , and the  cloud
Look at the popular  types of applications  that are driving cloud computing
Share a  set of patterns  that you can take away and apply for your own thinking
Introduce  terminology  and a way of  visually diagramming  these  patterns for cloud computing
 
Less about the style of an application, more about where an application “lives”
On-premises, hosted, and cloud
Application runs  on-premises Buy my own hardware, and manage my own data center Application runs at a  hoster Pay someone...
Cloud computing is a pay-per-use model for enabling available, convenient, on-demand network access to a shared pool of co...
Application runs  on-premises Buy my own hardware, and manage my own data center Application runs at a  hoster Pay someone...
Application runs  on-premises Application runs at a  hoster Application runs using  cloud  platform “ Packaged” Applicatio...
“ CRM and Email are commodity services.  We have few customizations, and it should be cheaper for someone else to run thes...
“ This is a viral marketing website.  It has a small chance of being really big, but we’re not sure!” “ How difficult is i...
“ This application runs at full capacity for short periods of time at the end of each month.” In case it is successful, we...
“ MRI images are very large and exponentially growing.  Is there a better way of storing these?” “ Can the cloud help us i...
“ Does the cloud give me the storage I’m after?” “ We need to share results from our H1N1 trials with government entities....
“ I can’t afford to maintain this old HR application written in VB – it’s driving me mad!” “… but due to regulatory issues...
“ A good solution could be to find a suitable packaged application here.” Application runs  on-premises Application runs a...
We see a shift to the “right”, but what  patterns  emerge here?
Pattern 1:  Transference
Taking an existing on-premises application and moving it to the cloud
Application runs  on-premises Application runs at a  hoster Application runs using  cloud  platform “ Packaged” Applicatio...
Drivers? Economic, Consolidation, Prototyping
Pattern 2:  Scale and Multi-Tenancy
Creating an application that has the ability to handle web load without requiring the full capital investment from day one
Application runs  on-premises Application runs at a  hoster Application runs using  cloud  platform “ Packaged” Applicatio...
Drivers? Prototyping, Risk Mitigation
Pattern 3:  Burst Compute
Creating an application that has the ability to handle additional compute on an as-needed basis
Application runs  on-premises Application runs at a  hoster Application runs using  cloud  platform “ Packaged” Applicatio...
Drivers? Economic (avoiding over capacity)
Pattern 4:  Elastic Storage
Creating an application that has the ability to grow exponentially from a storage perspective
Application runs  on-premises Application runs at a  hoster Application runs using  cloud  platform “ Packaged” Applicatio...
Drivers? Economic (avoiding over capacity), Management
Pattern 5:  Inter-Org Communications
Creating an application that has the ability to communicate between organizations using a pre-defined infrastructure
Application runs  on-premises Application runs at a  hoster Application runs using  cloud  platform “ Packaged” Applicatio...
Drivers? Infrastructure Management
What do we need to start to dig deeper into some of the patterns?
First need to cover some building blocks
Building Blocks
Building Blocks
Building Blocks Physical, Dedicated Single service on dedicated hardware Physical, Shared Multiple services sharing same h...
Building Blocks
Building Blocks
Building Blocks File Flat file, page-based (e.g. HTML/ASPX), server affinity  Relational Relational database, transactiona...
Building Blocks
Building Blocks Async Queue or Bus Asynchronous, reliable messaging, publish/subscribe model  Peer to Peer Node registrati...
Building Blocks
Building Blocks Authentication Username / Password or Claims based Role Based Authorization Role-checking and Authorization
Building Blocks
Building Blocks Event Based Triggered based on events (e.g. document upload)  Worker Based Persistent workflow, always act...
Building Blocks
Building Blocks
Building Blocks Presentation Web Role Business Logic Worker Role
Building Blocks
Building Blocks Static Static content, HTML etc  Dynamic Dynamic created pages, ASPX, PHP, etc.  Client interaction throug...
Building Blocks
Building Blocks Web Services SOAP based, WS-I compliant, WS-*  REST CRUD access to services using HTTP constructs RSS Synd...
Building Blocks
Building Blocks
Building Blocks Browser Consumer of web based content, HTML etc., including RIA plug in  Office Office Suite, including Em...
Building Blocks
Building Blocks Browser Consumer of web based content, HTML etc., including RIA plug in  Office Office Suite, including Em...
Building Blocks
Building Blocks Devices Dedicated devices Consoles Games Consoles
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
Exchange Lifecycle – Exchange 4.0 and Office 97 RPC JET Database
Exchange Lifecycle – Exchange 5.0 and Office 97 JET Database Active Directory for Account Storage
Exchange Lifecycle – Exchange 5.0 SP1 and Office XP Support for Outlook Web Access
Exchange Lifecycle – Exchange 2003 and Office 2003 Support for RPC over HTTPS
Exchange Lifecycle – Exchange 2007 and Office 2007 Support for Speech and Mobile
Patterns for Moving to the Cloud Moving Exchange to Hoster/Cloud
Exchange Lifecycle – Exchange 2007 and Office 2007
Exchange Lifecycle – Exchange 2007 and Office 2007 Same pattern applies, different provider
Patterns for Moving to the Cloud Hang on!  That looked too simple!
Exchange Lifecycle – Exchange 2007 and Office 2007 Made assumption that Identity Provider moved to the cloud also
Patterns for Moving to the Cloud How do we solve this?
Exchange Lifecycle – Exchange 2007 and Office 2007 We could use replication, but difficult to manage
Patterns for Moving to the Cloud Need a system similar to your speaker badge! Registration Desk Door person Attendee Speak...
Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service)
Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Passport Agency Registration Desk D...
Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Where’s your badge(token)? Errr… Do...
Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Can I have a badge (token) please? ...
Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Where’s your badge(token)? Here you...
Patterns for Moving to the Cloud Why is this important for cloud computing?
Patterns for Moving to the Cloud Disgruntled ex-employees!
Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Where’s your badge(token)? Errr… Do...
Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Can I have a badge (token) please? ...
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
“ Viral” Web Site, Hosted On Premises We are only getting a few users per month – let’s put it on this machine with these ...
“ Viral” Web Site, Hosted On Premises Let’s move it to a dedicated box instead
“ Viral” Web Site, Hosted On Premises Wow, things are really taking off! Can we borrow that machine over there? And that l...
“ Viral” Web Site, Hosted by Hoster This is beyond our operations control – let’s move to a hoster instead
“ Viral” Web Site, Hosted by Hoster 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?
“ 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
“ Viral” Web Site – Hosted using Azure This is starting to take off… Let’s increase to 2 x instances
Patterns for Moving to the Cloud <ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li><ServiceConfiguration serviceNa...
“ Viral” Web Site – Hosted using Azure This is starting to take off… Let’s increase to 5 x instances
Patterns for Moving to the Cloud <ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li><ServiceConfiguration serviceNa...
“ Viral” Web Site – Hosted using Azure Actually, we were wrong – this isn’t going to make us millionaires  Let’s turn it o...
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
Configuring a Worker Role using Azure Let’s create 5 x worker roles
Configuring a Worker Role using Azure Cannot (and should not) consume worker roles directly
Configuring a Worker Role using Azure Need to expose through presentation (web role)
Configuring a Worker Role using Azure How do you pass data from the presentation (web role) to the business logic (worker ...
PrimeSolvr Implementation Larry Clarkin and Wade Wegner Sr. Architect Evangelists, Central Region Microsoft Corporation
PrimeSolvr Application User passes a number to be checked if prime
PrimeSolvr Application User passes a number to be checked if prime
PrimeSolvr Application The data is stored in a table
PrimeSolvr Application A “pointer” to the data is placed on the queue
PrimeSolvr Application The worker role is configured to monitor the queue Picks up the job and processes
PrimeSolvr Application The result is placed within a table The presentation reads the table (and displays) on the next cli...
Patterns for Moving to the Cloud Sure, but how does this scale again?
PrimeSolvr Application Multiple instances – scale to the number of Web users Multiple instances – scale to the pipeline of...
<ul><li>Show config here </li></ul>
<ul><li>Show config here </li></ul>
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
File Storage over the Decades File Server Direct through RPC, NFS, etc.
File Storage over the Decades Intranet Portal
File Storage over the Decades Extranet Portal
File Storage over the Decades Problems with server affinity and mgt of large files.  Relational DB doesn’t solve problem e...
Blob Storage using Azure Cloud provides support for storage through “blobs” REST interface (PutBlob, GetBlob, DeleteBlob)
Blob Storage using Azure Support for Blocks PutBlock(blob, block, data) How about timeouts over HTTP? 10Gb MRI image Commi...
Patterns for Moving to the Cloud … and getting the image back?
Blob Storage using Azure Please give me the image http://mri.blob.core.windows.net/images/432532432.mri.jpg
Blob Storage using Azure Render low res-version of the image Zoom in please Render zoomed in portion of image Please show ...
Patterns for Moving to the Cloud http://livelabs.com/seadragon/
Patterns for Moving to the Cloud What if I want to do relational storage in the cloud?
Patterns for Moving to the Cloud SQL Data Services (SDS)
Current SDS Implementation “ Code Near” Model Code near to home, “long” data access connection
Current SDS Implementation “ Code Far” Model Code far from home, “short” data access connection
Patterns for Moving to the Cloud SDS Moving Forward  Using Relational Model
Current SDS Implementation “ Code Near” Model using REST (Astoria)
Current SDS Implementation “ Code Far” Model using Azure application
Taking the MRI Example Forward TDS (Tabular Data Stream) over TCP 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 Astor...
Patterns for Moving to the Cloud Pattern 5:  Inter-Org Communications
Azure Queues for Web to Worker Communication Queue works between web and worker role, but not outside the organization
Azure Queues for Web to Worker Communication Technically possible to expose Azure queue via REST interface, but… How do yo...
<ul><li>Intro Service Bus (product slide) </li></ul>
.NET Service Bus for Communication sb://…/myqueue (Outbound bi-directional socket, kept alive in background) Subscriber
.NET Service Bus for Communication sb://…/myqueue (Outbound one-way socket) Sender Message routed appropriately Delivered ...
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
Event Driven Workflow Workflow defined using XOML
Patterns for Moving to the Cloud Does the workflow always have to be initiated from the client?
Hosted Workflow Hosted Workflow
Patterns for Moving to the Cloud Red Prairie Example
Red Prairie Example Orchestrator Service Recall – Lead paint discovered in Item #242522
Red Prairie Example Iterate through list of partners Send recall notice
Red Prairie Example Iterate through list of partners Send recall notice Receive 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 poll...
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 application...
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 Wegner Sr. Architect Evangelists, Central Region Micro...
Resources <ul><li>www.microsoft.com/teched   </li></ul><ul><ul><li>Sessions On-Demand & Community </li></ul></ul><ul><li>h...
Related Content <ul><li>Now – ARCINT01 – Where we are heading now =>> Architecture TLC in Expo Hall </li></ul><ul><li>Toda...
Complete an evaluation on CommNet and enter to win! Required Slide
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
Upcoming SlideShare
Loading in...5
×

Patterns For Moving To The Cloud

5,094

Published on

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

Published in: Technology, Business
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,094
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
435
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide
  • Tech·Ed  North America 2009 06/10/09 01:53 © 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.
  • Transcript of "Patterns For Moving To The Cloud"

    1. 2. Simon Guest Senior Director, Technical Strategy Microsoft Corporation Session Code: ARC308
    2. 4. You are an IT Architect
    3. 5. Your boss (the CIO) has asked you to “move the company to the cloud”
    4. 6. Heard of cloud computing, and you’ve been through the “Azure” intro sessions, but unsure where to start
    5. 7. Do I have to move everything to the cloud?
    6. 8. What applications work best in the cloud?
    7. 9. Goal of the next 55 minutes:
    8. 10. Cover some of the differences between on premises , hosted , and the cloud
    9. 11. Look at the popular types of applications that are driving cloud computing
    10. 12. Share a set of patterns that you can take away and apply for your own thinking
    11. 13. Introduce terminology and a way of visually diagramming these patterns for cloud computing
    12. 15. Less about the style of an application, more about where an application “lives”
    13. 16. On-premises, hosted, and cloud
    14. 17. 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 <ul><li>Application runs </li></ul><ul><li>on-premises </li></ul><ul><li>Bring my own machines, connectivity, software, etc. </li></ul><ul><li>Complete control and responsibility </li></ul><ul><li>Upfront capital costs for the infrastructure </li></ul><ul><li>Application runs at a hoster </li></ul><ul><li>Rent machines, connectivity, software </li></ul><ul><li>Less control, but fewer responsibilities </li></ul><ul><li>Lower capital costs, but pay for fixed capacity, even if idle </li></ul>
    15. 18. 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 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 <ul><li>Application runs </li></ul><ul><li>on-premises </li></ul><ul><li>Bring my own machines, connectivity, software, etc. </li></ul><ul><li>Complete control and responsibility </li></ul><ul><li>Upfront capital costs for the infrastructure </li></ul><ul><li>Application runs at a hoster </li></ul><ul><li>Rent machines, connectivity, software </li></ul><ul><li>Less control, but fewer responsibilities </li></ul><ul><li>Lower capital costs, but pay for fixed capacity, even if idle </li></ul>
    16. 19. 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 <ul><li>Application runs </li></ul><ul><li>on-premises </li></ul><ul><li>Bring my own machines, connectivity, software, etc. </li></ul><ul><li>Complete control and responsibility </li></ul><ul><li>Upfront capital costs for the infrastructure </li></ul><ul><li>Application runs at a hoster </li></ul><ul><li>Rent machines, connectivity, software </li></ul><ul><li>Less control, but fewer responsibilities </li></ul><ul><li>Lower capital costs, but pay for fixed capacity, even if idle </li></ul><ul><li>Application runs using cloud platform </li></ul><ul><li>Shared, </li></ul><ul><li>multi-tenant environment </li></ul><ul><li>Offers pool of computing resources, abstracted from infrastructure </li></ul><ul><li>Pay as you go </li></ul>
    17. 20. 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
    18. 21. “ CRM and Email are commodity services. We have few customizations, and it should be cheaper for someone else to run these.” 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
    19. 22. “ This is a viral marketing website. It has a small chance of being really big, but we’re not sure!” “ How difficult is it to move these to a software as a service model?” 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 Viral Marketing
    20. 23. “ 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.” 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
    21. 24. “ 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?” 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
    22. 25. “ Does the cloud give me the storage I’m after?” “ We need to share results from our H1N1 trials with government entities.” 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 MRI Imaging
    23. 26. “ 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.” “ Does the cloud provide anything for inter-organization communication?” 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
    24. 27. “ A good solution could be to find a suitable packaged application here.” 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
    25. 28. We see a shift to the “right”, but what patterns emerge here?
    26. 29. Pattern 1: Transference
    27. 30. Taking an existing on-premises application and moving it to the cloud
    28. 31. 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
    29. 32. Drivers? Economic, Consolidation, Prototyping
    30. 33. Pattern 2: Scale and Multi-Tenancy
    31. 34. Creating an application that has the ability to handle web load without requiring the full capital investment from day one
    32. 35. 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
    33. 36. Drivers? Prototyping, Risk Mitigation
    34. 37. Pattern 3: Burst Compute
    35. 38. Creating an application that has the ability to handle additional compute on an as-needed basis
    36. 39. 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
    37. 40. Drivers? Economic (avoiding over capacity)
    38. 41. Pattern 4: Elastic Storage
    39. 42. Creating an application that has the ability to grow exponentially from a storage perspective
    40. 43. 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
    41. 44. Drivers? Economic (avoiding over capacity), Management
    42. 45. Pattern 5: Inter-Org Communications
    43. 46. Creating an application that has the ability to communicate between organizations using a pre-defined infrastructure
    44. 47. 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
    45. 48. Drivers? Infrastructure Management
    46. 49. What do we need to start to dig deeper into some of the patterns?
    47. 50. First need to cover some building blocks
    48. 51. Building Blocks
    49. 52. Building Blocks
    50. 53. Building Blocks Physical, Dedicated Single service on dedicated hardware Physical, Shared Multiple services sharing same hardware Virtual, Single Single instance virtual image Virtual, Scalable Virtual “fabric” for applications
    51. 54. Building Blocks
    52. 55. Building Blocks
    53. 56. Building Blocks File Flat file, page-based (e.g. HTML/ASPX), server affinity Relational Relational database, transactional, finite Table Storage for structured entities, scalable data Blob Storage for large data items, typically media files, no server affinity
    54. 57. Building Blocks
    55. 58. Building Blocks Async Queue or Bus Asynchronous, reliable messaging, publish/subscribe model Peer to Peer Node registration, directory, presence awareness
    56. 59. Building Blocks
    57. 60. Building Blocks Authentication Username / Password or Claims based Role Based Authorization Role-checking and Authorization
    58. 61. Building Blocks
    59. 62. Building Blocks Event Based Triggered based on events (e.g. document upload) Worker Based Persistent workflow, always active (e.g. monitoring service)
    60. 63. Building Blocks
    61. 64. Building Blocks
    62. 65. Building Blocks Presentation Web Role Business Logic Worker Role
    63. 66. Building Blocks
    64. 67. Building Blocks Static Static content, HTML etc Dynamic Dynamic created pages, ASPX, PHP, etc. Client interaction through AJAX, JavaScript Rich Internet Application High visual interaction through browser plug in, some offline support Streaming Optimized for content delivery, videos etc.
    65. 68. Building Blocks
    66. 69. Building Blocks Web Services SOAP based, WS-I compliant, WS-* REST CRUD access to services using HTTP constructs RSS Syndication services for subscriptions VoiceXML Mobile Application Speech API SIP Session Initiation Protocol – IM Clients SMTP Email inbound and outbound delivery SMS Mobile inbound and outbound text messaging
    67. 70. Building Blocks
    68. 71. Building Blocks
    69. 72. Building Blocks Browser Consumer of web based content, HTML etc., including RIA plug in Office Office Suite, including Email and RSS reader capability Client Application Rich (Smart) client applications installed locally on machine Gadgets Locally installed, desktop based Instant Messaging Locally installed Instant Messaging client
    70. 73. Building Blocks
    71. 74. Building Blocks Browser Consumer of web based content, HTML etc., including RIA plug in Office Office Suite, including Email and RSS reader capability Client Application Rich (Smart) client applications installed locally on machine SMS / IM Text messaging and IM using Mobile Device Speech Speech enabled interface
    72. 75. Building Blocks
    73. 76. Building Blocks Devices Dedicated devices Consoles Games Consoles
    74. 77. Building Blocks
    75. 78. Building Blocks Err… Didn’t you just build a marketing diagram? :-)
    76. 79. Building Blocks Use these blocks to explore the detail of the five patterns
    77. 80. Patterns for Moving to the Cloud Pattern 1: Transference
    78. 81. Exchange Lifecycle – Exchange 4.0 and Office 97 RPC JET Database
    79. 82. Exchange Lifecycle – Exchange 5.0 and Office 97 JET Database Active Directory for Account Storage
    80. 83. Exchange Lifecycle – Exchange 5.0 SP1 and Office XP Support for Outlook Web Access
    81. 84. Exchange Lifecycle – Exchange 2003 and Office 2003 Support for RPC over HTTPS
    82. 85. Exchange Lifecycle – Exchange 2007 and Office 2007 Support for Speech and Mobile
    83. 86. Patterns for Moving to the Cloud Moving Exchange to Hoster/Cloud
    84. 87. Exchange Lifecycle – Exchange 2007 and Office 2007
    85. 88. Exchange Lifecycle – Exchange 2007 and Office 2007 Same pattern applies, different provider
    86. 89. Patterns for Moving to the Cloud Hang on! That looked too simple!
    87. 90. Exchange Lifecycle – Exchange 2007 and Office 2007 Made assumption that Identity Provider moved to the cloud also
    88. 91. Patterns for Moving to the Cloud How do we solve this?
    89. 92. Exchange Lifecycle – Exchange 2007 and Office 2007 We could use replication, but difficult to manage
    90. 93. Patterns for Moving to the Cloud Need a system similar to your speaker badge! Registration Desk Door person Attendee Speaker Crew Main Hall Attendee Speaker Crew Speaker Rm Speaker Crew Bill Veghte Green Room Crew Joe Pharma Attendee Joe Pharma Passport Agency
    91. 94. Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service)
    92. 95. Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Passport Agency Registration Desk Door person
    93. 96. Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Where’s your badge(token)? Errr… Don’t have one Go get one and come back
    94. 97. Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Can I have a badge (token) please? Where’s your ID? Here: [email_address] Pwd: 123 Hang on This guy ok? Yeah, he’s good Here’s your badge (token)
    95. 98. Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Where’s your badge(token)? Here you are Looks good – come on in!
    96. 99. Patterns for Moving to the Cloud Why is this important for cloud computing?
    97. 100. Patterns for Moving to the Cloud Disgruntled ex-employees!
    98. 101. Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Where’s your badge(token)? Errr… Don’t have one Go get one and come back
    99. 102. Exchange Lifecycle – Exchange 2007 and Office 2007 Local AD STS (Secure Token Service) Can I have a badge (token) please? Where’s your ID? Here: [email_address] Pwd: 123 Hang on This guy ok? No way! We fired him an hour ago! No cigar for you!
    100. 103. Patterns for Moving to the Cloud Takeaways from Pattern #1
    101. 104. Patterns for Moving to the Cloud Transference is about moving on premises applications to the cloud
    102. 105. Patterns for Moving to the Cloud Largely the on-premise application goes across as is
    103. 106. Patterns for Moving to the Cloud Need to watch out for customizations that the hoster/cloud does not support
    104. 107. Patterns for Moving to the Cloud Relies on claims based identity (unless you are going to manage multiple identity stores)
    105. 108. Patterns for Moving to the Cloud Pattern 2: Scale and Multi-Tenancy
    106. 109. “ 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 Things seem to be picking up (and the users of the other applications are complaining)
    107. 110. “ Viral” Web Site, Hosted On Premises Let’s move it to a dedicated box instead
    108. 111. “ Viral” Web Site, Hosted On Premises Wow, things are really taking off! Can we borrow that machine over there? And that load balancer?
    109. 112. “ Viral” Web Site, Hosted by Hoster This is beyond our operations control – let’s move to a hoster instead
    110. 113. “ Viral” Web Site, Hosted by Hoster More users, more machines, more service packs/patches
    111. 114. Patterns for Moving to the Cloud Opposite pattern here is predicting the growth of the web site
    112. 115. Patterns for Moving to the Cloud What does this look like in the cloud?
    113. 116. “ 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
    114. 117. “ Viral” Web Site – Hosted using Azure This is starting to take off… Let’s increase to 2 x instances
    115. 118. Patterns for Moving to the Cloud <ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li><ServiceConfiguration serviceName=&quot;Web&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration&quot;> </li></ul><ul><li><Role name=&quot;WebRole&quot;> </li></ul><ul><li><Instances count=“2” /> </li></ul><ul><li><ConfigurationSettings> </li></ul><ul><li><Setting name=&quot;AccountName&quot; value=&quot;primesolvrstorage&quot;/> </li></ul><ul><li></ConfigurationSettings> </li></ul><ul><li></Role> </li></ul><ul><li></ServiceConfiguration> </li></ul>
    116. 119. “ Viral” Web Site – Hosted using Azure This is starting to take off… Let’s increase to 5 x instances
    117. 120. Patterns for Moving to the Cloud <ul><li><?xml version=&quot;1.0&quot;?> </li></ul><ul><li><ServiceConfiguration serviceName=&quot;Web&quot; xmlns=&quot;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration&quot;> </li></ul><ul><li><Role name=&quot;WebRole&quot;> </li></ul><ul><li><Instances count=“5” /> </li></ul><ul><li><ConfigurationSettings> </li></ul><ul><li><Setting name=&quot;AccountName&quot; value=&quot;primesolvrstorage&quot;/> </li></ul><ul><li></ConfigurationSettings> </li></ul><ul><li></Role> </li></ul><ul><li></ServiceConfiguration> </li></ul>
    118. 121. “ Viral” Web Site – Hosted using Azure Actually, we were wrong – this isn’t going to make us millionaires Let’s turn it off!
    119. 122. Patterns for Moving to the Cloud Takeaways from Pattern #2
    120. 123. Patterns for Moving to the Cloud The cloud is not only for mega-scale applications
    121. 124. Patterns for Moving to the Cloud Architecture lets you start very small, yet expand when needed
    122. 125. Patterns for Moving to the Cloud Not all of those great ideas are going to work out!
    123. 126. Patterns for Moving to the Cloud Pattern 3: Burst Compute
    124. 127. Configuring a Worker Role using Azure Let’s create 5 x worker roles
    125. 128. Configuring a Worker Role using Azure Cannot (and should not) consume worker roles directly
    126. 129. Configuring a Worker Role using Azure Need to expose through presentation (web role)
    127. 130. Configuring a Worker Role using Azure How do you pass data from the presentation (web role) to the business logic (worker role) to process?
    128. 131. PrimeSolvr Implementation Larry Clarkin and Wade Wegner Sr. Architect Evangelists, Central Region Microsoft Corporation
    129. 132. PrimeSolvr Application User passes a number to be checked if prime
    130. 133. PrimeSolvr Application User passes a number to be checked if prime
    131. 134. PrimeSolvr Application The data is stored in a table
    132. 135. PrimeSolvr Application A “pointer” to the data is placed on the queue
    133. 136. PrimeSolvr Application The worker role is configured to monitor the queue Picks up the job and processes
    134. 137. PrimeSolvr Application The result is placed within a table The presentation reads the table (and displays) on the next client request
    135. 138. Patterns for Moving to the Cloud Sure, but how does this scale again?
    136. 139. PrimeSolvr Application Multiple instances – scale to the number of Web users Multiple instances – scale to the pipeline of incoming requests
    137. 140. <ul><li>Show config here </li></ul>
    138. 141. <ul><li>Show config here </li></ul>
    139. 142. Patterns for Moving to the Cloud Try it out now! http://primesolvr.cloudapp.net/
    140. 143. Patterns for Moving to the Cloud Takeaways from Pattern #3
    141. 144. Patterns for Moving to the Cloud Anti pattern to expose worker role (business logic) directly
    142. 145. Patterns for Moving to the Cloud Passing data to worker role? Store in blob or table and pass pointer in queue
    143. 146. Patterns for Moving to the Cloud Returning result to web role? Store in blob or table, wait for web to refresh
    144. 147. Patterns for Moving to the Cloud Pattern 4: Elastic Storage
    145. 148. Patterns for Moving to the Cloud Storage for the last few decades
    146. 149. File Storage over the Decades File Server Direct through RPC, NFS, etc.
    147. 150. File Storage over the Decades Intranet Portal
    148. 151. File Storage over the Decades Extranet Portal
    149. 152. File Storage over the Decades Problems with server affinity and mgt of large files. Relational DB doesn’t solve problem either
    150. 153. Blob Storage using Azure Cloud provides support for storage through “blobs” REST interface (PutBlob, GetBlob, DeleteBlob)
    151. 154. Blob Storage using Azure Support for Blocks PutBlock(blob, block, data) How about timeouts over HTTP? 10Gb MRI image Commit with PutBlockList
    152. 155. Patterns for Moving to the Cloud … and getting the image back?
    153. 156. Blob Storage using Azure Please give me the image http://mri.blob.core.windows.net/images/432532432.mri.jpg
    154. 157. Blob Storage using Azure Render low res-version of the image Zoom in please Render zoomed in portion of image Please show me the image
    155. 158. Patterns for Moving to the Cloud http://livelabs.com/seadragon/
    156. 159. Patterns for Moving to the Cloud What if I want to do relational storage in the cloud?
    157. 160. Patterns for Moving to the Cloud SQL Data Services (SDS)
    158. 161. Current SDS Implementation “ Code Near” Model Code near to home, “long” data access connection
    159. 162. Current SDS Implementation “ Code Far” Model Code far from home, “short” data access connection
    160. 163. Patterns for Moving to the Cloud SDS Moving Forward Using Relational Model
    161. 164. Current SDS Implementation “ Code Near” Model using REST (Astoria)
    162. 165. Current SDS Implementation “ Code Far” Model using Azure application
    163. 166. Taking the MRI Example Forward TDS (Tabular Data Stream) over TCP Code Near Model (using existing SQL Client Library)
    164. 167. Patterns for Moving to the Cloud Takeaways from Pattern #4
    165. 168. Patterns for Moving to the Cloud Local storage is cheap, but management can be difficult
    166. 169. Patterns for Moving to the Cloud Cloud enables elastic storage growth for large files, but consider how user will access
    167. 170. Patterns for Moving to the Cloud SDS future has three ways of exposing – through HTTP (via Azure), through REST (via Astoria), through TDS
    168. 171. Patterns for Moving to the Cloud Pattern 5: Inter-Org Communications
    169. 172. Azure Queues for Web to Worker Communication Queue works between web and worker role, but not outside the organization
    170. 173. Azure Queues for Web to Worker Communication Technically possible to expose Azure queue via REST interface, but… How do you deal with Firewall/NAT for incoming msg?
    171. 174. <ul><li>Intro Service Bus (product slide) </li></ul>
    172. 175. .NET Service Bus for Communication sb://…/myqueue (Outbound bi-directional socket, kept alive in background) Subscriber
    173. 176. .NET Service Bus for Communication sb://…/myqueue (Outbound one-way socket) Sender Message routed appropriately Delivered without the use of any inbound ports
    174. 177. Patterns for Moving to the Cloud One of the other components of .NET Services is workflow
    175. 178. Patterns for Moving to the Cloud Event Driven vs. Hosted
    176. 179. Event Driven Workflow Workflow defined using XOML
    177. 180. Patterns for Moving to the Cloud Does the workflow always have to be initiated from the client?
    178. 181. Hosted Workflow Hosted Workflow
    179. 182. Patterns for Moving to the Cloud Red Prairie Example
    180. 183. Red Prairie Example Orchestrator Service Recall – Lead paint discovered in Item #242522
    181. 184. Red Prairie Example Iterate through list of partners Send recall notice
    182. 185. Red Prairie Example Iterate through list of partners Send recall notice Receive and Log Acknowledgement
    183. 186. Patterns for Moving to the Cloud Takeaways from Pattern #5
    184. 187. Patterns for Moving to the Cloud Azure queues can be exposed through REST, but difficult to receive messages (without polling)
    185. 188. Patterns for Moving to the Cloud Protocol handling within the .NET Service Bus overcomes this
    186. 189. Patterns for Moving to the Cloud (Also provides durable queues as of March CTP)
    187. 190. Patterns for Moving to the Cloud Workflow can handle more complex communications
    188. 191. Patterns for Moving to the Cloud Hosted workflow in the cloud useful for monitoring
    189. 192. Conclusion
    190. 193. Conclusion We covered 5 patterns
    191. 194. Conclusion Pattern 1: Transference
    192. 195. Conclusion Pattern 2: Scale and Multi-Tenancy
    193. 196. Conclusion Pattern 3: Burst Compute
    194. 197. Conclusion Pattern 4: Elastic Storage
    195. 198. Conclusion Pattern 5: Inter-Org Communication
    196. 199. Conclusion These are “starter” patterns - not an exhaustive list, but show some of the different archetypes of applications possible in the cloud today
    197. 200. Conclusion This space is still evolving, but very exciting to see the new patterns that will emerge
    198. 201. ARC-INT01 – Join us for Part 2 of this talk! Larry Clarkin and Wade Wegner Sr. Architect Evangelists, Central Region Microsoft Corporation Showing 25 instances running on Azure!
    199. 202. Resources <ul><li>www.microsoft.com/teched </li></ul><ul><ul><li>Sessions On-Demand & Community </li></ul></ul><ul><li>http://microsoft.com/technet </li></ul><ul><ul><li>Resources for IT Professionals </li></ul></ul><ul><li>http://microsoft.com/msdn </li></ul><ul><ul><li>Resources for Developers </li></ul></ul>www.microsoft.com/learning Microsoft Certification and Training Resources <ul><li>www.microsoft.com/learning </li></ul><ul><li>Microsoft Certification & Training Resources </li></ul>Required Slide Speakers, TechEd 2009 is not producing a DVD. Please announce that attendees can access session recordings at TechEd Online.
    200. 203. Related Content <ul><li>Now – ARCINT01 – Where we are heading now =>> Architecture TLC in Expo Hall </li></ul><ul><li>Today 4.30pm – ARC311 – Software As A Service in the Cloud </li></ul><ul><li>Wednesday 4.30pm – ARC203 – Is the CIOs Head in the Cloud? </li></ul><ul><li>Thursday 8.30am – ARC206 – Claims Based Identity </li></ul>Required Slide Speakers, please list the Breakout Sessions, TLC Interactive Theaters and Labs that are related to your session.
    201. 204. Complete an evaluation on CommNet and enter to win! Required Slide
    202. 205. © 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_address] http://simonguest.com Required Slide
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×