Download presentation
Presentation is loading. Please wait.
Published byDana Harper Modified over 9 years ago
1
1 Neil Kidd MTC Architect - DPE http://blogs.msdn.com/ NeilKidd Neil Kidd MTC Architect - DPE http://blogs.msdn.com/ NeilKidd
2
The next 40 minutes Understand what Windows Azure is Understand the reasons to use Windows Azure Business and Technical Why Windows Azure is Game Changing Based on my: Experience building Proof of Concepts Discussions with colleagues Talking to customers I’m not from the Product Group
4
Windows Azure
5
Promise of Azure Microsoft runs your application No Upfront Costs Low Admin overhead Kept patched Scale on demand Fault tolerant
6
What does Success 2.0 look like? Users Servers Add some Web Servers Buy bigger SQL Box Buy bigger SQL Box Rearchitect Database to scale out Buy more of everything Unusedcapacity
7
Windows Azure Datacenter Your Service Windows Azure Building Blocks LB InternetInternet Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Site (ASPX, ASMX, WCF) Web Role (ASPX, WCF) Web Role (ASPX, WCF) Worker Service Worker Role LB StorageStorage Tables Blobs Queue
8
Partial Trust “Dev Fabric” Dev Environment
9
HV-enabled Server Core base VHD Image-Based Deployment Host Partition Host partition differencing VHD Guest Partition Guest partition differencing VHD Server Enterprise base VHD Guest partition differencing VHD Application VHD Server Core base VHD Server Enterprise base VHD Maintenance OS App1 Package App3 Package App2 Package Guest Partition
10
Azure Tables
11
Tables - Capabilities What tables don’t do Not relational No Referential Integrity No Joins Limited Queries No Group by No Aggregations Limited Indexes No Transactions What tables can do CheapCheap Very Scalable FlexibleFlexible DurableDurable If these are important to you, use:
12
Data Model Data stored in Tables A Table is a set of Entities (rows) An Entity is a set of Properties (columns) Entity has: PartitionKey – enables scalability RowKey – unique id within the partition the only indexed property Timestamp – for optimistic concurrency 255 properties for your data Max size of 1MB
13
Azure Queues
14
QueueQueue Msg 1 Msg 2 Msg 3 Msg 4 Worker Role PutMessagePutMessage Web Role GetMessage (Timeout) RemoveMessageRemoveMessage Msg 2 Msg 1 Worker Role Msg 2
15
Azure Queues
16
Azure Blobs
17
Block Blob Storage Concepts Key concepts account, container, blob, and blocks BlobContainerAccount IMG001.JPGIMG002.JPGMoviesBlock AAAABlock AAABBlock AAACAccountPicturesMOV1.AVI
18
Blob Namespace Blob URL: http://.blob.core.windows.net/ / http://.blob.core.windows.net/ / Example: Account – sally Container – music BlobName – rock/rush/xanadu.mp3 URL: http://sally.blob.core.windows.net/music/rock/rush/xanadu.mp3 BlobContainerAccount sally pictures IMG001.JPG IMG002.JPG movies MOV1.AVI
19
Azure Compute
20
Azure Compute Instance
21
Taking the Search out of Search & Rescue Man OverBoard Guardian
22
MOB Guardian
23
Built on: Windows Server 2003 SQL Server 2005.Net 2.0 This system is in production It has so far saved the lives of 5 people We were asked if Azure could run the application.
24
Taking the Search out of Search & Rescue Man Overboard Guardian
26
What we did & what we learnt
27
Worker Role Architecture New Msg Queue New Msg Queue Parse & Route Alarm Queue Alarm Queue Pos Rpt Queue Pos Rpt Queue Cancel Queue Cancel Queue Alarm Processor Alarm Processor Pos Report Processor Pos Report Processor Cancel Processor Cancel Processor Incident Table Incident Table Pos Rpt Table Pos Rpt Table Timer Table Timer Table Event Table Event Table Overdue Processor Overdue Processor
28
Pos Rpt Queue Pos Rpt Queue Cancel Queue Cancel Queue Alarm Processor Alarm Processor Pos Report Processor Pos Report Processor Cancel Processor Cancel Processor Incident Table Incident Table Pos Rpt Table Pos Rpt Table Timer Table Timer Table Event Table Event Table Overdue Processor Overdue Processor New Msg Queue New Msg Queue Parse & Route Alarm Queue Alarm Queue Queues for Reliability Alarm Processor Alarm Processor Incident Table Incident Table Pos Rpt Table Pos Rpt Table Event Table Event Table
29
Porting Tables Vessel Position Reporting System – SQL Server VesselIdVesselId xxx-xx1xxx-xx1 TimeTime 10:15 14 Nov LatitudeLatitude 01.2301.23 LongitudeLongitude 53.2453.24 SpeedSpeed 00 xxx-xx1xxx-xx1 10:05 14 Nov 04.4504.4554.3254.3255 xxx-xx1xxx-xx1 09:55 14 Nov 02.3202.3252.3452.3444 xxx-xx2xxx-xx2 10:15 14 Nov 01.2301.2351.2351.231010 To find last pos report for vessel in SQL: select TOP(1) * from PosRpts order by [Time] DESC where VesselId = ??? To find last pos report for vessel in SQL: select TOP(1) * from PosRpts order by [Time] DESC where VesselId = ???
30
Porting Tables Solving this the Azure way PartitionKeyPartitionKey TimeTimeLatitudeLatitudeLongitudeLongitudeSpeedSpeed xxx-xx1xxx-xx1 10:15 14 Nov 01.2301.2353.2453.2400 xxx-xx1xxx-xx1 10:05 14 Nov 04.4504.4554.3254.3255 xxx-xx1xxx-xx1 09:55 14 Nov 02.3202.3252.3452.3444 xxx-xx2xxx-xx2 01.2301.2351.2351.231010 10:15 14 Nov PartitionKeyPartitionKey VesselIdVesselId
31
Porting Tables PartitionKeyPartitionKey RowKeyRowKeyLatitudeLatitudeLongitudeLongitudeSpeedSpeed xxx-xx1xxx-xx1 10:15 14 Nov 01.2301.2353.2453.2400 10:05 14 Nov 04.4504.4554.3254.3255 09:55 14 Nov 02.3202.3252.3452.3444 RowKey needs to be a string 25217564309999999992521756430999999999 25217564369999999992521756436999999999 25217564429999999992521756442999999999 xxx-xx2xxx-xx2 10:15 14 Nov 01.2301.2351.2351.231010 PartitionKeyPartitionKey (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
32
Azure Storage - Tables “That works great, but what if I want to query all the vessels with in 5 miles of a location?”
33
Business model Consumption-based billing Strict SLAs with financial guarantees Global reach Presence in multiple datacenters Geo-distribution Service hosting options Native code support
34
Summary
35
© 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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.