page 1 ricardo villalobos windows azure architect evangelist microsoft corporation designing,...
TRANSCRIPT
Page 1
Ricardo VillalobosWindows Azure Architect EvangelistMicrosoft Corporation
Designing, Building, and Deploying Windows Azure applications
Agenda Quick Introduction to Windows Azure
Designing Windows Azure Applications
Building Windows Azure Applications
Deploying Windows Azure Applications
Q&A
Windows® Azure™ Platform
What is the cloud?
On-demand, scalable, multi-tenant, self-service
compute resources
Windows® Azure™ Platform
TIME
IT C
APA
CIT
Y
Allocating Resources: The Traditional View
Allocated IT resources
Oversupply
Undersupply
Load forecast
Initial investme
nt
Oversupply
Actual load
Windows® Azure™ Platform
TIME
IT C
APA
CIT
Y
Allocating Resources: The Cloud View
Allocated IT resources Actual load
Lower initial
investment
Less oversupply
Load forecast
Less oversupply
No undersupply
Windows® Azure™ Platform
Cloud Services
Software-as-a-Service
consume
“SaaS”Platform-as-a-Service
build
“PaaS”Infrastructure-as-a-
Servicehost
“IaaS”
Windows® Azure™ Platform
Cloud Computing TaxonomyThe Windows Azure platform fits here
Traditional IT
Storage
Servers
Networking
O/S
Security, Clustering
Virtualization
Data
Applications
Runtime
You m
anage
IaaS
Storage
Servers
Networking
O/S
Security, Clustering
Virtualization
Data
Applications
Runtime
Managed b
y v
endor
You m
anage
You m
anage PaaS
Managed b
y v
endorStorage
Servers
Networking
O/S
Security, Clustering
Virtualization
Applications
Runtime
Data
SaaS
Managed b
y v
endor
Storage
Servers
Networking
O/S
Security, Clustering
Virtualization
Applications
Runtime
Data
Efficiency + SavingsControl + Cost
Windows® Azure™ Platform
Windows Azure Platform Data Centers
North America Region
Europe Region
Asia Pacific Region
S. Central – U.S.
W. Europe
N. Central – U.S.
N. Europe
S.E. Asia
E. Asia
6 datacenters across 3 continentsSimply select your data center of choice
when deploying an application
Windows® Azure™ Platform
Compute Storage Management
Relational data Connectivity Access controlCDN
Introducing the Windows Azure Platform
Data Sync
Developer ExperienceUse existing skills and tools.
Windows® Azure™ Platform
ROLE OPTIONS
An application consists of one or more roles• A running application executes multiple instances of
each role• The fabric manages role instances
Windows Azure: Compute
WORKER ROLE
Designed for arbitrary tasksAccepts input via:• HTTP/HTTPS• Any TCP Port
WEB ROLE
Designed to handle Web requests• ASP.NET• WCF• Fast CGI +
PHP• …
Accepts input via HTTP/HTTPS
VM ROLE
The role is the VM. Suitable for:• Long running
application installations.
• Application installations requiring manual interaction.
• You configure and maintain the OS.
Windows® Azure™ Platform
Windows Azure: Storage
QUEUES• Simple message queue
• Not transactional• Read at least once
• Delete to remove message, otherwise is returned to queue
TABLES• Table = group of entities• Entity = name/value pairs• Partitioned by key
• Scales to billions of entities
• Not a relational DBMS
BLOBS• Large binary storage• Stored in container
• Unlimited containers• Deliverable through
content delivery network (CDN)
DRIVES• NTFS VHD mounted into
Compute instance• Read/Write 1:1• Read only 1:N
• Backed by blob
Windows® Azure™ Platform
Windows Azure: Storage
Scalable storage in the cloud
• 100 terabytes per Storage account• Auto-scale to
meet massive volume and throughput
Accessible via RESTful Web
services• Access from
Windows Azure applications• Access from
anywhere via internet
Various storage
types• Tables• Blobs• Queues• Drives
Windows® Azure™ Platform
SQL Azure Database
SQL Azure provides logical SQL Server• Gateway server that understands TDS protocol• Looks like SQL Server to TDS Client• Actual data stored on multiple backend data nodes
Logical optimisations supported• Indexes, Query plans etc..
Physical optimisations not supported• File Groups, Partitions etc…
Transparently manages physical storage
Windows® Azure™ Platform
Windows Azure AppFabric: Service Bus
• Exchange messages between loosely coupled applications• Network send/receive from any internet connected device• Traverse NAT/Firewall• Message buffering for loosely connected applications
Send Receive
SERVICE BUS
Receive Send
APP 1 APP 2
Windows® Azure™ Platform
Windows Azure AppFabric: Access Control
Data and Applications
Applications or Users
Provide abstraction for
federated claims-based authentication.
Easily establish secure trust relationship.
Simplify and automate
complex authorization schema requests.
Windows® Azure™ Platform
Cloud Computing Patterns
Usage
Com
pu
te
Time
Average
Inactivity
Period
“On and Off “
On & off workloads (e.g. batch job)Over provisioned capacity is wasted Time to market can be cumbersome
Com
pu
te
Time
“Unpredictable Bursting“
Average Usage
Unexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases
Average Usage
Com
pu
te
Time
“Growing Fast“
Successful services needs to grow/scale Keeping up w/ growth is big IT challenge Cannot provision hardware fast enough
Com
pu
te
Time
Average Usage
“Predictable Bursting“
Services with micro seasonality trends Peaks due to periodic increased demandIT complexity and wasted capacity
Windows® Azure™ Platform
Basic Design Principles for the Cloud• Scaling-out instead of Scaling-up (Design for
failure)
Vs …….
Windows® Azure™ Platform
Basic Design Principles• Decouple components using Async Patterns.
Presentation Layer
Service Layer
Business Layer
Data LayerStorage
DTO
ORM
Domain Objects
Windows® Azure™ Platform
Basic Design Principles• Decouple components using Async Patterns.
UI
Middle Tier (Business Layer,
Data Layer)
Storage
Commands Queue
ORM
Events Queue
Model Translatio
n
Caching
Queries
Other subscribers
Windows® Azure™ Platform
Why Use Asynchronous Patterns?
• Improve apparent responsiveness• Perform long running work in
background• Return immediately to the client• Absorb spikes in load
Windows® Azure™ Platform
Windows Azure Platform Development Prerequisites for .Net apps• Windows Azure Tools for Microsoft Visual Studio
(Version 1.4)
http://www.microsoft.com/download/en/details.aspx?id=26940
Follow instructions on Microsoft downloads page
- Microsoft Windows 7, Windows Server 2008, Windows Server 2008 R2.
- Microsoft Visual Studio Professional 2010 (or above) or Express.
- Enable IIS7 with ASP.NET and WCF HTTP activation.- Windows Azure SDK 1.4 (March 2011 edition)- Recommended: Windows Azure AppFabric SDK v1.0
Role Programming ModelInherits RoleEntryPointOnStart() Method
Called by Fabric on startup, allows you to perform initialization tasks.Reports Busy status to load balancer until you return true.
Run() MethodMain logic is here – can do anything, typically infinite loop. Should never exit.
OnStop() MethodCalled when role is to be shutdown, graceful exit.30 Seconds to tidy up
Windows® Azure™ Platform
What Azure provided
Demo Recap
• Simple ASP.NET app• Visual Studio 2010• Roles & instances are
models in XML config• Local F5 debugging• Deployed to the cloud• Switched from staging
to production
• Environments to run your apps
• Machines, rack space, switches, connectivity
• Automated deployment & configuration
• Isolation, redundancy, load balancing
• Abstraction & Flexibility
What you saw…
Windows® Azure™ Platform
Web Role Worker Role
StorageQueue
LB
LB
Worker RoleWorker Role
Web Role Worker Role
Blob Container
Table
30mb JPEG
Guestbook Sample Application
Windows® Azure™ Platform
Guestbook Sample Application
1. User uploads large image file2. Image inserted into blog storage3. Message placed on queue including
BLOB URI and metadata4. Worker role is polling queue. Reads
message from queue5. Worker role processes message, reads
from BLOB storage, generates thumbnail
6. Thumbnail and metadata stored in Table storage
7. Message deleted from queue
Windows® Azure™ Platform
Deployment options
• Create and deploy Azure Package manually.• Deploy from Visual Studio using Certificates.• Command Line and PowerShell.• Built using the Service Management API.
Windows® Azure™ Platform
Monitoring / Debugging Options
• Enable Remote Desktop.• Enable Intellitrace (only for .Net 4.0 Azure apps and VS2010 Ultimate).• Enable / Use Windows Azure Diagnostics.
Windows® Azure™ Platform
COMPUTE
Starting at $0.12/hour
(Variable instance sizes)
Per service hour STORAGE
Per GB stored and transactions
$0.15 GB/month$0.01/10k
transactions
WEB
EDITIONPer database/month
Starting at $9.99/month
(1 GB or 5 GB DB)
BUSINESS EDITION
Starting at $99.99/month(10-50 GB DB)
Per database/month
Windows Azure Platform Consumption Prices
ACCESS CONTROL
$1.99/100k transactions
Per message operation $3.99/month per
connection
Per connection/month
SERVICE BUS
Windows Azure AppFabric
All prices shown in USD;
international prices are available
Bandwidth
In$0.10/GB
Americas/Europe$0.30/GB Asia/Pacific
Per GB $0.15/GB Americas/Europe
$0.45/GB Asia/Pacific
Per GBOut
Windows® Azure™ Platform
Windows Azure Instance Sizes
Unit of Compute Defined
Variable instance sizes to handle workloads of any size
Equivalent compute capacity of a 1.6Ghz processor (on 64-bit platform)
Small
1 x 1.6Ghz (moderate IO)
1.75 GB memory
250 GB storage(instance storage)
Medium
2 x 1.6Ghz (high IO)
3.5 GB memory
500 GB storage(instance storage)
Large
4 x 1.6Ghz (high IO)
7.0 GB memory
1000 GB storage(instance storage)
Small
$0.12
Per service hour
Medium
$0.24
Per service hour
X-Large
$0.96
Per service hour
Large
$0.48
Per service hour
X-Large
8 x 1.6Ghz(high IO)
14 GB memory
2000 GB (instance storage)
Windows® Azure™ Platform
Monthly Service Level Agreements
>99.9%
Windows Azure
Compute instance
monitoring
>99.9% >99.9%>99.95%
Windows Azure
Computeconnectivity
>99.9%
• All running instances will
be continuously monitored• If instance is not running, we will detect and initiate corrective action
• Database is connected to the internet gateway • All databases will be continuously monitored
• Your service is connected and reachable via the internet• Internet-facing roles will have external connectivity
• Storage service will be available/ reachable (connectivity)• Your storage requests will be processed successfully
Windows Azure
Storage availability
SQL Azure Database availability
Service Bus and Access
Control availability
• Service bus and access control endpoints will have external connectivity•Message operation requests processed successfully
Windows® Azure™ Platform
© 2010 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.