10 things you can do to use windows azure more effectively...2011/07/10  · possible with sql azure...

70

Upload: others

Post on 21-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s
Page 2: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

10 Things You Can Do to Use

Windows Azure More Effectively

Rainer Stropek

software architects gmbh

[email protected]

Page 3: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Abstract

You are already using Windows Azure or you are planning to take the step into the

cloud? In this session Rainer Stropek, MVP for Windows Azure, presents some of the

most important tips to get the most out of your investment in Microsoft‟s cloud

computing platform. Did you know that you can host multiple websites in a single

Azure web role? Rainer will cover things like this during his session. You will learn

about the theory behind them and see them presented in practical examples.

Page 5: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Common Creative License

Source: http://www.flickr.com/photos/romainguy/230416692

Common Creative License

Source: http://www.flickr.com/photos/willposh/459447453

Common Creative License

http://www.flickr.com/photos/dolgin/4200710256

Page 6: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Strategy

„How a battle is fought is a matter of tactics: the terms and conditions

that it is fought on and whether it should be fought at all is a matter of

strategy” (Source: Wikipedia)

Common Creative License

Source: http://www.flickr.com/photos/romainguy/230416692

Page 7: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

1. Change Your Business Model?!

Common Creative License

Source: http://www.flickr.com/photos/28481088@N00/621194808/

Common Creative License

Source: http://www.flickr.com/photos/monster/310530160/

SaaS

Page 8: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

1. Change Your Business Model?!

Classical ISV

• Complexity is visible

● Sales process

● Project planning

● Deployment

• Revenue

● Per project

• Costs

● Development, maintenance

● Necessary infrastructure

SaaS + Cloud ISV

• Hidden Complexity

● Simple or self-service sales

● No classical „project“

● Minimal or no deployment

• Revenue

● ARPU, RGU, etc.

• Costs

● Depreciation, captial costs

● Total cost

Page 9: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Where Most Of Us Come From

Dev

Team Customer

Close

Relationship

Page 10: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Where Many Of Us Are Today

Dev

Team

Customer

Kunde Kunde Kunde Kunde

Customer

External/New

Customers

Page 11: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Where We Want To Be

Dev

Team

Customer

Kunde Kunde Kunde

Customer

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Kunde

Custom

Custom

Custom

Custom

Custom

Customer

Off-The-Shelf

Product

Page 12: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Catching The Long Tail

The Long Tail

http://www.wired.com/wired/archive/12.10/tail.html

Page 13: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Low implementation

effort

Complex pricing model

Page 14: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Rating/Billing/Payment

• Web portal for… ● …registration of new users (has to handle very

sensitive credit card data has to be stored safely and securely, too!)

● …maintaining customer billing data (e.g. customer changes address or credit card provider)

● …cancelling accounts or users

• Infrastructure for rating ● Measure usage

● Rage usage with rates/unit

● Additional rating logic will be necessary; examples: • Mechanisms for sales discounts (e.g. introductory

offer)

• Infrastructure for billing ● Creation of invoices (in total for accounting and

itemized bills for checking the correctness)

● Sending out invoices (electronically with/without signature, printed)

● Storing invoices internally.

• Infrastructure for payment; options could be: ● Credit card payments including mechanisms for

handling payment cancellations, invalid credit cards (e.g. expired cards), etc.

● Payments via online payment solution like PayPal

● Payment with vouchers (e.g. voucher that an end user received with hardware)

● Account/balance infrastructure (debit system instead of

credit system; example: Skype)

• E.g. what to do with remaining balance if user cancels his

account?

• Fraud detection

● Infrastructure for credit checking and fraud detection;

examples are…

• …credit card checking

• …check of credit ranking for users

• Support infrastructure for rating/billing/payment issues

• Alternatives

• Alternatives for building such a system from scratch

could be:

● Buying an existing billing system (expensive; does only

make sense if customer needs such a system in other

areas, too)

● Handle payments with payment partners (e.g. payment

via phone invoice difficult because such contracts

have to be maintained country by country)

● Use existing SaaS payment solutions (e.g. PayPal;

difficult with pay-per-use)

Page 15: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

2. Multi-Tenancy

To be or not to be...

Common Creative License

Source: http://www.flickr.com/photos/rpenalozan/5057881708/

Page 16: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

SaaS Maturity Levels

Kwok, Nguyen, Lam: A Software as a Service with Multi-

tenancy Support for an Electronic Contract Management

Application, IEEE International Conference on e-Business

Engineering, pp. 179-186, 2008

Custom Solution

With Common

Components

Multi-Instance

(ASP)

Multi-Tenancy Multi-Tenancy

Page 17: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

SaaS Configuration Competency

Model

Wei Sun, Xin Zhang, Chang Jie Guo, Pei Sun, Hui Su: Software as a

Service: Configuration and Customization Perspectives, in Proceedings

of IEEE Congress on Services Part II, 2008

Page 18: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Multi-Tenency

• How to handle tenant separation?

● Check out upcoming federation feature in SQL Azure

• How to handle per-tenant customization?

● Data Model, behavior, forms, lists, workflows, reports,

permissions, etc.

● Sandboxing (extensibility)

• Programming model

● Database access

● API

Page 19: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Good Old Client-Server Model

Database

Clients

Program

Version

Data version

Offline data

store

Page 20: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Three-Tier Modell

Database

Clients

Program

version

Data version

Offline data

store

Web Server

Service

version

Programm

Version

Page 21: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Load Balancer App-Server Farm Multiple Tenants

Multi-Tenant

Cluster

Multi-Tenancy, Cloud

Clients Web Server

Database

Tenant 1

Tenant 2

Tenant n

Data versions Program

versions

Service

versions

Program

versions

Routing

service Offline data

store

Page 22: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

3. Make or Buy Gotcha!

Common Creative License

Source: http://www.flickr.com/photos/rpenalozan/5057881708/

Page 23: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Make or Buy

• Same general issues as always

• PLUS

● Use service or deploy with your app?

• Service consider SLAs of 3rd parties

• Multi-Tenency down to 3rd party services

• Authentication, delegation

● Is 3rd party cloud-ready?

• Don„t build your business based on announcements

● Licensing

• What is a „server“?

• General: Prefer e.g. per-developer licensing

● Caution: Not only SW components, sames issues with data

Page 24: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Tactics

„the art of organizing an army, are the techniques for using weapons or

military units in combination for engaging and defeating an enemy in

battle” (Source: Carl Clausewitz: On War, 1832)

Common Creative License

Source: http://www.flickr.com/photos/willposh/459447453

Page 25: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

4. Scale Out Not Up

Cloud

DB Failover

Cluster Web Farm

Load

Balancer Clients

Costs/month:

In Azure ~150€

Page 26: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

TIME

IT C

AP

AC

ITY

Effective

Load

Resources

Estimated Load

Page 27: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Azure Scaling

LB

LB

D

N

S

Your Service

Fabric Controller

Web Portal (API)

Service

Service

Service

Model

Service

Service

Service Service

Service

Page 28: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Scale Into The Cloud

Page 29: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Azure Scaling

• Scaling by schedule

● Azure PowerShell Cmdlets

• Example on StackOverflow.com

● See also Windows Azure Dynamic Scaling

Sample

• Auto-scaling

● Based on collected metrics (see also later)

● Pre-built scaling services (e.g. AzureWatch)

Page 30: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Azure Scaling

• Some services provide auto-scaling out of the

box

● E.g. Table storage, blob storage

• Auto-scaling of RDBMS-layer is still hard

● Sharding (see also Sharding Wiki on TechNet)

● Check out upcoming federation feature in SQL

Azure

Page 31: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

5. Async Rulez!

Common Creative License

Source: http://www.flickr.com/photos/steffenz/3893797302/sizes/l/in/photostream/

Page 32: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Clients Webserver

DB-Server http GET (Form)

http POST (Reg.)

Events

External

Partner

Save Reg.

Confirm.

Doc

http GET (Conf.)

Conf.

Page 33: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Sequential

Workload

Page 34: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

HTTP

Errors

Page 35: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

~17,5% CPU

Page 36: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Clients Webserver

Reg.

Queue

Table

Worker

Blob External DB

Page 37: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Notify

worker via

queue

Payload

via table

Page 38: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Response

Time

Queue

Length

Page 39: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

~40% CPU

~5% CPU

Page 40: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Start mult.

worker threads

Avoid

Locks!!

Page 41: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

High Watermark

Simple checking without

transactions (i.e. no locking)

Transactionally safe

checking (i.e. locking)

Page 42: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

~40% CPU

~25% CPU

Page 43: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

6. Care About Storage Types, you must!

• Think about...

● ...storage volume needed

● ...number of transactions

● ...programming effort

• Background information

for Azure Storage Pricing

Web Edition

Per database/month

$9.99/month

(1-5 GB DB/month)

Business Edition

Starting at $99.99/month

(10-50 GB DB/month)

Per database/month

Storage Per GB stored and

transactions $0.15 GB/month

$0.01/10k transactions

● ...client capabilities

● ...necessary performance

● ...necessary throughput

● ...static/dynamic nature

Page 44: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

When To Use What??

SQL Azure

• Strong programmming model

needed

• Need for complex ACID

transactions

KO:

• Restricted storage amount

acceptable (currently max.

50GB/DB)

• TDS is possible (soon no-code

OData will be an option)

Windows Azure Storage

• Price sensitive (~1/65th compared

to SQL Azure)

• Auto-scale out Fast

• Large storage volumes (many,

many TBs)

• REST/HTTP needed

• CDN needed

● Possible with SQL Azure + web role,

too – not without code

• NTFS needed (Drives)

• Queues needed

Page 45: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

7. Microsoft‘s SLAs No Silver Bullet

You get credits, not compensation for damage

Backup still important!

Page 46: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Scenarios

E.g. Reporting

E.g. Web site

reference data

E.g. Geo-located web

applications

E.g. Traffic manager

Page 47: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Windows Azure Traffic Manager

Page 48: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Windows Azure Traffic Manager

Windows Azure hosted services

named in policy

Traffic Manager policy

Traffic Manager domain

contoso.ctp.trafficmgr.com

... Hosted

Service N

Hosted

Service 1

User

DNS resource record for

www.contoso.com

monitoring

1

Load Balance Method2

3

4

5Test

6

Company Domain

www.contoso.com

Page 49: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Operational

“represents the level of command which coordinates the minute details of

tactics” (Source: Wikipedia)

Common Creative License

http://www.flickr.com/photos/dolgin/4200710256

Page 50: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

8. Monitoring is Crucial

• Optimization is SEXY again!

• Windows Azure Diagnostics

● „Telemetry“ for your productive Azure roles

● Long-term monitoring (service health, auto-scaling, etc.)

• Remote Desktop

● Difficult because of dynamic nature of the cloud

● Troubleshooting, development

• IntelliTrace

● Troubleshooting, development

Page 51: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Windows Azure Diagnostics

Role

Role Instance

Diagnostic

Monitor

Local directory storage

Request upload

Windows

Azure

Storage

Scheduled or on-demand

upload

Windows

Data Sources

Page 52: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Remote

Diagnostics

config.

Setup

Diagnostics

Page 53: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Monitoring

Page 54: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Demo Content

• Show diagnostics in storage

• Show cerebrata diagnostics manager

• Show RDP into role

Page 55: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Certificate for

credential encryption

Credentials Don‟t forget to

enable RDP!

Remote Connection (RDP)

Page 56: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

IntelliTrace in Azure

• Collect data about events that happened in Azure

• Open data in VS and see e.g. exceptions, call flow, etc.

• IntelliTrace data is collected in Windows Azure Storage

Page 57: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

9. Occupy Roles Wisely

• Web Role for...

● ...anything that should be hosted in IIS

● ...multiple web sites in a single role

• Worker Roles for...

● ...any kind of background work

● Remember: Can be combined with web role

• VM-Role only if...

● ...you are unable to automate role setup (startup tasks)

● ...software necessary for role setup is unstable

● ...software necessary for role setup needs UI

Web Role

• IIS (since 1.4)

Worker Role

• While (true)

{ }

VM-Role

• Custom

Page 58: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Advanced Roles

Page 59: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Demo Content

• Show web role with multiple sites

● Point out differences with entry point code

• Show worker role with complex startup task

● Show project configuration

● RDP to role, show folders

Page 60: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

ServiceDefinition.csdef

Install_dac.cmd

Page 61: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Install_dac.cmd

ServiceDefinition.csdef

Page 62: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

10. Automation Saves Time

Automate your build process including deployment to Azure

Common Creative License

http://www.flickr.com/photos/matthileo/3552898254/

Page 63: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Build Automation with Azure

• Goals

● Create a build process template for customization

● Build cspkg in Build Process

● Deploy to Azure using Azure Powershell Cmdlets

● Run Unit test against newly deployed service

● Remove Hosted Service

• Unless you have too much $

Page 64: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Goal: Building cspkg in Build Process

• Microsoft.CloudService.targets provides

a „Publish“ target

● used by default for cloud projects

● call the target additionally to the normal build

• Creates the cspkg in the Publish folder

● Is automatically copied to Drop location

Page 65: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Goal: Building cspkg in Build Process

• Edit the Build definition

• Go to „Process“ -> „Advanced“

• Edit MSBuild Arguments ● /t:Build;Publish

• Save the definition

Page 66: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

PowerShell Script for Deployment # certificatethumb subscriptionId servicename package config $certTP = $args[0] $cert = Get-Item cert:\CurrentUser\My\$certTP $sub = $args[1] $storageAccount = $args[2] $servicename = $args[3] $package = $args[4] $config = $args[5] $label = $args[6] Add-PSSnapin AzureManagementToolsSnapIn

New-Deployment -serviceName $servicename -storageserviceName $storageAccount -subscriptionId $sub -certificate $cert -slot 'Staging' -package $package -configuration $config -label $label | Get-OperationStatus -WaitToComplete

Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Staging' |Set-DeploymentStatus 'Running' |Get-OperationStatus -WaitToComplete Get-Deployment staging -subscriptionId $sub -certificate $cert -serviceName $servicename | Move-Deployment | Get-OperationStatus -WaitToComplete Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Staging' |Set-DeploymentStatus 'Suspended' |Get-OperationStatus -WaitToComplete Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Staging' |Remove-Deployment | Get-OperationStatus -WaitToComplete Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Production' |Set-DeploymentStatus 'Running' |Get-OperationStatus -WaitToComplete $ready = $False while(!$ready) { $d = Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Production' $ready = ($d.RoleInstanceList[0].InstanceStatus -eq "Ready") -and ($d.Label -eq $label) }

Page 67: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Run Unit test against newly deployed service

• Unit test currently runs against a local service

• Change endpoint in test configuration

● Service name you chose(!)

• Start a new build

• Open build

Page 68: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

PowerShell Script to Remove Deployment

# certificatethumb subscriptionId servicename $certTP = $args[0] $cert = Get-Item cert:\CurrentUser\My\$certTP $sub = $args[1] $servicename = $args[2] Add-PSSnapin AzureManagementToolsSnapIn Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub | Get-Deployment -Slot 'Production' | Set-DeploymentStatus 'Suspended' | Get-OperationStatus -WaitToComplete Remove-Deployment -Slot 'Production' -ServiceName $servicename -SubscriptionId $sub -Certificate $cert | Get-OperationStatus -WaitToComplete

Page 69: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Summary

• Strategy

● Business Model

● Multi-Tenancy

● Make or Buy

• Tactical

● Scale Out Not Up

● Async Rulez!

● Storage Types

● SLAs

• Operational

● Monitoring

● Choose Roles Carefully

● Automation Saves Time

Page 70: 10 Things You Can Do to Use Windows Azure More Effectively...2011/07/10  · Possible with SQL Azure + web role, –not without code • NTFS needed (Drives) • Queues needed 7. Microsoft‘s

Your Feedback is Important

Please fill out a session evaluation form.

Thank you!