Windows Azure Platform
Training Workshop
Lap Around Windows Azure
Name Title Organization Email
Agenda
What is Windows Azure Windows Azure Features
Compute Storage Developer SDK Automated Service Management
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
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
Why Windows Azure?
OS Takes care of your service in the cloud
Deployment Availability Patching Hardware Configuration
You worry about writing the service
What is Windows Azure?
Features
Automated Service Management Compute Storage Developer Experience
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
IIS7 Web Sites (ASP.NET, FastCGI) Web Services (WCF)
Storage
Worker Role Stateless Servers Http(s), TCP
10
Developer Tools
What is Windows Azure?
Storage
Durable, scalable, available Blobs Drives Tables Queues REST interfaces
Can be used without compute
Compute
Developer Tools
11
What is Windows Azure?
Compute
All of the hardware Hardware Load Balancers Servers Networks DNS Monitoring Automated service management
Storage
Developer Tools
12
What is Windows Azure?
Developer SDK
Windows Azure SDK
Local Development Fabric emulates running Compute Storage multiple instances, load-balancing, service API 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 Internet
LB
Windows Azure
Queues
LB
(ASPX, ASMX, WCF) (ASPX, WCF, etc.)
WebSite Site WebSite WebASMX, WCF) (ASPX,
Blobs
Worker Worker Worker Service Service Service
Tables
Storage
16
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 isnt 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 dont 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