35
Page 1 Ricardo Villalobos Windows Azure Architect Evangelist Microsoft Corporation Designing, Building, and Deploying Windows Azure applications

Page 1 Ricardo Villalobos Windows Azure Architect Evangelist Microsoft Corporation Designing, Building, and Deploying Windows Azure applications

Embed Size (px)

Citation preview

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

Quick Introduction to Windows Azure

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

Designing Windows Azure

Applications

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

Building Windows AzureApplications

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

Page 25

DEMO

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.