The Windows Azure Platform (MSDN Events Series)

Preview:

DESCRIPTION

This presentation was delivered as part of the MSDN Events series of technical seminars and provides a deep dive into cloud computing and the Windows Azure Platform. It starts with a developer-focused overview of the Windows Azure Platform and the cloud computing services that can be used either together or independently to build highly scalable applications. From there, the discussion explores data storage, SQL Azure, and the basics of deployment with Windows Azure.

Citation preview

Take Your Applications Sky High with Cloud Computing and the Windows Azure Platform

Take Your Applications Sky High with Cloud Computing and the Windows Azure Platform

Dave BostDeveloper Evangelist

http://davebost.com/blog

http://thirstydeveloper.com

For developers who have a thirst for

knowledge

Session 01:Introduction to Microsoft Windows Azure

Session 01:Introduction to Microsoft Windows Azure

Agenda

Windows Azure in Action Windows Azure Services Platform Core Services Getting Started Roles Developing Azure Applications

Objectives

How to get started with: Windows Azure Platform Windows Azure Windows Azure Data Services

Web and Worker Roles Development tools you need Ability to develop Windows Azure

applications

DemoLive Windows Azure Application In The Cloud

What is Cloud Computing?

• A New Style of Computing Consumption Based Pricing• Hosting, Storage, Database, Other

Services• Software as a Service (SaaS)• On-Demand Scale - Mammoth Capacity• High Availability and Reliable• Self-Service Management• Real and Here to Stay Additive to the Enterprise, Not Replacing

Scalable Web Application with

Worker Role Hosted inventory

management integrated with

retail POS terminals

What are the Windows Azure Use Cases?

Scalable WebBrand web site or

photo sharing service

On-Premise Application

and Cloud Storage Hosting output of 3D design and archiving

enterprise data Migration of Legacy Applications to Windows Azure

Move legacy applications without re-architecting

the infrastructure

Using Windows AzureComputational PowerScientific computationLarge-scale data mining

Why Are We Here?Because Cloud Computing is Huge

At Microsoft:

1 billion: Windows Live ID authentications each day

3 to 4 billion: the # of emails filtered daily from >6 million mail boxes by Forefront

2 billion: the # of queries each month on Bing

450 million: Hotmail users (now 15 years old)

100 million: users that get Windows Update worldwide, (now 12 years old)

20 million: Xbox Live users (now 9 years old)

+400,000: square footage of our new datacenters

For You:

A new paradigm

in computing

Platform Continuum

• Bring your own machines, connectivity, software, etc.

• Complete control• Complete

responsibility• Static capabilities• Upfront capital costs

for the infrastructure

• Renting machines, connectivity, software

• Less control• Fewer

responsibilities• Lower capital costs • More flexible• Pay for fixed

capacity, even if idle

• Shared, multi-tenant infrastructure

• Virtualized & dynamic

• Scalable & available• Abstracted from the

infrastructure• Higher-level services• Pay as you go

On-PremisesServers

Hosted Servers

Cloud Platform

Where the Cloud is Compelling

App Characteristic Example

Massive scale Outback promo on Facebook

High reliability eCommerce apps (Coke, Dominos)

Variable load Online tax preparation (CCH)

Unpredictable lifetime Hurricane relief site

Requiring parallel processing Genome sequencing

Scale fast or fail fast Web sites (Kelley Blue Book)

Not good fit for in-house data center

Frequently updated app

Needing external storage Online video archive

No desire to manage infrastructure

SaaS apps (Quark’s Promote app)

Windows Azure

Fabric – Service Management Infrastructure

Hosting – Applications, Web Services, Workers

Storage – Blobs, Queues, Tables, Drives Frictionless Upgrades

Compute Storage Management

Compute Storage Management

ManagementRelational data Connectivity Access control

SQL Azure

Core Database Functionality, Subset of SQL Server

Database available in limited sizes 1GB, 10GB

Management SQL Data Sync

ManagementRelational dataCompute Storage Management

ManagementRelational data Connectivity Access control

Windows Azure AppFabric

Service Bus Access Control Service Management

Compute Storage Management

ManagementRelational data Connectivity Access control

Windows Azure Cloud Fabric

Multiple virtual instances Easily provision of applications Detect failures Spin up new instances to replace the failed

ones How many instances and what role they

will play Load balances and DNS Elasticity of the service… scaling up/down

number of instances

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

Windows Azure DevFabricLocal Developer Simulation of AppFabric

Simulated “Cloud Experience” for Development Routes cloud requests to local machine Simulates data storage with local SQL server

database Azure SQL simulated with local SQL Server

database

Developer Experience

Leverage Existing Skills in .NET, SQL Server, WCF

Use Familiar tools – Visual Studio, SSMS RESTful HTTP cloud services, supports PHP,

Python Cloud apps can be developed locally / offline SDK Cloud Simulator – Dev Fabric, Dev

Storage

Developer ExperienceUse existing skills and tools

Getting Started With Windows AzureThe Windows Azure SDK

http://www.microsoft.com/windowsazure/developers/

Service Management

Automated Service ManagementProvisioning, Patching, UpgradesFabric

Self ManagementDeploy, Promote, Scale, UpgradeManagement

Portal

Programmatic ManagementProgrammatic deployments upgrades, etc. API for doing what the portal does

Management API

Getting Started with Windows AzureThe Windows Azure Platform Portal

Provision Deploy Promote Stop/Start Scale Upgrade Delete

Windows Azure SDK Features

C# and VB Visual Studio project templates Windows Azure Cloud Service solution with

multiple roles. Tools to manage and configure roles Local Development Fabric Local Development Storage services Local Cloud Service debugging support Cloud Service package and deployment

builder

No SDK Required for SQL Azure

Defining the Web and Worker Roles

WEB ROLE WORKER ROLE

Interacts with end-useror web services

Handles incomingHTTP/HTTPS requests

Develop with Microsoft andnon-Microsoft tools:

ASP.NET, WCF, other .NET toolsJava, PHP, etc.

Does not acceptincoming requests

Initiates their own requestsfor data or tasks from

the queue

Similar to a "batch job"or Windows service

Bid Now Service

Service Models & Roles

Web B (port 8081)

Worker X

Worker Y

Worker Z

Web A(port 80)

Main Web100 instances

Admin2 instances

Image Resize2 instances

Auction Processing25 instances

Notifications10 instances

Windows Azure Roles in Visual Studio

DemoBuilding Our First Cloud ApplicationWith Microsoft Windows Azure

Application Concerns—Hardware

Server Instances Plan for peak usage scenarios Plan for redundancy to reduce down time Make up-front capital expenditures

Servers Networking / Load Balancers Software Licensing

Hardware Diagnostics & Failure Recovery Detection of failures Repair or replacement Backup parts on-hand

Azure Solution– Hardware

Hardware Acquisition No up-front capital expenditures Windows Azure provides redundancy Windows Azure scales to meet peak usage

Hardware Diagnostics & Failure Recovery Windows Azure detects hardware failures Windows Azure dynamically repairs itself

Conclusion

You are now Windows Azure savvy… You’ve seen Windows Azure in action… You’ve learned about the platform and its

components and core services You understand instance roles You know the tools you will need to begin You’re excited to use this new technology And you can hardly wait for session 2 on

data…

Windows Azure Developer Platformhttp://www.microsoft.com/windowsazure/developers/

Channel 9 videoshttp://channel9.msdn.com/azure

Windows Azure Platform Training Kithttp://www.azure.com

Microsoft PDC 2009http://microsoftpdc.com/

Windows Azure SDKhttp://www.microsoft.com/windowsazure/developers/

Resources – Windows Azure Platform

Session 02: Windows Azure Platform Data Storage

Session 02: Windows Azure Platform Data Storage

Agenda

Windows Azure Platform Data Storage Options

Getting Started with SQL Azure Data Storage

Getting Started with Windows Azure Data Storage Blobs Tables Queues Drives

Inspecting the contents of Windows Azure Data Storage

Objectives

Learn the data storage options offered by the Windows Azure Platform and become familiar with choosing and using the appropriate one for your application

Azure Platform Data Storage Options• SQL Azure

• Relational data storage• Windows Azure Data Storage

• Blobs• Unstructured data storage

• Tables• Semi-structured or tabular data storage

• Queues• Buffered delivery data storage

• Drives• Durable NTFS volumes that Windows Azure

applications can use. See: http://microsoftpdc.com/Sessions/SVC14

SQL Azure Features

Supported Tables, Indexes,

Views Stored Procedures Triggers Constraints Table Variables Temp Tables

(#Name)

Not Supported Physical Server

Access Catalog DDL Common Language

Runtime Service Broker Reporting Services Analysis Services Distributed

Transactions and Queries

SQL Azure

Initial Services Database – Core SQL Server database

capabilities

Future Services Data Sync – Enables the sync framework Additional SQL Server capabilities available as

a service: Business Intelligence and Reporting

New services: Reference Data and Secure Data Hub

SQL AzureDeployment

Web Portal(API)

SQL AzureTDS

DB Script

SQL AzureAccessing databases

Web Portal(API)

SQL AzureTDS

Your App

Change Connection String

Database Replicas

Replica 1

Replica 2

Replica 3

DB

Single Database Multiple Replicas

Single Primary

SQL Azure Server Creation

SQL Azure Firewall Maintenance

Simple rules Easy one-screen portal maintenance

SQL Azure Database Connection String An administrative user is created with the

server User has system administrator permissions

like sa” Server=tcp:itte80vcfq.database.windows.net

; Database=FabrikamAzureDB;User ID=FredSa;Password=myPassword;Trusted_Connection=False;Encrypt=True;

DemoSQL Azure Database Application

Database Migrations

Scripts Transfer Schema

BCP Transfer Data

SSIS (SQL Server Integration Service) Transfer Schema and Data

Database Migrations (Cont.)

The SQL Azure Migration Wizard helps you migrate your local SQL Server 2005 / 2008 databases into SQL Azure. The wizard walks you through the selection of your SQL objects, creates SQL scripts suitable for SQL Azure, and allows you to migrate your data.”http://sqlazuremw.codeplex.com/

Database Management using SQL Management Studio

Getting Started with Windows Azure Data Storage

Windows Azure Data Storage

Account Name / Key

AccountName A unique name identifying the Azure Data Storage

AccountKey A blob of encrypted data used for authentication

Windows Azure Data Storage - Blobs Unstructured data storage Partitioned by container Unlimited containers

Demo• Windows Azure Data Storage –

BlobsThe GuestBook Application

• Examining the contents ofWindows Azure Data Storage

Windows Azure Data Storage - Tables Windows Azure Table provides scalable, available,

and durable structured (or semi-structured) storage in the form of tables.

The tables contain entities, and the entities contain properties.

The tables are scalable to billions of entities and terabytes of data, and may be partitioned across thousands of servers.

The tables support ACID transactions over single entities and rich queries over the entire table.

Simple and familiar .NET and REST programming interfaces are provided via ADO.NET Data Services.

http://go.microsoft.com/fwlink/?LinkId=153401

Windows Azure Data Storage – Tables (Terms Part 1) Table – contains a set of entities. Entity (Row) – Entities are the basic data

items stored in a table. Property (Column) – This represents a

single value in an entity. PartitionKey – The first key property of

every table. The system uses this key to automatically distribute the table’s entities over many storage nodes.

Windows Azure Data Storage – Tables (Terms Part 2) RowKey – A second key property for the

table. This is the unique ID of the entity within the partition it belongs to.

Timestamp – Every entity has a version maintained by the system.

Partition – A set of entities in a table with the same partition key value.

Sort Order – There is a single index provided for the CTP, where all entities in a table are sorted by PartitionKey and then RowKey

68

Getting all of dunnry’s blog posts is fast• Single partition

Getting all posts after 2008-03-27 is slow• Traverse all partitions

Key Example – Blog Posts

Partition KeyAuthor

Row KeyPermalin

k

Property 3Changed

OnProperty 4

Title

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

SQL Azure and Windows Azure Table Comparison

SQL Azure Tables Fully structured Strongly typed Relational (RDMS) Highly scalable

Windows Azure Tables Semi-structured Loosely typed Non-Relational (Not

RDMS) Massively scalable

DemoWindows Azure Data Storage - TablesThe GuestBook Application

Windows Azure Data Storage - Queues Buffered delivery data storage Read at least once Delete to remove message, otherwise is

returned to queue Partitioned by Queue Name

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

DemoWindows Azure Data Storage - QueuesThe GuestBook Application

Resources

Azure Portalhttp://windows.azure.com

Tools SQL Azure Migration Wizard

http://sqlazuremw.codeplex.com/

Azure Storage Explorer http://azurestorageexplorer.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35189

Windows Azure Management Tool (MMC)http://cloudfex.com/cs/blogs/cloud/archive/2009/05/17/windows-azure-management-tool-mmc.aspx

Windows Azure Forumshttp://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/threads

ResourcesWindows Azure Data Storage

• Haridas, Jai. “Windows Azure Tables and Queues Deep Dive”. Microsoft PDC. 2009. http://microsoftpdc.com/Sessions/SVC09

• Calder, Brad. “Windows Azure Blob Deep Dive”. Microsoft PDC. 2009. http://microsoftpdc.com/Sessions/SVC14

Resources – White Papers

Windows Azure Table – Programming Table Storagehttp://go.microsoft.com/fwlink/?LinkId=153401

Windows Azure Blob – Programming Blob Storagehttp://go.microsoft.com/fwlink/?LinkId=153400

Windows Azure Queue – Programming Queue Storagehttp://go.microsoft.com/fwlink/?LinkId=153402

Session 03:Windows Azure ApplicationsFrom Construction through Deployment

Session 03:Windows Azure ApplicationsFrom Construction through Deployment

Agenda

Build Web Application Migrate Web Application to Windows

Azure Deploy to the Cloud Migrate Database to SQL Server Migrate SQL Database to SQL Azure Deploy SQL Azure Database Migrate Web Application to the Cloud

Objective

Understand the process of building and deploying web applications and databases to Windows Azure and SQL Azure.

Part 1 - Developing and Running Application From the Local DevFabricDevelopment Workstation

DevFabricWeb App

The Cloud

DemoPart 1 - Developing and Running Application From the Local DevFabric

Part 2 - Deploy A Web ApplicationFrom DevFabric to Windows Azure Staging

Cloud Fabric

Staging

Production

Development Workstation

DevFabric

Web AppWeb App

DemoPart 2 – Deploy A Web ApplicationFrom DevFabric to Windows Azure Staging Area

Part 3 - Deploy A Web ApplicationFrom Windows Azure Staging to Production

Cloud Fabric

Staging

Production

Web AppWeb App

DemoPart 3 – Deploy Our Windows Azure Application From The Windows Azure Staging Area into Production

Part 4 - Developing and Running ApplicationWith SQL Server From the Local DevFabric

Development Workstation

DevFabricWeb App

SQL DatabaseThe

Cloud

DemoPart 4 – Developing and Running Application With SQL Server From the Local DevFabric

Part 5 - Developing and Running ApplicationWith SQL Server From the Local DevFabricDevelopment Workstation

DevFabricWeb App

SQL Database

Cloud Fabric

Staging

Production

SQL Azure

SQL Database

DemoPart 5 - Developing and Running ApplicationWith SQL Server From the Local DevFabric

Part 5 - Developing and Running ApplicationWith Windows Azure and SQL AzureDevelopment Workstation

DevFabricWeb App

SQL Database

Cloud Fabric

Staging

Production

SQL Azure

SQL Database

Web App

Web App

Web App

DemoPart 5 - Developing and Running Application With Windows Azure and SQL Azure

Step 6 – Deploying ApplicationsWith Windows Azure and SQL Azure

Development Workstation

DevFabricWeb App

SQL Database

Cloud Fabric

Staging

Production

SQL Azure

SQL Databases

Web App

Web App

Web App

DemoStep 6 – Deploying ApplicationsWith Windows Azure and SQL Azure

Part 7 - Deploying Updates To Applications

Development Workstation

DevFabricWeb App

SQL Database

Cloud Fabric

Staging

Production

SQL Azure

SQL Database

Web App

Web AppWeb App

DemoPart 7 - Deploying Updates To Applications

Part 8 - Revising Application Configuration

Development Workstation

DevFabricWeb App

SQL Database

Cloud Fabric

Staging

Production

SQL Azure

SQL Database

Web App

Web AppWeb App

Config

DemoPart 8 - Revising Application Configuration

Part 9 - Creating SQL Azure Database Users

Development Workstation

SQL Database

SQL Azure

SQL Database

SQL Server 2008 R2 Mgmt

Studio

DemoPart 9 - Creating SQL Azure Database Users

Resources - Deployments

Kerner, Mathew. “Windows Azure Diagnostics, Logging and Monitoring in the Cloud.” Microsoft PDC. 2009. http://microsoftpdc.com/Sessions/SVC15

More Information On Stuff We Wanted To Talk About But Didn’t Have Time For…

AppFabric Smith, Justin. “REST Services Security Using the

Access Control Service”. Microsoft PDC. 2009 http://microsoftpdc.com/Sessions/SVC19

Q & AQ & A

Recommended