720 likes | 872 Views
SYMP04. PDC Symposium. 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. So Far at PDC. 4 Keynotes, 120 sessions, 100s demos, 3000 slides
E N D
SYMP04 PDC Symposium 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
So Far at PDC • 4 Keynotes, 120 sessions, 100s demos, 3000 slides • You have learned about C#, F#, Strata, Oslo, Windows 7, Surface… • What is left to talk about?
End to end view • Symposium • About the ‘puzzle’, fitting the pieces together PDC Sessions Mostly about the ‘individual pieces’
Symposium Agenda:A Journey through multiple perspectives Business: Why? Cloud or No Cloud, the Laws of Physics Still Apply Expanding Applications to the Cloud Making Enterprise Grade Cloud Applications Session 3 Session 1 Session 2 Architecture: What/When? Code: How?
Expanding Applications to the Cloud • Part I: Enterprise IT View (consumer view) • Part II: ISV View (supplier view) • Q&A
Quiz: Which one is better? 1 gallon of fuel -> ¼ ton of ‘freight’ ; 20 miles 1 gallon of fuel -> 1 ton of freight ; 436 miles but Can goes anywhere there is a road Ready to go anytime but Can mostly go from A to B Leaves 2x day at 9.12am and 11.14pm Control High Low Economy of Scale Low High
This is not new… Build vs. Buy Control High Low Economy of Scale Low High
This is new… On premises vs. in the cloud Control High Low Economy of Scale Low High
On premises vs. in the cloud Application runs on-premises Buy my own hardware, and manage my own data center Application runs at a hoster Co-locationor Managed servers Application runs using cloud services “cloud fabric” (elastic, infini-scale) Control High Low Economy of Scale Low High
“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 “Software as a Service” A hosted application that I buy from a vendor Buy Build vs. Buy Self Hosted “Home Built” An application that I develop and run myself 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 Build On premises vs. Cloud Cloud On premises
All acceptable options (trade off) “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 “Software as a Service” A hosted application that I buy from a vendor Buy Maximum Control Build vs. Buy “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 Cloud Platform An application that I develop myself, but run in the cloud Maximum Economy of Scale Build On premises vs. Cloud Cloud On premises
“MassiveEnterprise” Example “Packaged” Application Hosted “Packaged” “Software as a Service” Buy ERP “Too costly to run this myself, but I’ve made too many customizations” Issue Tracking Email Build vs. Buy “Home Built” Application Hosted “Home Built” Cloud Platform HR System Molecule Research Build Clinical Trial On premises vs. Cloud Cloud On premises
“MassiveEnterprise” Example “Packaged” Application Hosted “Packaged” “Software as a Service” Buy ERP Issue Tracking “CRM and Email are commodity services – They have no customizations, and it’s cheaper for someone else to run these” Email Build vs. Buy “Home Built” Application Hosted “Home Built” Cloud Platform HR System Molecule Research Build Clinical Trial On premises vs. Cloud Cloud On premises
“MassiveEnterprise” Example “Packaged” Application Hosted “Packaged” “Software as a Service” Buy ERP Issue Tracking Email Build vs. Buy “Home Built” Application Hosted “Home Built” Cloud Platform “I can’t afford to maintain this old HR application written in VB – it’s driving me mad!” HR System “…but due to privacy issues, I prefer keeping my HR data on-premises” Molecule Research Build Clinical Trial On premises vs. Cloud Cloud On premises
“MassiveEnterprise” Example “Packaged” Application Hosted “Packaged” “Software as a Service” Buy ERP Issue Tracking Email HR System Build vs. Buy “Home Built” Application Hosted “Home Built” Cloud Platform “I wish I had access to cheaper compute and storage when I need it” Molecule Research Build Clinical Trial On premises vs. Cloud Cloud On premises
“MassiveEnterprise” Example “Packaged” Application Hosted “Packaged” “Software as a Service” Buy ERP Issue Tracking Email HR System Build vs. Buy “Home Built” Application Hosted “Home Built” Cloud Platform “THIS is where I want to spend my IT resources – I’m going to double down on this application!” Molecule Research Build Clinical Trial On premises vs. Cloud Cloud On premises
“MassiveEnterprise” v. Next “Packaged” Application Hosted “Packaged” “Software as a Service” Buy ERP Issue Tracking Email HR System Build vs. Buy “Home Built” Application Hosted “Home Built” Cloud Platform Molecule Research Build Clinical Trial On premises vs. Cloud Cloud On premises
“MassiveEnterprise” v. Next “Packaged” Application Hosted “Packaged” “Software as a Service” Buy ERP Issue Tracking Email HR System “Run On Premises” Control SLA of Applications Build vs. Buy “Home Built” Application Hosted “Home Built” Cloud Platform Molecule Research Build Clinical Trial On premises vs. Cloud Cloud On premises
“MassiveEnterprise” v. Next “Packaged” Application Hosted “Packaged” “Software as a Service” ERP Issue Tracking “Home Built” Control Features of Applications Email HR System “Home Built” Application Hosted “Home Built” Cloud Platform Molecule Research Clinical Trial
“MassiveEnterprise” Example “Packaged” Application Hosted “Packaged” “Software as a Service” ERP CRM “Crossing corporate boundaries!” Email “Home Built” Application Hosted “Home Built” Cloud Platform HR System Molecule Research Clinical Trial
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
Part I Takeaway • Expanding to cloud is good • “Lowering transloading costs” • Identity • Management • Application Integration (Session 2) Making Enterprise Grade Cloud Applications
Expanding Applications to the Cloud • Part I: Enterprise IT View (consumer view) • Part II: ISV View (supplier view)
SuperCloudySoftware.com • Cloud as deployment option “as a service” “on premises” offered Cloud as a deployment option
SuperCloudySoftware.com • Cloud as a platform Cloud as an underlying platform powered by… server “cloud fabric”
SuperCloudySoftware.com “as a service” “on premises” server “cloud fabric”
SuperCloudySoftware.com “as a service” “on premises” Customer Choice server “cloud fabric”
SuperCloudySoftware.com “as a service” “on premises” Platform Choice server “cloud fabric”
2 distinct choices • Of course… as with enterprise not either / or
SuperCloudySoftware.com “as a service” “on premises” Platform Choice server “cloud fabric”
“Powered by…” 1 “powered by servers” “powered by cloud” + Control: “Own” the SLA “Own” the data “Own” compliance Economy of Scale: Reduce CAPEX Pay as you go Capacity Planning Elastic “Infiniscale”
Continuum Server ‘Hosted Server’ Cloud Fabric
Continuum Two ‘instantiations’ of the cloud Windows Server ‘Hosted Server’ Compute Fabric SQL Server ‘Hosted SQL Server’ Storage Fabric … … … … … … • What you have been using so far • 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
Remember Not a replacement Ask yourself:what ‘tool’ do I need?
Simple concurrency scenario Thread A • ThreadB • SharedCount GetCount() 10 10 Count++ 11 11 GetCount() 11 12 Count++ 12 GetCount() 12 GetCount() 12 Count++ Count++ 13 13? ? Exception?
Example: SuperCloudyVote • Option 1: Optimize for consistency (a.k.a. locking) Thread A • ThreadB • SharedCount 12 [Begin Tx] GetCount() 12 GetCount() Count++ wait until lock is released [Commit Tx] 13 13 Count++ 14
Example: SuperCloudyVote • Option 1: Optimize for consistency (a.k.a. locking) Thread A • ThreadB • SharedCount 12 [Begin Tx] GetCount() 12 GetCount() PRO: Consistency CON: Availability (wait on lock) Count++ wait until lock released [Commit Tx] 13 13 Count++ 14
Example: SuperCloudyVote • Option 1: Optimize for availability (a.k.a. queueing) Thread A • ThreadB • SharedCount • Worker • Queue GetCount() 12 12 GetCount() 12 Q.PutMsg(“add”) Q.PutMsg(“add”) Q.GetMsg() GetCount() 12 13 Count++ 13 Q.GetMsg() GetCount() 13 14 Count++ 14
Service ArchitecturesWeb Site + Worker Internet Tables Windows Azure Datacenter LB Web Site (ASPX, ASMX, WCF) Storage Worker Service Web Site (ASPX, ASMX, WCF) Worker Service Web Site (ASPX, WCF) Worker Service Queue Blobs
Think about a "real" voting systemCast a vote - results days laterEventual consistency - high availability