0
Introduction to my Windows Azure Application Wallace B. McClure www.scalabledevelopment.com http://www.aspnetpodcast.com h...
Who the heck am I? <ul><li>“ Beginning AJAX with ASP.NET” </li></ul><ul><li>“ Beginning ASP.NET 2.0 AJAX” </li></ul><ul><l...
INETA <ul><li>International .NET Association. </li></ul><ul><li>Approximately 90 NA Speaker’s Bureau Members. </li></ul><u...
Disclaimer: <ul><li>Detail look at my application. I’m learning everyday. </li></ul><ul><li>Overview of additional feature...
(part of) My App <ul><li>Scheduling tweets. </li></ul><ul><li>Multiple twitter ids per user id. </li></ul><ul><li>User -> ...
What the heck is CC? <ul><li>Applications that provide some or all of their processing through a service over common http ...
What is Windows Azure? <ul><li>Introduced at the Microsoft PDC (October, 2008). </li></ul><ul><li>Cloud Services Operating...
Other offerings <ul><li>Amazon </li></ul><ul><ul><li>VM based. </li></ul></ul><ul><ul><li>Scale out to multiple VM Servers...
What is Azure Programmatically? <ul><li>Web Role (Web UI). </li></ul><ul><li>Worker Role (similar to a windows service). <...
Web Role Azure Storage Browser Browser Browser Browser Browser Web Role Web Role N L B Worker Role Worker Role Worker Role...
Tools <ul><li>Develop locally. </li></ul><ul><li>Visual Studio 2008/2010 Project Plugin. </li></ul><ul><li>Development Sto...
Services Provided <ul><li>Web Applications. </li></ul><ul><li>Storage – File, Blobs, and Tables. </li></ul><ul><li>Queues....
Features / Languages Supported <ul><li>Server Side. </li></ul><ul><ul><li>C#. </li></ul></ul><ul><ul><li>VB. </li></ul></u...
APIs <ul><li>REST based. </li></ul><ul><li>High level library. </li></ul><ul><li>ASP.NET Providers. </li></ul>
Data <ul><li>Azure Storage. </li></ul><ul><li>Azure Sql. </li></ul>
Azure Tables <ul><li>Not a standard database. </li></ul><ul><li>Class/entity definitions. (key – object) </li></ul><ul><li...
Azure Sql <ul><li>1/10 gigs. </li></ul><ul><li>Ports. </li></ul><ul><li>Sql Server in the clouds without: </li></ul><ul><u...
Local vs. Hosted <ul><li>Local uses Sql Server Express. </li></ul><ul><ul><li>Sql Server Manager. </li></ul></ul><ul><ul><...
Azure Storage Class Definitions <ul><li>Classes inherit from TableStorage. </li></ul><ul><li>DataServices </li></ul><ul><u...
Indexing Strategies <ul><li>Not simple. </li></ul><ul><li>PartitionKey / RowKey. </li></ul><ul><li>No secondary indexing s...
Changing data schema <ul><li>What is a schema in Azure vs. Sql Server? </li></ul><ul><ul><li>Not fixed. </li></ul></ul><ul...
How do you handle Relationships? <ul><li>Natural Keys? </li></ul><ul><li>Surrogate Keys? </li></ul><ul><li>No foreign key ...
How do you bulk load data? <ul><li>Apps rarely start with no data. </li></ul><ul><li>I wrote a custom app. </li></ul><ul><...
Transactions <ul><li>Partitions and Table must match. </li></ul><ul><li>100 CUD operations. </li></ul><ul><li>4megs max si...
My data strategy <ul><li>User – TwitterID – TwitterEntry. </li></ul><ul><li>TwitterID - PartitionKey: UserName. </li></ul>...
Remote Data <ul><li>REST. </li></ul><ul><li>WSDL </li></ul><ul><ul><li>Basic Authentication. </li></ul></ul><ul><ul><li>WS...
Examples…….. <ul><li>Table Storage. </li></ul><ul><li>Data </li></ul><ul><li>TwtMstr. </li></ul>
Queueing <ul><li>Queueing is GOOD! – Key to scaling out to multiple worker roles. </li></ul><ul><li>Queue messages are ret...
What should your app have in it? <ul><li>Globalization / Localization. </li></ul><ul><li>Services. </li></ul><ul><li>AJAX....
Debugging <ul><li>Local app – Local data. </li></ul><ul><ul><li>Initial development. </li></ul></ul><ul><ul><li>Visual Stu...
Deployment <ul><li>Staging. </li></ul><ul><li>Production. </li></ul>
Gotchas <ul><li>Changes to data schema. </li></ul><ul><li>Query for a record that does not exist. </li></ul><ul><li>FullTr...
Azure Programming Environment <ul><li>ASP.NET 3.5 Service Pack 1. </li></ul><ul><li>Approximately medium trust. </li></ul>...
Status <ul><li>REST APIs. </li></ul><ul><li>StorageClient. </li></ul><ul><li>ASP.NET Providers. </li></ul><ul><li>Table Da...
I want to take an existing app and run it in Azure. <ul><li>You can, within limits. </li></ul><ul><li>Sql Azure is require...
What does Azure physically look like?
Pricing / Availability <ul><li>November, 2008 – PDC. </li></ul><ul><li>November, 2009 – PDC. </li></ul><ul><li>Pricing is ...
Additional Sources of Information <ul><li>Azure Training Kit. </li></ul><ul><li>AZURE Forums on MSDN. </li></ul><ul><li>ht...
Application <ul><li>@twtmstr. </li></ul><ul><li>http://www.twtmstr.com/ . </li></ul><ul><li>Sign up for an account and sen...
<ul><li>http://www.scalabledevelopment.com </li></ul><ul><ul><li>Training. </li></ul></ul><ul><ul><li>Mentoring. </li></ul...
Upcoming SlideShare
Loading in...5
×

Introduction to my Windows Azure Application

624

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
624
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Introduction to my Windows Azure Application"

  1. 1. Introduction to my Windows Azure Application Wallace B. McClure www.scalabledevelopment.com http://www.aspnetpodcast.com http://www.morewally.com Twitter: @wbm
  2. 2. Who the heck am I? <ul><li>“ Beginning AJAX with ASP.NET” </li></ul><ul><li>“ Beginning ASP.NET 2.0 AJAX” </li></ul><ul><li>“ Professional ASP.NET 3.5 Service Pack 1” </li></ul><ul><li>“ Building iPhone Apps for the .NET Developer” </li></ul><ul><li>MVP – ASP.NET. </li></ul><ul><li>ASPInsider. </li></ul><ul><li>ASP.NET Podcast. </li></ul><ul><li>INETA Speaker’s Bureau. </li></ul>
  3. 3. INETA <ul><li>International .NET Association. </li></ul><ul><li>Approximately 90 NA Speaker’s Bureau Members. </li></ul><ul><li>Regional Speaker’s Bureau. </li></ul><ul><li>Webcasts. </li></ul>
  4. 4. Disclaimer: <ul><li>Detail look at my application. I’m learning everyday. </li></ul><ul><li>Overview of additional features that I think are important. </li></ul><ul><li>Most of the code and code ideas are on my blog or ASP.NET Podcast. </li></ul><ul><li>My app is changing. </li></ul>
  5. 5. (part of) My App <ul><li>Scheduling tweets. </li></ul><ul><li>Multiple twitter ids per user id. </li></ul><ul><li>User -> TwitterId -> TwitterEntry. </li></ul>
  6. 6. What the heck is CC? <ul><li>Applications that provide some or all of their processing through a service over common http protocols. </li></ul><ul><li>Some ability to use additional processing as needed. </li></ul><ul><li>Some ability to process data (events, messages, table data, something) outside of user input. </li></ul>
  7. 7. What is Windows Azure? <ul><li>Introduced at the Microsoft PDC (October, 2008). </li></ul><ul><li>Cloud Services Operating Environment from Microsoft. </li></ul><ul><li>Scale Out is the key. </li></ul><ul><li>Web. </li></ul><ul><li>Data. </li></ul><ul><li>Internal Processing. </li></ul><ul><li>Supports: </li></ul><ul><ul><li>.NET. </li></ul></ul><ul><ul><li>Java. </li></ul></ul><ul><ul><li>Ruby. </li></ul></ul><ul><ul><li>SOAP/REST access. </li></ul></ul>
  8. 8. Other offerings <ul><li>Amazon </li></ul><ul><ul><li>VM based. </li></ul></ul><ul><ul><li>Scale out to multiple VM Servers. </li></ul></ul><ul><ul><li>Consumable Web services. </li></ul></ul><ul><li>Google App Engine </li></ul><ul><ul><li>Similar to Microsoft Azure. </li></ul></ul><ul><ul><li>Java/Python languages. </li></ul></ul><ul><li>VMWare </li></ul>
  9. 9. What is Azure Programmatically? <ul><li>Web Role (Web UI). </li></ul><ul><li>Worker Role (similar to a windows service). </li></ul><ul><li>Storage. </li></ul><ul><ul><li>Blobs. </li></ul></ul><ul><ul><li>Data. </li></ul></ul><ul><ul><li>Queues. – key to scalability. </li></ul></ul>
  10. 10. Web Role Azure Storage Browser Browser Browser Browser Browser Web Role Web Role N L B Worker Role Worker Role Worker Role N L B p1 p2 p3
  11. 11. Tools <ul><li>Develop locally. </li></ul><ul><li>Visual Studio 2008/2010 Project Plugin. </li></ul><ul><li>Development Storage. </li></ul><ul><li>Development Fabric. </li></ul><ul><li>Sql Server Express running locally. </li></ul>
  12. 12. Services Provided <ul><li>Web Applications. </li></ul><ul><li>Storage – File, Blobs, and Tables. </li></ul><ul><li>Queues. </li></ul><ul><li>Timed Processing. </li></ul>
  13. 13. Features / Languages Supported <ul><li>Server Side. </li></ul><ul><ul><li>C#. </li></ul></ul><ul><ul><li>VB. </li></ul></ul><ul><ul><li>PHP. </li></ul></ul><ul><li>Web: </li></ul><ul><ul><li>Client side javascript. </li></ul></ul><ul><ul><li>AJAX. </li></ul></ul><ul><ul><li>WCF. </li></ul></ul><ul><ul><li>Webforms/MVC. </li></ul></ul><ul><li>Worker Role. </li></ul>
  14. 14. APIs <ul><li>REST based. </li></ul><ul><li>High level library. </li></ul><ul><li>ASP.NET Providers. </li></ul>
  15. 15. Data <ul><li>Azure Storage. </li></ul><ul><li>Azure Sql. </li></ul>
  16. 16. Azure Tables <ul><li>Not a standard database. </li></ul><ul><li>Class/entity definitions. (key – object) </li></ul><ul><li>Azure Tables are simple. </li></ul><ul><li>No relationships. </li></ul><ul><li>Azure SQL for “more” database services. </li></ul><ul><li>NoSql type datastore. </li></ul><ul><li>Designed for billions of records. </li></ul>
  17. 17. Azure Sql <ul><li>1/10 gigs. </li></ul><ul><li>Ports. </li></ul><ul><li>Sql Server in the clouds without: </li></ul><ul><ul><li>FTS. </li></ul></ul><ul><ul><li>CLR. </li></ul></ul><ul><ul><li>Bulk Upload. </li></ul></ul>
  18. 18. Local vs. Hosted <ul><li>Local uses Sql Server Express. </li></ul><ul><ul><li>Sql Server Manager. </li></ul></ul><ul><ul><li>Rows/Columns. </li></ul></ul><ul><ul><li>Create Tables with the dev tool. </li></ul></ul><ul><li>Hosted Azure. </li></ul><ul><ul><li>Create Tables. </li></ul></ul><ul><ul><li>Objects can have different versions. </li></ul></ul>
  19. 19. Azure Storage Class Definitions <ul><li>Classes inherit from TableStorage. </li></ul><ul><li>DataServices </li></ul><ul><ul><li>CRUD stuff. </li></ul></ul><ul><ul><li>LINQ-lite. </li></ul></ul><ul><ul><li>.ToList<T> seems to be everywhere. </li></ul></ul>
  20. 20. Indexing Strategies <ul><li>Not simple. </li></ul><ul><li>PartitionKey / RowKey. </li></ul><ul><li>No secondary indexing support at this time. Support has been announced. </li></ul><ul><li>Partitions – spread out data and processing. </li></ul><ul><li>Partitions/RowKeys are a good place to put indexes. </li></ul>
  21. 21. Changing data schema <ul><li>What is a schema in Azure vs. Sql Server? </li></ul><ul><ul><li>Not fixed. </li></ul></ul><ul><ul><li>XML. </li></ul></ul><ul><li>How do you handle changes? </li></ul><ul><ul><li>Old objects. </li></ul></ul><ul><ul><li>Code. </li></ul></ul>
  22. 22. How do you handle Relationships? <ul><li>Natural Keys? </li></ul><ul><li>Surrogate Keys? </li></ul><ul><li>No foreign key relationships at this time. </li></ul>
  23. 23. How do you bulk load data? <ul><li>Apps rarely start with no data. </li></ul><ul><li>I wrote a custom app. </li></ul><ul><li>Mike Amundsen resources online. </li></ul>
  24. 24. Transactions <ul><li>Partitions and Table must match. </li></ul><ul><li>100 CUD operations. </li></ul><ul><li>4megs max size. </li></ul>
  25. 25. My data strategy <ul><li>User – TwitterID – TwitterEntry. </li></ul><ul><li>TwitterID - PartitionKey: UserName. </li></ul><ul><li>TwitterEntry – Partitionkey: UserName / TwitterID. </li></ul><ul><li>Relationships?!? </li></ul><ul><ul><li>Surrogate Key? </li></ul></ul><ul><ul><li>Natural Key? </li></ul></ul>
  26. 26. Remote Data <ul><li>REST. </li></ul><ul><li>WSDL </li></ul><ul><ul><li>Basic Authentication. </li></ul></ul><ul><ul><li>WS Auth, under certain circumstances. </li></ul></ul><ul><ul><li>Painful………………. </li></ul></ul>
  27. 27. Examples…….. <ul><li>Table Storage. </li></ul><ul><li>Data </li></ul><ul><li>TwtMstr. </li></ul>
  28. 28. Queueing <ul><li>Queueing is GOOD! – Key to scaling out to multiple worker roles. </li></ul><ul><li>Queue messages are returned to the queue after 30 seconds of not being deleted. </li></ul><ul><li>Example (not in my app, yet). </li></ul>
  29. 29. What should your app have in it? <ul><li>Globalization / Localization. </li></ul><ul><li>Services. </li></ul><ul><li>AJAX. </li></ul>
  30. 30. Debugging <ul><li>Local app – Local data. </li></ul><ul><ul><li>Initial development. </li></ul></ul><ul><ul><li>Visual Studio. </li></ul></ul><ul><li>Local app – Hosted data. </li></ul><ul><ul><li>Visual Studio. </li></ul></ul><ul><li>Hosted app – Hosted data. </li></ul>
  31. 31. Deployment <ul><li>Staging. </li></ul><ul><li>Production. </li></ul>
  32. 32. Gotchas <ul><li>Changes to data schema. </li></ul><ul><li>Query for a record that does not exist. </li></ul><ul><li>FullTrust. </li></ul><ul><li>DateTime. </li></ul><ul><li>Configuring WCF/Membership. </li></ul><ul><ul><li>REST (Silverlight support). </li></ul></ul><ul><ul><li>SOAP/WSDL. </li></ul></ul>
  33. 33. Azure Programming Environment <ul><li>ASP.NET 3.5 Service Pack 1. </li></ul><ul><li>Approximately medium trust. </li></ul><ul><li>Web based applications. </li></ul><ul><li>Client applications can integrate by calling SOAP or REST web services. </li></ul><ul><li>Tools for Visual Studio 2008. </li></ul>
  34. 34. Status <ul><li>REST APIs. </li></ul><ul><li>StorageClient. </li></ul><ul><li>ASP.NET Providers. </li></ul><ul><li>Table Data. </li></ul>
  35. 35. I want to take an existing app and run it in Azure. <ul><li>You can, within limits. </li></ul><ul><li>Sql Azure is required. </li></ul><ul><ul><li>Relatively small db. </li></ul></ul><ul><ul><li>No CLR. </li></ul></ul><ul><ul><li>No FTS. </li></ul></ul>
  36. 36. What does Azure physically look like?
  37. 37. Pricing / Availability <ul><li>November, 2008 – PDC. </li></ul><ul><li>November, 2009 – PDC. </li></ul><ul><li>Pricing is rather complex. </li></ul><ul><ul><li>Traffic. </li></ul></ul><ul><ul><li>CPU utilization. </li></ul></ul>
  38. 38. Additional Sources of Information <ul><li>Azure Training Kit. </li></ul><ul><li>AZURE Forums on MSDN. </li></ul><ul><li>http://www.windowsazure.com/ </li></ul><ul><li>http://blogs.msdn.com/ </li></ul><ul><li>http://www.morewally.com/ </li></ul><ul><li>http://www.aspnetpodcast.com/ </li></ul>
  39. 39. Application <ul><li>@twtmstr. </li></ul><ul><li>http://www.twtmstr.com/ . </li></ul><ul><li>Sign up for an account and send me your feedback! </li></ul>
  40. 40. <ul><li>http://www.scalabledevelopment.com </li></ul><ul><ul><li>Training. </li></ul></ul><ul><ul><li>Mentoring. </li></ul></ul><ul><ul><li>Business Process Automation. </li></ul></ul><ul><ul><li>Software Development. </li></ul></ul><ul><li>Questions/Comments: wallym@scalabledevelopment.com </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×