WordPress Websites for Engineers: Elevate Your Brand
Developing For The Windows Azure Platform
1. Marcus Tillett
T:@drmarcustillett
www.dotnetsolutions.co.uk
2. Dive into the Windows Azure Platform
DEMO: Migrating an existing on-premise
application to Azure
.NET development differences with the
Windows Azure Platform
5. Application
Compute Storage
Config Fabric
AppFabric
Applications
SQL Azure
Windows Azure
Applications
Server Desktop Mobile Others
6.
7. Public Internet
IIS7
Web Hosting
Web Role Web Services
Load
Balancer
Storage Services
8. Public Internet
Self hosted
“Windows
Worker Services”
Role
Load Infinite Loop
Balancer
Storage Service
9.
10. Open - REST interface
HTTP or HTTPS
Authenticated using secret keys
Can access from outside Azure
All data replicated at least 3 times
Table Storage Blob Storage Queue Drive
11.
12. Provide access rights to containers and blobs
Start
Expiry
Permission (r, w, d, l)
Resource (c, b)
13. No limits on number of Queues
Message:
Max size 8kb
Operations:
▪ Enqueue
▪ Dequeue
▪ RemoveMessage
14.
15. Queues guarantee a message will be
processed at least once.
Allows recovery in the event of errors
Message come back to life if not Removed
Approximates First In First Out queue
16.
17. Partition Key for Scale
Row Key for performance
Non-RowKey queries result in a partition scan
Row Key and Partition Key as strings
Data sorted by Row Key within a Partition
Denormalise the data for performance
These aren’t SQL tables
18. PartitionKey RowKey Timestamp ReleaseDate
(Category) (Title)
Action Fast & Furious … 2009
Action The Bourne … 2007
Ultimatum
… … … …
Animation Open Season 2 … 2009
Fast query by
Animation The Ant Bully … 2006
Partition Key and
… … … …
Row Key Comedy Office Space … 1999
… … … …
SciFi X-Men Origins: … 2009
Wolverine
… … … …
War Defiance … 2008
19. Film_ByCategory Film_ByReleaseDate
PartitionKey RowKey ReleaseDate PartitionKey RowKey Category
(Category) (Title) (ReleaseDate) (Title)
Action Fast & Furious 2009 2009 Fast & Furious Action
Action The Bourne 2007 2007 The Bourne Action
Ultimatum Ultimatum
… … … … … …
Animation Open Season 2 2009 2009 Open Season 2 Animation
Animation The Ant Bully 2006 2006 The Ant Bully Animation
… … … … … …
Comedy Office Space 1999 1999 Office Space Comedy
… … … … … …
SciFi X-Men Origins: 2009 2009 X-Men Origins: SciFi
Wolverine Wolverine
22. Partition RowKey Title Date Approve Cost Description Amount
Key Centre
123 Client 1/6/10 Y 123
meeting
123 1 Travel £15.00
123 2 Lunch £10.00
123 3 Drinks £25.00
456 Training 5/8/10 N 123
course
.... .... .... .... .... .... .... ....
23. Motivation:
Ensure that modifications to a master record and its
item records are performed in a transactional way.
Implementation :
Multiple entity types stored in single table with the
same partition key can utilise the Windows Azure
Table entity group transaction feature that provides
batch transactions on entities.
Uses:
When a transactional operation is required.
24.
25.
26. Retry when connections fail
Expect network latency (e.g. SQL Azure)
Be stateless
Design for failure
Don’t rely on local storage
Allow for restart in inconsistent state
Be aware of the emerging patterns for Azure
http://bit.ly/9Wsrk
Choose you Table partition key carefully
27. Development Fabric
Differences from development and live
Test early and often
Limited registry and disk access
Logging and Diagnostics
Configuration
app and web config for runtime static configuration
Azure configuration for simple strings
Roll your own for more complex configuration
Deployment
Only core .NET assemblies are pre-deployed in Azure. You
need to deploy any custom libraries yourself.
28. Transact-SQL Features Supported Transact-SQL Features Unsupported
Constants
Constraints
Cursors Common Language Runtime (CLR)
Index management and rebuilding Database file placement
indexes Database mirroring
Local temporary tables Distributed queries
Reserved keywords Distributed transactions
Stored procedures Filegroup management
Statistics management Global temporary tables
Transactions SQL Server configuration options
Triggers SQL Server Service Broker
Tables, joins, and table variables System tables
User-defined functions Trace Flags
Views, including sys.synonyms view
Spatial data and indexes (June 2010)
29. Further reading
http://www.azure.com/
http://blog.smarx.com/
Signup for Azure
http://www.microsoft.com/windowsazure/offers/
(Credit card required)
Ensure that you complete delete a deployment –
otherwise you will be charged!
Join your local user group
UK (http://ukazurenet.com)
Buy a book
30. http://tinyurl.com/azurebook
“Thinking of... Delivering
Solutions on the Windows
Azure Platform?”
ISBN: 0956155634
31. Marcus Tillett
T:@drmarcustillett
www.dotnetsolutions.co.uk