Architectural Patterns For The Cloud Brian H. Prince | Microsoft
Brian H. Prince Principal Cloud Evangelist Microsoft blog
We are all excited about the cloud
The trick is knowing what your systems need, and how the cloud can help.
Only move to the cloud that which can benefit
The core strategy is ‘hybrid’
Take an À la carte approach
Look for pain or distractions
Find Low Hanging Fruit
ASP.NET Design Patterns Authenticates users using forms authentication Authenticate application against SQL Azure using application SQL account Store users and roles in SQL Azure Forms-Based Authentication with SQL Azure Storage Windows Azure Platform Client Browser Web Role ASP.NET Application SQL Azure SSL connection Forms Auth SQL-based membership and role provider Secure TDS Pipe User and Role store
ASP.NET Design Patterns 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 Active Directory Authentication Using Claims Windows Azure Platform Client Browser Web Role ASP.NET Application Identity Provider (ADFSv2) On-Premises AD Windows Identity Foundation Trust Relationship User Store SAML Token Client Browser Internet SSL connection
ASP.NET Design Patterns 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 Claims-Based Authentication using ACS 2.0 Windows Azure Platform Client Browser Web Role ASP.NET Application SSL connection Identity Provider (ADFSv2) On-Premises AD Windows Identity Foundation Trust Relationships SAML Token Partner Identity Provider AppFabric Access Control Service 2.0 Client Browser Internet
Mass storage Cloud On-premises db Application Blob Container Bandwidth CSS/Images/JS HTML Bandwidth CSS Images JS
Data in Motion Cloud On-premises db System QueueQueue SQL Azure FAIL! Msg 1 Msg 2 Msg 3
App Isolation
Shadow IT
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. Accounting Service Cloud App
Consider your data model. On-premises Data SQL Azure Azure Tables App SQL WA Connect App SQL SQL Sync SQL Azure App SQL Azure Azure Tables
Sending? Send to an on-premises broker Use a third party service
Accessing Sensitive Data Windows Azure Connect AppFabric Service Bus
Architecting for Cost
CPU Memory I/O Network
Image: Andy Newman
What size VM to choose? : Cost XSXLLargeMedSmall $0.96/Hour $0.60/Hour $0.48/Hour $3, / Year
XSXLLargeMedSmall What size VM to choose? : Capacity 50% capacity loss 12.5% capacity loss
Role-combining
Scaling and cost
Multi-tenancy
Why Multi-Tenancy? Sharing is good
Don’t have to MT at every tier Client AClient CClient B Windows Azure Web UI Client A Web UI Client B Web UI Client C Survey Svc MT
MT for data
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!
Thank You!
Thank Brian H. Prince | Microsoft