Transcript Document

Architectural Patterns For
The Cloud
Brian H. Prince | Microsoft
Brian H. Prince
Principal Cloud Evangelist
Microsoft
blog.
www.brianHprince.com
twitter.
@brianHprince
email.
[email protected]
We are all excited about the cloud
The trick is knowing what your systems need,
and how the cloud can help.
The core strategy is ‘hybrid’
Take an
À la carte
approach
Look
for
pain
or
distractions
Find Low Hanging Fruit
ASP.NET Design Patterns
Active Directory Authentication Using Claims
Internet
On-Premises
Windows Azure Platform
SSL
connection
Client
Browser
Client Browser
ASP.NET
Application
SAML
Token
Identity
Provider
(ADFSv2)
AD
•
•
•
•
Web Role
User
Store
Windows Identity
Foundation
Trust
Relationship
Federation trust established between Identity Provider and Application
User credentials provided as SAML 2.0 or WS-* claims
Claims communicated to WIF-based application using SSL
Support for clients on the Internet
ASP.NET Design Patterns
Claims-Based Authentication using ACS 2.0
On-Premises
Internet
SSL connection
Client Browser
Client Browser
AD
Identity
Provider
(ADFSv2)
Windows Azure Platform
Web Role
ASP.NET Application
SAML
Token
Windows Identity
Foundation
Trust
Relationships
AppFabric Access
Control Service 2.0
Partner
Identity
Provider
•
•
•
•
Federation trust established between Identity Providers, ACS 2.0 and WIF-based app
Browser requests token from the appropriate Identity Provider
Claims communicated to WIF-based application using SSL
Support for clients on the Internet
Mass storage
http://img.blob.core.windows.net/images/brian.jpg
http://css.blob.core.windows.net/main.css
http://js.blob.core.windows.net/animations.js
CSS
Cloud
Images
Bandwidth
JS
Blob Container
On-premises
http://www.myco.com/images/brian.jpg
CSS/Images/JS
Bandwidth
HTML
db
Application
Cloud
Data in Motion
SQL Azure
On-premises
Queue
db
System
FAIL!
1
2
1011011101110111
Msg 3
When moving pieces to the cloud,
you need to leverage services.
Decompose your systems into pieces.
This leads to flexibility.
How do things connect?
Plan on service facades.
Cloud
Accounting
Service
Accounting
App
App
App
WA Connect
SQL
Azure
SQL
Azure
Azure
Tables
SQL Sync
App
SQL
• On-premises
Data
SQL
• SQL Azure
• Azure Tables
Email Sending?
On-Premise
Windows Azure
• Send to an on-premises broker
• Use a third party service
Sync App
Web Role
Emails
Email
Broker
Async App
Web Role
SMTP
Server
Accessing Sensitive Data
• Windows Azure Connect
• AppFabric Service Bus
Architecting for Cost
Optimization Approach
CPU
Memory
I/O
Network
Image: Andy Newman
What size VM to choose? : Cost
XS
Small
Med
Large
XL
$0.96/Hour
$0.48/Hour
$3,153.60 / Year
$0.60/Hour
$0.48/Hour
What size VM to choose? : Capacity
XS
Small
Med
Large
XL
50% capacity loss
12.5% capacity loss
Role-combining
Main
webRole
Single
Web
Main web
Mgmt Web
Mgmt Web
Web Services
Web Services
Queue-driven tasks
Q-driven
tasks
Mgmt tasks
Background
tasks
Background tasks
Mgmt tasks
Scaling and cost
Chart Title
90%
4
80%
70%
3
60%
50%
2
40%
30%
1
20%
10%
0%
0
0:00:00 0:15:00 0:30:00 0:45:00 1:00:00 1:15:00 1:30:00 1:45:00 2:00:00
CPU
Instances
Multi-tenancy
Why Multi-Tenancy?
Sharing is good
Windows Azure
Don’t have to MT at every tier
Client A
Client B
Client C
Web UI
Web UI
Web UI
Client A
Client B
Client C
Survey Svc
MT
Separate DB
Separate Schemas
Shared Schema
Final Considerations
DB Extension: Preset Fields
DB Extension: Custom Columns
DB Extension: Name-Value Pairs
Get Windows Azure for Free!
http://aka.ms/AzureForFree
Thank You!
Thank you!
@brianhprince
www.brianHprince.com
http://www.linkedin.com/in/brianhprince
Brian H. Prince | Microsoft