Windows Azure Platform
Training Workshop
Lap Around Windows Azure
Name
Title
Organization
Email
3
Agenda
What is Windows Azure
Windows Azure Features
Compute
Storage
Developer SDK
Automated Service Management
4
What is Windows Azure?
An operating system for the cloud
Reduce the complexity of internet scale
applications
Designed to be scalable & available
A service running Microsoft datacenters
5
What is Windows Azure?
An Operating System for the cloud
Hardware Abstraction across multiple servers
Distributed Scalable, Available Storage
Deployment, Monitoring and Maintenance
Automated Service Management, Load
Balancers, DNS
Programming Environments
Interoperability
Designed for Utility Computing
6
Why Windows Azure?
OS Takes care of your service in the cloud
Deployment
Availability
Patching
Hardware Configuration
You worry about writing the service
7
What is Windows Azure?
Features
Automated Service Management
Compute
Storage
Developer Experience
8
What is Windows Azure?
Compute
Storage
Developer
SDK
9
What is Windows Azure?
•
•
•
•
Compute
.NET 3.5 SP1
Server 2008 – 64bit
Full Trust*
Web Role
Storage
• IIS7 Web Sites
(ASP.NET, FastCGI)
• Web Services (WCF)
• Worker Role
• Stateless Servers
• Http(s), TCP
10
Developer
Tools
What is Windows Azure?
Storage
Compute
•
•
•
•
•
•
Durable, scalable, available
Blobs
Drives
Tables
Queues
REST interfaces
– Can be used without compute
Developer
Tools
11
What is Windows Azure?
Compute
Storage
All of the hardware
Hardware Load Balancers
Servers
Networks
DNS
Monitoring
Automated service management
Developer
Tools
12
What is Windows Azure?
Developer SDK
• Windows Azure SDK
– Local Development Fabric emulates running
Storageservice API
multipleCompute
instances, load-balancing,
– Local Development Storage emulates blob,
tables and queue storage
– Command line tools allows integration outside
of Visual Studio
• Microsoft Visual Studio 2008, 2010 add-in
– Provide rich tooling and templates to easily
build your application
13
Windows Azure API
All operations are accessed through
RoleEnvironment
RoleEnvironment Handles
Retrieving configuration information
LocalResource locations (local disk)
Accessing Role information like InstanceEndpoints
necessary for inter-role communication
Exposes events during instance lifecycle, allowing a
chance to respond to topology or config change
14
Service Models
Describes your Service
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="CloudService1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="WebRole">
<ConfigurationSettings>
<Setting name="AccountName"/>
</ConfigurationSettings>
<LocalStorage name="scratch" sizeInMB="50"/>
<InputEndpoints>
<!-- Must use port 80 for http and port 443 for https when running in the cloud -->
<InputEndpoint name="HttpIn" protocol="http" port="80" />
</InputEndpoints>
</WebRole>
<WorkerRole name="WorkerRole">
<ConfigurationSettings>
<Setting name="AccountName"/>
<Setting name="TableStorageEndpoint"/>
</ConfigurationSettings>
</WorkerRole>
</ServiceDefinition>
15
Service Architecture
Internet
LB
Internet
Windows Azure
LB
Queues
Worker
Worker
Worker
Service
Service
Service
WebSite
Site
Web
Web
Site
(ASPX, ASMX, WCF)
(ASPX, ASMX, WCF)
(ASPX, WCF, etc.)
Tables
16
Storage
Blobs
My First Service
17
Storage
Blobs, Drives, Tables, Queues
Designed for the cloud
3 replicas
Guaranteed consistency
Accessible directly from the internet via REST
API
.NET Client library supported
Does not require compute
Storage account drives unique URL, e.g.:
https://<youraccount>.blob.core.windows.net
18
Blobs
Blobs stored in Containers
1 or more Containers per account
Scoping is at container level
…/Container/blobname
$root is special name for root container
Blobs
Two types, Page and Block
Page is random R/W, Block has block semantics
Metadata, accessed independently
name/value pairs (8kb total)
19
Private or Public container access
Queues
Simple asynchronous dispatch queue
Create and delete queues
Message:
Retrieved at least once
Max size 8kb
Operations:
Enqueue
Dequeue
RemoveMessage
20
Tables
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
Use ADO.NET Data Services
21
Service Lifecycle
Create service package
Binaries + Content + Service Metadata
Deploy via web portal or Service Management
API
Add & remove capacity via web portal or API
Deployed across fault domains
Upgrade with zero downtime
22
Automated Service Management
You tell us what, we take care of how
What
Service metadata
How
Metadata describes service
No OS footprint
Service is copied to instances
Instances were copied to physical hardware
Physical hardware booted from VHD
All patching is performed offline
23
Deploying Services
24
Service Monitoring
SDK component providing distributed
monitoring & data collection for cloud apps
Support Standard Diagnostics APIs
Trace, Debug normally
Manage multiple role instances centrally
Scalable
Choose what to collect & when to collect it
Event Logs, Trace/Debug, Performance Counters, IIS
Logs, Crash Dumps, Arbitrary log files
25
Design Considerations
Scale and availability are the design points
Storage isn’t a relational database
Stateless
Stateless front ends, store state in storage
Use queues to decouple components
Instrument your application (Trace)
Once you are on - stay on
Think about patching & updates
26
Learning Windows Azure
www.windowsazure.com
http://channel9.msdn.com/learn
Download the SDK
You don’t need cloud access to develop!
Look at the samples in the SDK
Windows Azure Platform Training Kit
Multiple Windows Azure, SQL Azure, AppFabric labs
Follow the team bloggers
27
Summary
Windows Azure is the OS for the cloud
Lets you build services without the operational
worry
Designed for Scalability & Availability
Automated Service Management
Compute
Storage
Developer SDK
Utility computing - Pay-as-you-go pricing
28
29
© 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.
30