35
1 Windows Azure Neil Kidd MTC Architect - DPE http://blogs.msdn.com/ NeilKidd

1 Neil Kidd MTC Architect - DPE NeilKidd Neil Kidd MTC Architect - DPE NeilKidd

Embed Size (px)

Citation preview

Page 1: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

1

Windows Azure

Neil KiddMTC Architect - DPEhttp://blogs.msdn.com/NeilKidd

Page 2: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

The next 40 minutes

Understand what Windows Azure is Understand the reasons to use Windows Azure

Business and TechnicalWhy Windows Azure is Game ChangingBased on my:

Experience building Proof of ConceptsDiscussions with colleaguesTalking to customers

I’m not from the Product Group

Page 3: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Azure™ Services Platform

Page 4: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Windows Azure

Operating System for the CloudOS provides services for that platform

The CTP is a platform for writing highly scalable and available applicationsBut, it might become ...

Page 5: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Promise of Azure

Microsoft runs your applicationNo Upfront CostsLow Admin overhead

Kept patchedScale on demandFault tolerant

Page 6: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

What does Success 2.0 look like?

Users

Servers

Add some Web Servers

Buy bigger SQL Box

Rearchitect Database to

scale out

Buy more of everything

Unusedcapacity

Page 7: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Windows Azure Datacenter

Your Service

Windows Azure Building Blocks

LB

Internet

Web Site(ASPX, ASMX, WCF)Web Site

(ASPX, ASMX, WCF)Web Role

(ASPX, WCF)

Worker Service

Worker Role

LB

StorageTables Blobs

Queue

Page 8: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Azure

Partial Trust

“Dev Fabric”

Dev Environment

Page 9: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

HV-enabled Server Core base VHD

Image-Based Deployment

Host Partition

Host partition differencing

VHD

Guest Partition

Guest partition

differencing VHD

Guest partition

differencing VHD

Server Enterprise base VHD

Guest partition

differencing VHD

Application VHD

Application VHD

Application VHD

Server Core base VHD

Server Enterprise base VHD

Maintenance OS

App1 Package App3 Package App2 Package

Guest Partition Guest Partition

Page 10: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Azure Tables

Page 11: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Tables - CapabilitiesWhat tables don’t do

Not relationalNo Referential Integrity

No JoinsLimited Queries

No Group byNo AggregationsLimited IndexesNo Transactions

What tables can do

CheapVery Scalable

FlexibleDurable

If these are important to you, use:

Page 12: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Data Model

Data stored in TablesA Table is a set of Entities (rows)An Entity is a set of Properties (columns)

Entity has:PartitionKey – enables scalabilityRowKey – unique id within the partition

the only indexed property Timestamp – for optimistic concurrency255 properties for your dataMax size of 1MB

Page 13: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Azure Queues

Page 14: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

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

Page 15: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Azure Queues

Queues guarantee a message will be processed at least once.Allows recovery in the event of errorsWrite your code to expect failures e.g.

Inserts/Deletes might fail as already performedData in inconsistent state (part processed)

Page 16: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Azure Blobs

Page 17: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Block

Blob Storage ConceptsKey concepts account, container, blob, and blocks

BlobContainerAccount

IMG001.JPG

IMG002.JPG

Movies

Block AAAA

Block AAAB

Block AAAC

Account

Pictures

MOV1.AVI

Page 18: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Blob NamespaceBlob URL:http://<Account>.blob.core.windows.net/<Container>/<BlobName>Example:

Account – sallyContainer – musicBlobName – rock/rush/xanadu.mp3URL: http://sally.blob.core.windows.net/music/rock/rush/xanadu.mp3

BlobContainerAccount

sally

pictures

IMG001.JPG

IMG002.JPG

movies MOV1.AVI

Page 19: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Azure Compute

Page 20: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Azure Compute Instance

Tech Preview offers one type of VMPlatform: 64-bit Windows Server 2008CPU: 1.5-1.7 GHz x64 equivalentMemory: 1.7 GBNetwork: 100 MbpsTransient local storage: 250 GBAzure storage also available: 50 GB

Full service model will support more options

Page 21: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Taking the Search out of Search & Rescue

Man OverBoard Guardian

Case Study

Page 22: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

MOB Guardian

Page 23: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

MOB Guardian

Built on:Windows Server 2003SQL Server 2005.Net 2.0

This system is in productionIt has so far saved the lives of 5 peopleWe were asked if Azure could run the application.

Page 24: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Taking the Search out of Search & Rescue

Man Overboard Guardian

video

Page 25: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd
Page 26: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

What we did & what we learnt

Page 27: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Worker Role Architecture

NewMsg

Queue

Parse & Route

AlarmQueue

PosRpt

Queue

CancelQueue

AlarmProcessor

Pos ReportProcessor

CancelProcessor

IncidentTable

Pos RptTable

TimerTable

EventTable

OverdueProcessor

Page 28: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

PosRpt

Queue

CancelQueue

AlarmProcessor

Pos ReportProcessor

CancelProcessor

IncidentTable

Pos RptTable

TimerTable

EventTable

OverdueProcessor

NewMsg

Queue

Parse & Route

AlarmQueue

Queues for Reliability

AlarmProcessor

IncidentTable

Pos RptTable

EventTable

Page 29: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Porting Tables

Vessel Position Reporting System – SQL Server

VesselId

xxx-xx1

Time

10:15 14 Nov

Latitude

01.23

Longitude

53.24

Speed

0

xxx-xx1 10:05 14 Nov 04.45 54.32 5

xxx-xx1 09:55 14 Nov 02.32 52.34 4

xxx-xx2 10:15 14 Nov 01.23 51.23 10

To find last pos report for vessel in SQL:

select TOP(1) * from PosRptsorder by [Time] DESCwhere VesselId = ???

Page 30: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Porting Tables

Solving this the Azure wayPartitionKey

Time Latitude Longitude Speed

xxx-xx1 10:15 14 Nov 01.23 53.24 0

xxx-xx1 10:05 14 Nov 04.45 54.32 5

xxx-xx1 09:55 14 Nov 02.32 52.34 4

xxx-xx2 01.23 51.23 1010:15 14 Nov

PartitionKey

VesselId

Page 31: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Porting Tables

PartitionKey

RowKey Latitude Longitude Speed

xxx-xx1

10:15 14 Nov 01.23 53.24 0

10:05 14 Nov 04.45 54.32 5

09:55 14 Nov 02.32 52.34 4

RowKey needs to be a string

2521756430999999999

2521756436999999999

2521756442999999999

xxx-xx2

10:15 14 Nov 01.23 51.23 10

PartitionKey

10:15 14 Nov(DateTime.MaxValue – time).Ticks.ToString ()

Stored in-order:Just need to do a

top on the partition

time.Ticks.ToString ()

100 nanoseconds!Makes it descending

Page 32: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Azure Storage - Tables

Store in new tableMind set:

SQL Server – normalised inserts, complex queriesAzure – Multiple inserts, simple queries

Get creative with the partition and row key

“That works great, but what if I want to query all the

vessels with in 5 miles of a location?”

Page 33: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Coming In The Commercial Release …Calendar 2009

Business modelConsumption-based billingStrict SLAs with financial guarantees

Global reachPresence in multiple datacentersGeo-distribution

Service hosting optionsNative code support

Page 34: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

Summary

Windows Azure CTP is a:“Platform for writing highly scalable and available applications”

Apply for tokenshttp://azure.net

Opens up a new wave of inovation

Page 35: 1 Neil Kidd MTC Architect - DPE  NeilKidd Neil Kidd MTC Architect - DPE  NeilKidd

© 2009 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.