TechNet Events Presents:Real World Azureclint edmonson | architect evangelist | www.notsotrivial.netshawn travers | it pro evangelist | blogs.technet.com/shawnt
This is Jim
Cloud Computing
Jim has many questions about cloud computing
Cloud Computing
The more he reads, the more confused he gets
Cloud Computing
“What is Cloud Computing?”
Cloud Computing
“What can I use the Cloud for?”
Cloud Computing
“What is Microsoft’s roadmap in this space?”
Cloud Computing
“Is this going to eat my job?”
Cloud Computing
“Am I prepared for when my boss asks me about this?”
Cloud Computing
Session Objectives
Session Objectives
Define Cloud Computing
Highlight the implementation of a Real World Azure scenario
Break down the parts
Defining Cloud Computing
Defining Cloud Computing
Jim has heard all the buzzwords
Defining Cloud Computing
Service Oriented Architecture
Defining Cloud Computing
Rich Internet Applications
Defining Cloud Computing
Software as a Service
Defining Cloud Computing
Software + Services
Defining Cloud Computing
Are any of these cloud computing?
Defining Cloud Computing
No. They are Styles of applications.
Defining Cloud Computing
These styles can work in the cloud, but they are not cloud
computing
Defining Cloud Computing
Where do your applications “live”?
Defining Cloud Computing
On PremisesHostedCloud
Vendor’s Problem
“Packaged”Application
An application that I buy “off the
shelf” and run myself
“Home Built”Application
An application that I develop and
run myself
Heads in the Cloud, Feet on the GroundBu
ild v
s. B
uyBu
ildBu
y
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
“Home Built”using cloud
An application that I develop myself, that is hosted using
cloud platform
“Packaged”using cloud
An application that I buy “off the
shelf”, that is hosted using
cloud platform
“Software as a Service”
A hosted application that I
buy from a vendor
“Platform as a Service”
A vendor hosted development and
runtime environment
On Premise Hoster Cloud Vendor
“Packaged”Application
“Home Built”Application
Big Pharmaceutical Example
Hosted “Home Built”
Hosted “Packaged”
“Home Built”using cloud
“Packaged”using cloud
“Software as a Service”
“Platform as a Service”
Clinical Trial
Molecule Research
HR System
CRM
ERP
“Too costly to run this myself, but I’ve made too many customizations”
Build
vs.
Buy
Build
Buy
On Premise Hoster Cloud Vendor
“Packaged”Application
“Home Built”Application
Big Pharmaceutical Example
Hosted “Home Built”
Hosted “Packaged”
“Home Built”using cloud
“Packaged”using cloud
“Software as a Service”
“Platform as a Service”
Clinical Trial
Molecule Research
HR System
CRM
ERP
“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 Premise Hoster Cloud Vendor
“Packaged”Application
“Home Built”Application
Big Pharmaceutical Example
Hosted “Home Built”
Hosted “Packaged”
“Home Built”using cloud
“Packaged”using cloud
“Software as a Service”
“Platform as a Service”
Clinical Trial
Molecule Research
HR System
CRM
ERP
“I can’t afford to maintain this old HR application written in VB – it’s driving me mad!”
“…but due to regulatory issues, I cannot store my HR data off-premise”
Build
vs.
Buy
Build
Buy
On Premise Hoster Cloud Vendor
“Packaged”Application
“Home Built”Application
Big Pharmaceutical Example
Hosted “Home Built”
Hosted “Packaged”
“Home Built”using cloud
“Packaged”using cloud
“Software as a Service”
“Platform as a Service”
Clinical Trial
Molecule Research
CRM
ERP
HR System
“I wish I had access to cheaper compute and storage when I need it”
Build
vs.
Buy
Build
Buy
On Premise Hoster Cloud Vendor
“Packaged”Application
“Home Built”Application
Big Pharmaceutical Example
Hosted “Home Built”
Hosted “Packaged”
“Home Built”using cloud
“Packaged”using cloud
“Software as a Service”
“Platform as a Service”
Clinical Trial
Molecule Research
CRM
ERP
HR System
Build
vs.
Buy
Build
Buy
On Premise Hoster Cloud Vendor
“THIS is where I want to spend my IT resources – I’m going to double down on this application!”
Challenges and Concerns with Cloud Computing
Security
“Packaged”Application
“Home Built”Application
Hosted “Home Built”
Hosted “Packaged”
“Home Built”using cloud
“Packaged”using cloud
“Software as a Service”
“Platform as a Service”
Clinical Trial
Molecule Research
CRM
ERP
HR System
On Premise Hoster Cloud Vendor
Build
vs.
Buy
Build
Buy
Identity and AuthN
Scalability
Regulations and other legal issues
Software + Services is the answer
Warning – this session contains information about Microsoft Technologies that are in the CTP (pre-Beta) stages. Specifics of the technology may change before final release.
Hey!
Why are you
showing me CTP stuff?
Feedback.
We are here to help. Send us your questions, doubts, concerns, challenges, adoration, regrets, denials, and alibis.
We will start a discussion and help you out.
RTC makes it easy to ship updates and new features.
Windows Azure Platform Roadmap
Additional Geos
Enhanced compliance
CY 2010
Commercial launch
Geo location
Q4 2009
?
Future
Windows Azure Platform
Microsoft Cloud Services
Applications
Windows Azure Platform
Compute: Virtualized compute environment based on Windows Server
Storage: Durable, scalable, & available storage
Management: Automated, model-driven management of the service
Database: Relational processing for structured/unstructured data
Service Bus: General purpose application bus
Access Control: Rules-driven, claims-based access
control
What does an Operating System do?
DISK CPU GPUMemor
y
Hardware Abstraction Layer
Task Scheduler
App1 App2 App3 App4
Management / Security / etc.
Azure does this for the cloud
Server 1
Server 2
Server 3
Server 3,500
Azure Fabric
Azure Fabric Controller
App1 App2 App3 App4
APIs / .NET ACS / etc.
How many servers do you support?
Defining Cloud Computing
“What is Microsoft doing in Cloud Computing?”
Defining Cloud Computing
3 x Critical Concepts
Defining Cloud Computing
Roles
Web RoleWorker Role
Defining Cloud Computing
Storage
Table, Blob, Relational
Defining Cloud Computing
Messaging
Queues, .NET Service Bus
Patterns for Cloud Computing
Using the Cloud for Scale
“Isn’t the cloud good for applications that need to scale dynamically?”
Patterns for Cloud Computing
For example, tax applications
Patterns for Cloud Computing
“How does this work?”
Patterns for Cloud Computing
Let’s do some white boarding for Jim…
Patterns for Cloud Computing
Using the Cloud for Scale
Web TierBrowserRequest
Backend Tier
Database
Response
“Wow! What a great site!”
Using the Cloud for Scale
Web TierBackend
TierDataba
seBrowser
Browser
Browser
Browser
Browser
“Server Busy”
Using the Cloud for Scale
Web TierBackend
TierDataba
seBrowser
“Timeout”
Browser
Browser
Browser
Browser
How would Jim do this today on premises?
Using the Cloud for Scale
Web Tier
Backend Tier
Database
Browser
Browser
Browser
Browser
Browser
Web Tier
Web Tier
N L B
How would Jim do this today on premises?
Using the Cloud for Scale
Database
Browser
Browser
Browser
Browser
Browser
Web Tier Backend Tier
Backend Tier
Backend Tier
N L B
How would Jim do this today on premises?
Using the Cloud for Scale
Database
Browser
Browser
Browser
Browser
Browser
Backend Tier
Backend Tier
Backend Tier
N L B
Web Tier
Web Tier
Web Tier
N L B
How would Jim do this today on premises?
Using the Cloud for Scale
Browser
Browser
Browser
Browser
Browser
Backend Tier
Backend Tier
Backend Tier
N L B
Database
p1 p2 p3
Web Tier
Web Tier
Web Tier
N L B
How would Jim do this today on premises?
Not without consequences...
Using the Cloud for Scale
Browser
Browser
Browser
Browser
Browser
Backend Tier
Backend Tier
Backend Tier
N L B
Database
p1 p2 p3
Web Tier
Web Tier
Web Tier
N L B
“That took a lot of work - and money!”
How would Jim do this today on premises?
Using the Cloud for Scale
Browser Backend Tier
Backend Tier
Backend Tier
N L B
Database
p1 p2 p3
Web Tier
Web Tier
Web Tier
N L B
“Not so great now…”
“Hmmm... Most of this stuff is sitting idle...”
“That took a lot of work - and money!”
How would Jim do this today on premises?
Using the Cloud for Scale
Usage
Jan Apr Jul Oct
Datacenter peak load
Idle time
Lost Business
How can Windows Azure help?
#1 - Using the Cloud for Scale
Web RoleBrowserRequest
Worker Role
Azure Storag
eResponse
“Wow! What a great site!”
Using the Cloud for Scale
Web RoleWorker
Role
AzureStorag
e
Browser
“Server Busy”
Browser
Browser
Browser
Browser
Using the Cloud for Scale
Web Role
Worker Role
AzureStorag
e
Browser
Browser
Browser
Browser
Browser
Web Role
Web Role
N L B
You don’t see this bit
Using the Cloud for Scale
Web Role
AzureStorag
e
Browser
Browser
Browser
Browser
Browser
Web Role
Web Role
N L B
Worker Role
Worker Role
Worker Role
N L B
Using the Cloud for Scale
Web Role
AzureStorag
e
Browser
Browser
Browser
Browser
Browser
Web Role
Web Role
N L B
Worker Role
Worker Role
Worker Role
N L B
p1 p2 p3
What’s going on behind the scenes?
Windows Azure
FabricController
Web Portal(API)
LB
LB
DNS
YourService
LB
LB
DNS
Service Deployment
YourService
FabricController
Web Portal(API)
Service ModelServiceService
DNSconfig
LB
LB
DNS
Service Scaling
YourService
FabricController
Web Portal(API)
Service
Service
Service
Model
Service
Service
ServiceService
Service
LB
LB
DNS
Service Monitoring & Recovery
YourService
FabricController
Web Portal(API)
Service
Service
Service
Model !
Service
Guest Partition
Enterprise baseVHD
3
Physical Server HardwareCPU, memory, disk, and network
Maintenance OS1
Hypervisor
Host Partition
Server CoreVHD
Host DifferencingVHD
2
Guest Partition Guest Partition
Guest Differencing
VHD
WebVHD
Service 1Bits
Server Core base VHD
Guest Differencing
VHD
WorkerVHD
Service 2Bits
Guest Differencing
VHD
WorkerVHD
Service 3Bits
4
5
6
7
Fault and Update Domains
On to the Case Study…
90
Project Austin delivers a next-generation, micro-community based opportunity management and collaboration experience that brings a managed feel to the unmanaged space, allowing Microsoft to observe and participate in the sales process at scale through dynamic, customer-driven collaboration.
Project Austin leverages Windows Azure, CRM Services, and SharePoint Services to provide a rich set of customer and partner capabilities in the cloud while integrating with existing on-premise solutions.
Project Austin significantly enhances our understanding of our customers and partners by facilitating relationships with and between customers, partners, and Microsoft, while providing data that allows Microsoft to identify and promote world-class selling techniques and content.
Project Austin Vision
91
Project Goals• Gain first-hand experience on Azure• Cloud Storage – Security – Integration – Web – SQL Azure• Explore a business scenario that leverages the promises of the
cloud• Provide enterprise feedback to the Azure team• Deliver a working prototype in FY09
Project Austin Overview
92
Web Role• Multi-Tenant; Web App; Web Service
Integration• Worker Role; .NET Service Bus; Siebel
Data Storage• Tables; Blobs; Queues; SQL Azure
Live ID Integration• Web Auth; Access Control Service; WIF; RPS
Technical Overview
93
Community
Community
Community
Community
Micro CommunityFactory
CommunityGroups
Community Group A Community Group B
Foundation Services
Compute
Identity Security Storage Eventing Config Content …
High Level Services
Navigation
Personalization
Search
Customization
Membership
Content
Identity
Security
Groups
Integration
…
…
Micro Community
Personalization MembershipContent Personalization MembershipContent
Demo: Project Austin
98
1. Developers build it2. Test locally3. Build package w/ Tools4. Upload your package to the web portal5. Push “deploy”
6. Monitor, upgrade, scale…
Deploying Your Service To The Cloud
Demo: Deployment Experience
100
Windows Server 2008 x64
.NET Start Native Code User Mode
Roles
Web Role Worker Role
Windows Server 2008 x64
IIS 7 FastCGI - PHP Native Code Full Trust User Mode
101
Sign up for Azure tokens before you need them Include instrumentation and logging from day 1 Performance test early & often Azure changes the build – deploy – test process
• The Azure Portal is sometimes down / slow• There is no debugging in the cloud• “Response.Write()” is your friend
Lessons LearnedOperations
102
Have a backup plan Know how to reload the data Practice your deployments
• Practice your deployments again
Know how to rollback as needed
Lessons LearnedOperations - Deployment
103
Store startup config data in the Azure config files• Retire use of web.config• Use Azure tables to store shared config across instances
Log to Azure tables• In addition to Azure logs• Must be asynch
• Don’t forget to close connections
Lessons LearnedOperations
Demo: Adjust system for scale
Demo: Access to logs
DEMO: Deploy V2
The Oh Crap moment, rolling back
Storage in the Cloud…
…
Fabric
Compute Storage
Application
Blobs QueuesHTTP
Windows Azure Storage Service
Tables
113
Blobs stored in Containers 1 or more Containers per account
• …/Container/blobpath
Blobs• Capacity 50GB in CTP• Metadata, accessed independently
• name/value pairs (8kb total)
Private or Public container access Use Blobs for file system
Blobs
Table . . .Table Table
Entity . . .Entity Entity
Property PropertyProperty
Name Type Value
Storage Accounts
Windows Azure Storage Service
115
Entities and properties (rows & columns) Tables scoped by account Designed for billions+ Scale-out using partitions
• Partition key & row key• Operations performed on partitions• Efficient queries• No limit on number of partitions• Automatic load management for hot data
Use ADO.NET Data Services
Tables
116
No join No group by No order by
Think: relational DB partitioned to the max
Not a Relational Database
117
Getting all of dunnry’s blog posts is fast• Single partition
Getting all posts after 2008-03-27 is slower• Traverse all partitions
Key Example – Blog PostsPartition Key
AuthorRow Key
PermalinkProperty 3ChangedOn
Property 4Title
smarx i-love-tables 2009-07-04 I Love Tables!
smarx tables-are-awesome 2009-07-12 Tables are
Awesome!
dunnry cheetos 2008-03-27 I Love Cheetos
dunnry blogging-again 2009-07-15 Finally Blogging
Again
dunnry phluffyfotos 2008-04-09 PhluffyFotos!
Partition 1
Partition 2
118
Partition Key – how data is partitioned Row Key – unique in partition, defines sort
Goals• Keep partitions small (increased scalability)• Specify partition key in common queries• Query/sort on row key
Keys
Azure Queues
Queue
Msg 1
Msg 2
Msg 3
Msg 4
Worker Role
Worker Role
PutMessage
Web Role
GetMessage (Timeout)
RemoveMessage
Msg 2Msg 1
Worker Role
Msg 2
120
Simple asynchronous dispatch queue• Create and delete queues
Message:• Retrieved at least once• Max size 8kb
Queues
Example: Thumbnail Generator
Cloud Storage (blob, table, queue)
Web RoleLB
n
Worker Role
m
Companies have lots of applications
Each with their own silo of identity data
Each system is hardcoded for Az/An
Tedious to implement every time
Leads to greater risk as well
Many companies have 0 or n directories
Username & Password just isn’t enough anymore
An array of accounts for users
Google.com Live.com AngiesList.com Disney.com
TripIt.com MyBank.com Netflix.com TimeTracking
Expenses CRM System …
Intracompany?
Doesn’t work in the cloud
Geneva Server
Geneva Framework
Windows CardSpace
Framework for Claims Based Identity
Three geeks walk into a bar…
What is a Claim?
Web Application/Service
Username: BrianRoles: Evangelist, SpeakerEmail: [email protected]: True
The app is no longer concerned with
• Authentication• Storing and securing
usernames and passwords• Connecting to directories• Managing
roles/rights/claims
Allows for Federation
(WS-Trust)
Basic Scenario – Active Client
Relying Party(Web Service)Smart Client
Trusted Authority(Web Service)
STS
1. Get Policy
3. Send Claims
2. G
et C
laim
s
Directory/Credential
StoreBusiness
Rules
Basic Scenario – Passive Client
(WS-Federation)
Relying Party(Web App)Browser
Trusted Authority(Web App)
STS
1. HTTP GET
3. HTTP POST
2. R
edire
ct
Directory/Credential
StoreBusiness
Rules
Federated Scenario
Relying Party(Web Service)Smart Client
Trusted Authority(Web Service)
STS Business Rules
Internet
Trusted Authority(Web Service)
STS Business Rules
1
2
3
(Java?) (.NET?)
Delegation and ActAs
Web Front End
Trusted Authority
STS
3. Get Claims for svcInv ActAs
Dieter
2. Dieter
1. G
et C
laim
s fo
r Die
ter
Directory/Credential
StoreBusiness
Rules
Dieter’sBrowser
ID: Dieter ID: svcInv
Back EndWeb Service
ID: Dieter
4. svcInv ActAs Dieter
Authentication Assurance
Purchasing Models
“Pay as you go and grow”
Low barrier to entry and flexibilityOptimized for cloud elasticity
Available at launch
Consumption
“Coordinated purchasing”
Unified purchasing through EAIntroduction to volume discounts
Available post launch
Volume Licensing
“Value for a commitment“
Plans for payment predictability Discounts for commitment
Subscription
Select offers at launch
Pricing Model
Messages Per message operation
$0.15 / 100K
ComputePer service hour
$0.12 / Hour
Storage$0.15 GB / Month
$0.01/10K Transactions
Web Edition1 GB Database$9.99 / Month
Business Edition10 GB Database$99.99 / Month
Bandwidth $0.10/GB inbound & $0.15/GB outbound
Service Guarantee
Storage availabilityCompute connectivity
Role instance monitoring and
restartGuarantee
Technologypromise
Your service is connected and reachable via webInternet facing roles will have external connectivity
Storage service will be available / reachable Your storage requests will be processed successfully
All running roles will be continuously monitoredIf role is unhealthy, we will detect and initiate corrective state
SLA <99.95% <99.9%Automated
Systems Management
Many companies are deploying virtualization
The cloud is just the next step
Many see the cloud, and
want a private cloud.
Azure is not shippable now.
Dynamic Data Center Toolkit
© 2009 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.
[email protected] [email protected]/matthewms http://www.brianhprince.com
@matthewhester @brianhprince