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