Upload
dana-harper
View
227
Download
0
Embed Size (px)
Citation preview
1
Windows Azure
Neil KiddMTC Architect - DPEhttp://blogs.msdn.com/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
Azure™ Services Platform
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 ...
Promise of Azure
Microsoft runs your applicationNo Upfront CostsLow Admin overhead
Kept patchedScale on demandFault tolerant
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
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
Azure
Partial Trust
“Dev Fabric”
Dev Environment
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
Azure Tables
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:
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
Azure Queues
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
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)
Azure Blobs
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
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
Azure Compute
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
Taking the Search out of Search & Rescue
Man OverBoard Guardian
Case Study
MOB Guardian
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.
Taking the Search out of Search & Rescue
Man Overboard Guardian
video
What we did & what we learnt
Worker Role Architecture
NewMsg
Queue
Parse & Route
AlarmQueue
PosRpt
Queue
CancelQueue
AlarmProcessor
Pos ReportProcessor
CancelProcessor
IncidentTable
Pos RptTable
TimerTable
EventTable
OverdueProcessor
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
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 = ???
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
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
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?”
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
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
© 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.