A Practical Look at Architectural Challenges and Opportunities in the Cloud Anna Liu Manager – Emerging Technologies Microsoft Australia
May 13, 2015
A Practical Look at Architectural Challenges and Opportunities in the Cloud
Anna LiuManager – Emerging TechnologiesMicrosoft Australia
Code: How?Architecture: What/When?
Business: Why?
1 gallon of fuel -> ¼ ton of ‘freight’ ; 20 miles 1 gallon of fuel -> 1 ton of freight ; 436 miles
Economy of ScaleLow High
ControlHigh Low
butCan mostly go from A to BLeaves 2x day at 9.12am and 11.14pm
butCan goes anywhere there is a roadReady to go anytime
Economy of ScaleLow High
ControlHigh Low
Build vs. Buy
Economy of ScaleLow High
ControlHigh Low
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-locationor
Managed servers
Application runs at a hoster
Co-locationor
Managed servers
Application runs using cloud
services
“cloud fabric”(elastic,
infini-scale)
Application runs using cloud
services
“cloud fabric”(elastic,
infini-scale)
Economy of ScaleLow High
ControlHigh Low
“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. CloudOn premises Cloud
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. CloudOn premises Cloud
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”
“Software as a Service”
Cloud PlatformCloud Platform
Clinical TrialClinical Trial
Molecule ResearchMolecule Research
HR SystemHR System
EmailEmail
Issue TrackingIssue Tracking
ERPERP
“Too costly to run this myself, but I’ve made too many customizations”
“Too costly to run this myself, but I’ve made too many customizations”
Build
vs.
Buy
Build
Buy
On premises vs. CloudOn premises Cloud
“Packaged”Application“Packaged”Application
“Home Built”Application
“Home Built”Application
Hosted “Home Built”
Hosted “Home Built”
Hosted “Packaged”
Hosted “Packaged”
“Software as a Service”
“Software as a Service”
Cloud PlatformCloud Platform
Clinical TrialClinical Trial
Molecule ResearchMolecule Research
HR SystemHR System
EmailEmail
Issue TrackingIssue Tracking
ERPERP
“CRM and Email are commodity services – They have no customizations, and it’s cheaper for someone else to run these”
“CRM and Email 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. CloudOn premises Cloud
“Packaged”Application“Packaged”Application
Hosted “Home Built”
Hosted “Home Built”
Hosted “Packaged”
Hosted “Packaged”
ERPERP
“Home Built”Application
“Home Built”Application
“Software as a Service”
“Software as a Service”
Cloud PlatformCloud Platform
Clinical TrialClinical Trial
Molecule ResearchMolecule Research
HR SystemHR System
EmailEmail
Issue TrackingIssue Tracking
“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 privacy issues, I prefer keeping my HR data on-premises”
“…but due to privacy issues, I prefer keeping my HR data on-premises”
Build
vs.
Buy
Build
Buy
On premises vs. CloudOn premises Cloud
Hosted “Home Built”
Hosted “Home Built”
Hosted “Packaged”
Hosted “Packaged”
ERPERP
“Packaged”Application“Packaged”Application
“Home Built”Application
“Home Built”Application
“Software as a Service”
“Software as a Service”
Cloud PlatformCloud Platform
Clinical TrialClinical Trial
Molecule ResearchMolecule Research
EmailEmail
Issue TrackingIssue Tracking
HR SystemHR System
“I wish I had access to cheaper compute and storage when I need it”
“I wish I had access to cheaper compute and storage when I need it”
Build
vs.
Buy
Build
Buy
On premises vs. CloudOn premises Cloud
Hosted “Home Built”
Hosted “Home Built”
Hosted “Packaged”
Hosted “Packaged”
ERPERP
“Packaged”Application“Packaged”Application
“Home Built”Application
“Home Built”Application
“Software as a Service”
“Software as a Service”
Cloud PlatformCloud Platform
Clinical TrialClinical Trial
Molecule ResearchMolecule Research
EmailEmail
Issue TrackingIssue Tracking
HR SystemHR System
“THIS is where I want to spend my IT resources – I’m going to double down on this application!”
“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. CloudOn premises Cloud
Hosted “Home Built”
Hosted “Home Built”
Hosted “Packaged”
Hosted “Packaged”
ERPERP
“Packaged”Application“Packaged”Application
“Home Built”Application
“Home Built”Application
“Software as a Service”
“Software as a Service”
Cloud PlatformCloud Platform
Clinical TrialClinical Trial
Molecule ResearchMolecule Research
EmailEmail
Issue TrackingIssue Tracking
HR SystemHR System
Build
vs.
Buy
Build
Buy
On premises vs. CloudOn premises Cloud
Hosted “Home Built”
Hosted “Home Built”
Hosted “Packaged”
Hosted “Packaged”
ERPERP
“Packaged”Application“Packaged”Application
“Home Built”Application
“Home Built”Application
“Software as a Service”
“Software as a Service”
Cloud PlatformCloud Platform
Clinical TrialClinical Trial
Molecule ResearchMolecule Research
EmailEmail
Issue TrackingIssue Tracking
HR SystemHR System
Build
vs.
Buy
Build
Buy
On premises vs. CloudOn premises Cloud
“Run On Premises”Control SLA of Applications
Hosted “Home Built”
Hosted “Home Built”
Hosted “Packaged”
Hosted “Packaged”
ERPERP
“Packaged”Application“Packaged”Application
“Home Built”Application
“Home Built”Application
“Software as a Service”
“Software as a Service”
Cloud PlatformCloud Platform
Clinical TrialClinical Trial
Molecule ResearchMolecule Research
EmailEmail
Issue TrackingIssue Tracking
HR SystemHR System“Home Built”
Control Features of Applications
“Packaged”Application“Packaged”Application
“Home Built”Application
“Home Built”Application
Clinical TrialClinical Trial
Molecule ResearchMolecule Research
HR SystemHR System
EmailEmail
CRMCRM
ERPERP
Hosted “Home Built”
Hosted “Packaged”
“Software as a Service”
Cloud Platform
“Crossing corporate boundaries!”“Crossing corporate boundaries!”
Identity Challenges
Access ControlAuthN, SSO, AuthZ
Identity LifecycleIdentity PortabilityInteroperability
Identity Solution
Federated IDClaim based Access Control
accesscontrol.windows.netGeneva FxGeneva ServerCardspace
Monitoring and Management Challenges
SLA MonitoringHalting/Pausing/Throttling…Trigger action
e.g. Backup
Management Solution
Programmatic access to Health ModelSynthetic TxManagement APIsFirewall friendly protocols
SCOMMMCPowershell
Application Integration
UI IntegrationProcess IntegrationData Integration
servicebus.windows.netOsloSSSAzure StorageSynch framework
offered
“as a service”“on premises”
Cloud as a deployment option
Cloud as a deployment option
powered by…
server “cloud fabric”
Cloud as an underlying platform
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 CAPEXPay as you go
Capacity PlanningElastic
“Infiniscale”
Control:“Own” the SLA“Own” the data
“Own” compliance
ServerServer ‘Hosted Server’‘Hosted Server’ Cloud FabricCloud 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 ServerWindows Server ‘Hosted Server’‘Hosted Server’ Compute FabricCompute Fabric
SQL ServerSQL Server ‘Hosted SQL Server’
‘Hosted SQL Server’ Storage FabricStorage Fabric
…… …… ……
•What you have been using so far
… … …
Not a replacementAsk yourself: what ‘tool’ do I
need?
Thread A
ThreadB
SharedCount
Count++
GetCount()10
? 13?Exception?
10
GetCount()11
GetCount()
12
13Count++
GetCount()12
11Count++ 11
Count++12
12
Thread A
ThreadB
SharedCount
[Begin Tx] GetCount() 1212
GetCount()
13Count++
14
13
Count++
[Commit Tx] wait until lock is released
Thread A
ThreadB
SharedCount
[Begin Tx] GetCount()
Count++
12
13wait until lock released
12GetCount()
Count++
13
14
[Commit Tx]
PRO: ConsistencyCON: Availability (wait on lock)
Thread A
ThreadB
SharedCount
GetCount()1212
GetCount()
12
Q.PutMsg(“add”)
13
GetCount()
Count++
1213
Q.PutMsg(“add”)
QueueQueueWorkerWorker
Q.GetMsg()
GetCount()
Count++
1314
14
Q.GetMsg()
InternetInternet
StorageStorageTablesTables
LBLB
BlobsBlobs
Worker ServiceWorker Service
Worker ServiceWorker Service
Worker ServiceWorker 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)
QueueQueue
Windows Azure Datacenter
server “cloud fabric”
“as a service”“on premises”
Customer Choice
The “Cloud”The “Cloud”
employees
Clinical trialsoftware
Firewall
Big Pharma “on premise”
Management
IT
DirectorySTS
supercloudysoftware.com
SDS
Azure
Windows Azure
accesscontrol(Identity)
STS
SDS
Windows Azure
Windows Azure
The “Cloud”The “Cloud”
employees
Clinical trialsoftware
Firewall
Big Pharma “on premises”
Management
IT
DirectorySTS
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”The “Cloud”
employees
Clinical trialsoftware
Clinical trial patients
Firewall
Big Pharma “on premise”
Management
IT
DirectorySTS
Windows Azure
InternetService Bus
(Connectivity)
InternetService Bus(Identity)
STSRelay
The “Cloud”The “Cloud”
employees
Clinical trialsoftware
Clinical trial patients
Firewall
ME “on premises”
Cloud StorageSTSRelay Cloud Compute
Management
IT
Directory
Windows Azure
cloudysoftware.com
Hosted ERP @ Hoster
STS
The “Cloud”
employees
Clinical trialsoftware
(big pharma data in purple)
Clinical trial patients
Firewall
InternetService Bus
(Connectivity)
ME “on premises”
Cloud Storage
(new molecule research in purple)
InternetService Bus(Identity)
STSRelay Cloud Compute
Management
IT
Directory
Windows Strata
cloudysoftware.com
Hosted ERP @ 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 productionActual consumption
Buy Power from Grid
Sell Power to Grid
Consistency Availability
tolerance to networkPartition
Dr. Eric A. Brewer, UC Berkeley
Enterprises ISVs
© 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.