• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
605
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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