Head in the Cloud, Feet on the Ground A Practical Look at Architectural Challenges and Opportunities in the Cloud Gianpaolo Carraro Platform Architecture Microsoft Corporation SYMP04
Symposium About the ‘puzzle’, fitting the pieces together
Code: How?Architecture: What/When? Business: Why? Session 1 Expanding Applications to the Cloud Session 2 Making Enterprise Grade Cloud Applications Session 3 Cloud or No Cloud, the Laws of Physics Still Apply
1 gallon of fuel -> ¼ ton of ‘freight’ ; 20 miles1 gallon of fuel -> 1 ton of freight ; 436 miles Economy of Scale LowHigh Control HighLow but Can mostly go from A to B Leaves 2x day at 9.12am and 11.14pm but Can goes anywhere there is a road Ready to go anytime
Economy of Scale LowHigh Control HighLow Build vs. Buy
Economy of Scale LowHigh Control HighLow On premises vs. in the cloud
Application runs on-premises Buy my own hardware, and manage my own data center Application runs on-premises Buy my own hardware, and manage my own data center Application runs at a hoster Co-location or Managed servers Application runs at a hoster Co-location or Managed servers Application runs using cloud services “cloud fabric” (elastic, infini-scale) Application runs using cloud services “cloud fabric” (elastic, infini-scale) Economy of Scale LowHigh Control HighLow
“Packaged” Application An application that I buy “off the shelf” and run myself “Packaged” Application An application that I buy “off the shelf” and run myself Self Hosted “Home Built” An application that I develop and run myself Self Hosted “Home Built” An application that I develop and run myself Build vs. Buy Build Buy Hosted “Home Built” An application that I develop myself, but run at a hoster 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 Hosted “Packaged” An application that I buy “off the shelf” and then run at a hoster Cloud Platform An application that I develop myself, but run in the cloud Cloud Platform An application that I develop myself, but run in the cloud “Software as a Service” A hosted application that I buy from a vendor “Software as a Service” A hosted application that I buy from a vendor On premises vs. Cloud On premisesCloud
Hosted “Home Built” An application that I develop myself, but run at a hoster Hosted “Home Built” An application that I develop myself, but run at a hoster Cloud Platform An application that I develop myself, but run in the cloud Cloud Platform An application that I develop myself, but run in the cloud “Packaged” Application An application that I buy “off the shelf” and run myself “Packaged” Application An application that I buy “off the shelf” and run myself Hosted “Packaged” An application that I buy “off the shelf” and then run at a hoster Hosted “Packaged” An application that I buy “off the shelf” and then run at a hoster “Home Built” Application An application that I develop and run myself “Home Built” Application An application that I develop and run myself Build vs. Buy Build Buy On premises vs. Cloud On premisesCloud Maximum Economy of Scale All acceptable options (trade off) Maximum Control “Software as a Service” A hosted application that I buy from a vendor “Software as a Service” A hosted application that I buy from a vendor
“Packaged” Application “Packaged” Application “Home Built” Application “Home Built” Application Hosted “Home Built” Hosted “Home Built” Hosted “Packaged” Hosted “Packaged” “Software as a Service” Cloud Platform Clinical Trial Molecule Research HR System Issue Tracking ERP “Too costly to run this myself, but I’ve made too many customizations” Build vs. Buy Build Buy On premises vs. Cloud On premisesCloud
“Packaged” Application “Packaged” Application “Home Built” Application “Home Built” Application Hosted “Home Built” Hosted “Home Built” Hosted “Packaged” Hosted “Packaged” “Software as a Service” Cloud Platform Clinical Trial Molecule Research HR System Issue Tracking ERP “CRM and are commodity services – They have no customizations, and it’s cheaper for someone else to run these” Build vs. Buy Build Buy On premises vs. Cloud On premisesCloud
“Packaged” Application “Packaged” Application Hosted “Home Built” Hosted “Home Built” Hosted “Packaged” Hosted “Packaged” ERP “Home Built” Application “Home Built” Application “Software as a Service” Cloud Platform Clinical Trial Molecule Research HR System Issue Tracking “I can’t afford to maintain this old HR application written in VB – it’s driving me mad!” “…but due to privacy issues, I prefer keeping my HR data on- premises” Build vs. Buy Build Buy On premises vs. Cloud On premisesCloud
Hosted “Home Built” Hosted “Home Built” Hosted “Packaged” Hosted “Packaged” ERP “Packaged” Application “Packaged” Application “Home Built” Application “Home Built” Application “Software as a Service” Cloud Platform Clinical Trial Molecule Research Issue Tracking HR System “I wish I had access to cheaper compute and storage when I need it” Build vs. Buy Build Buy On premises vs. Cloud On premisesCloud
Hosted “Home Built” Hosted “Home Built” Hosted “Packaged” Hosted “Packaged” ERP “Packaged” Application “Packaged” Application “Home Built” Application “Home Built” Application “Software as a Service” Cloud Platform Clinical Trial Molecule Research Issue Tracking HR System “THIS is where I want to spend my IT resources – I’m going to double down on this application!” Build vs. Buy Build Buy On premises vs. Cloud On premisesCloud
Hosted “Home Built” Hosted “Home Built” Hosted “Packaged” Hosted “Packaged” ERP “Packaged” Application “Packaged” Application “Home Built” Application “Home Built” Application “Software as a Service” Cloud Platform Clinical Trial Molecule Research Issue Tracking HR System Build vs. Buy Build Buy On premises vs. Cloud On premisesCloud
Hosted “Home Built” Hosted “Home Built” Hosted “Packaged” Hosted “Packaged” ERP “Packaged” Application “Packaged” Application “Home Built” Application “Home Built” Application “Software as a Service” Cloud Platform Clinical Trial Molecule Research Issue Tracking HR System Build vs. Buy Build Buy On premises vs. Cloud On premisesCloud “Run On Premises” Control SLA of Applications
Hosted “Home Built” Hosted “Home Built” Hosted “Packaged” Hosted “Packaged” ERP “Packaged” Application “Packaged” Application “Home Built” Application “Home Built” Application “Software as a Service” Cloud Platform Clinical Trial Molecule Research Issue Tracking HR System “Home Built” Control Features of Applications
“Packaged” Application “Packaged” Application “Home Built” Application “Home Built” Application Clinical Trial Molecule Research HR System CRM ERP Hosted “Home Built” Hosted “Packaged” “Software as a Service” Cloud Platform “Crossing corporate boundaries!”
Identity Challenges Access Control AuthN, SSO, AuthZ Identity Lifecycle Identity Portability Interoperability
Identity Solution Federated ID Claim based Access Control accesscontrol.windows.net Geneva Fx Geneva Server Cardspace
Monitoring and Management Challenges SLA Monitoring Halting/Pausing/Throttling… Trigger action e.g. Backup
Management Solution Programmatic access to Health Model Synthetic Tx Management APIs Firewall friendly protocols SCOM MMC Powershell
Application Integration UI Integration Process Integration Data Integration servicebus.windows.net Oslo SSS Azure Storage Synch framework
(Session 2) Making Enterprise Grade Cloud Applications (Session 2) Making Enterprise Grade Cloud Applications
offered “as a service” “on premises” Cloud as a deployment option
powered by… server “cloud fabric” Cloud as an underlying platform
server “cloud fabric” “as a service” “on premises”
server “cloud fabric” “as a service” “on premises” Customer Choice
server “cloud fabric” “as a service” “on premises” Platform Choice
server “cloud fabric” “as a service” “on premises” Platform Choice
“powered by servers” “powered by cloud” 1 + Economy of Scale: Reduce CAPEX Pay as you go Capacity Planning Elastic “Infiniscale” Control: “Own” the SLA “Own” the data “Own” compliance
Server ‘Hosted Server’ Cloud Fabric
Two ‘instantiations’ of the cloud Hosted version of what you have been using so far Requires few changes if any to what you know and do New capabilities New cost structure Requires embracing a specific app model Windows Server ‘Hosted Server’ Compute Fabric SQL Server ‘Hosted SQL Server’ Storage Fabric … … … … … … What you have been using so far ………
Not a replacement Ask yourself: what ‘tool’ do I need?
Thread A Thread B Shared Count Count++ GetCount() 10 ? 13? Exception? 10 GetCount() 11 GetCount() Count++ GetCount() Count++ 11 Count++ 12
Thread A Thread B Shared Count [Begin Tx] GetCount() 12 GetCount() 13 Count Count++ [Commit Tx] wait until lock is released
Thread A Thread B Shared Count [Begin Tx] GetCount() Count wait until lock released 12 GetCount() Count [Commit Tx] PRO: Consistency CON: Availability (wait on lock)
Thread A Thread B Shared Count GetCount() 12 GetCount() 12 Q.PutMsg(“add”) 13 GetCount() Count Q.PutMsg(“add”) Queue Worker Q.GetMsg() GetCount() Count Q.GetMsg()
Internet Storage Tables LB Blobs Worker Service Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, WCF) Web Site (ASPX, WCF) Queue Windows Azure Datacenter
server “cloud fabric” “as a service” “on premises” Customer Choice
The “Cloud” employees Clinical trial software Firewall Big Pharma “on premise” Management IT Directory STS supercloudysoftware.com SDS Azure Windows Azure accesscontrol (Identity) STS
SDS Windows Azure The “Cloud” employees Clinical trial software Firewall Big Pharma “on premises” Management IT Directory STS accesscontrol (Identity) STS Employees access software using the same identity (leverage existing AuthN/AuthZ policies) through accesscontrol.windows.net New Molecule Research goes to the cloud -Elastic compute -“Infini-store”
The “Cloud” employees Clinical trial software Clinical trial patients Firewall Big Pharma “on premise” Management IT Directory STS Windows Azure Internet Service Bus (Connectivity) Internet Service Bus (Identity) STSRelay
The “Cloud” employees Clinical trial software Clinical trial patients Firewall ME “on premises” Cloud StorageSTSRelay Cloud Compute Management IT Directory Windows Azure cloudysoftware.com Hosted Hoster STS
The “Cloud” employees Clinical trial software (big pharma data in purple) Clinical trial patients Firewall Internet Service Bus (Connectivity) ME “on premises” Cloud Storage (new molecule research in purple) Internet Service Bus (Identity) STSRelay Cloud Compute Management IT Directory Windows Strata cloudysoftware.com Hosted Hoster STS Everybody has a relationship with “the cloud”
Similar to utility companies that: produce average load buy/sell variance from average load” time Watt Internal production Actual consumption Buy Power from Grid Sell Power to Grid
ConsistencyAvailability tolerance to network Partition Dr. Eric A. Brewer, UC Berkeley
Enterprises ISVs
Code: How?Architecture: What/When? Business: Why? Session 1 Expanding Applications to the Cloud Session 2 Making Enterprise Grade Cloud Applications Session 3 Cloud or No Cloud, the Laws of Physics Still Apply
Please fill out your evaluation for this session at: This session will be available as a recording at:
© 2008 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.