Cloud computing is here to stay, and it is never too soon to begin understanding the impact it will have on application architecture. In this talk we will discuss the two most significant architectural mind-shifts, discussing the key patterns changes generally and seeing how these new cloud patterns map naturally into specific programming practices in Windows Azure. Specifically this relates to (a) Azure Roles and Queues and how to combine them using cloud-friendly design
patterns, and (b) the combination of relational data and non-relational data, how to decide among them, and how to combine them. The goal is for mere mortals to build highly reliable applications that scale economically. The concepts discussed in this talk are relevant for developers and architects building systems for the cloud today, or who want to be prepared to move to the cloud in the future.
This talk was delivered by Bill Wilder at the Vermont Code Camp 2 on 11-Sept-2010.
Unraveling Multimodality with Large Language Models.pdf
Brief bio of Bill Wilder and overview of his Cloud-Native Azure talk
1.
2. Cloud-Native Azure Vermont Code Camp 2 11-September-2010 Copyright (c) 2010, Bill Wilder Boston Azure User Group http://bostonazure.org @bostonazure Bill Wilder http://blog.codingoutloud.com @codingoutloud Boston West Toastmasters http://bwtoastmasters.com Not here with my day job Only Bill’s personal views Building Cloud-Native applications using Windows Azure
13. Application Ownership Slide stolen from Chris Bowen’s talk: Windows Azure: What? Why? And a Peek Under the Hood Application Development Network Addressing Network Load Balancing Hardware Repair OS updates & Patches OS Installation Computational Scalability Storage Scalability Hardware Provisioning Staging / Production High Availability Fault Tolerance Data Center Management Stuff We Might Rather Not Deal With Stuff We Like
21. Web Roles vs. Worker Roles Web Role Worker Role Runs in IIS 7 (always listening) Built using ASP.NET, MVC Good to handle interactive users Addressable over Internet Good for hosting Web API (WCF) Runs Continuously Maps to VM
22.
23. Key Pattern: Roles + Queues Web Role (IIS) Worker Role Queues Blobs Tables
27. Roles + Queues: API Web Role (IIS) Worker Role Queues queue.AddMessage ( new CloudQueueMessage ( statusUpdateMessage)); CloudQueueMessage statusUpdateMessage = queue.GetMessage ( TimeSpan.FromSeconds(10)); … queue.DeleteMessage ( statusUpdateMessage );
28.
29.
30. Persistent Storage Services – Options Type of Data Traditional Azure Way Relational SQL Server SQL Azure Blob File System, or SQL Server Azure Blobs File File System Azure Drives, or Azure Blobs Reliable Queue MSMQ (maybe) Azure Queues Non-Relational Azure Tables
44. Relational Data vs. Azure Tables Approach SQL Azure Azure Tables Normalization Normalized Denormalized (Duplication) (No duplication) (Lots of duplication) Structure Schema Flexible Transactions Distributed Limited scope Responsibility Database Developer Knobs Many Few Scale Up (or Sharding ) Out Cost Reasonable Very reasonable
58. Accessible to mere mortals Less complex, more cost-effective competitive pressure … Your competitors are going to be doing it
59.
60.
61.
62.
Notas do Editor
Bill Wilder has been a professional software developer for more than 20 years. Last year he founded the <a href=&quot;http://bostonazure.org/&quot;>Boston Azure User Group</a>, an in-person cloud computing community which gets together monthly to learn about Windows Azure through prepared talks and hands-on coding. Bill is especially excited about the <a href=&quot;http://blog.codingoutloud.com/2010/06/02/introducing-the-boston-azure-project/&quot;>Boston Azure Project</a>, a collaborative Windows Azure coding project just starting up in the Boston Azure community. Bill is an active community speaker, blogger (<a href=&quot;http://blog.codingoutloud.com&quot;>blog.codingoutloud.com</a>), and tweeter (<a href=&quot;http://twitter.com/codingoutloud&quot;>@codingoutloud</a>) on technology matters and soft skills for technologists, and is also a member of Boston West Toastmasters. Separately, Bill has a day job as an enterprise architect focusing on .NET.
Not representing my day job Several slides stolen borrowed (with permission) from http://www.meetup.com/Boston-cloud-services/files/ (http://files.meetup.com/1460349/azure.ppt – Jim O’Neil’s Windows Azure presentation from March 17, 2010 meetup) + from Chris Bowen’s “roadshow” talk (March 2010)
Scales of Justice: http://commons.wikimedia.org/wiki/File:Scale_of_justice_gold.png Key: http://commons.wikimedia.org/wiki/File:Crypto_key.svg
http://commons.wikimedia.org/wiki/File:Thai_plug.jpg (Thai) http://www.flickr.com/photos/terralance/204793738/ (American, English and continental European plugs all in one! – CC Some rights reserved ) http://commons.wikimedia.org/wiki/File:American_outdoor_electrical_outlet.jpg http://www.flickr.com/photos/onetreehillstudios/2958752337/ (Elecrical plug – CC Some rights reserved )
Smarx “The only difference between a web role and a worker role is that in the web role, IIS (actually Hosted Web Core) gets started and pointed at your app data directory. You can still put code in WebRole.cs that does exactly the same thing as you would do in your worker role, so the decision should really be &quot;Do you want IIS?&quot; If so, use a web role. If not, use a worker role.” One is always running, one is always listening
AJAX – orthogonal concern Worker Role not related to HTML 5 concept of Web Worker
AJAX – orthogonal concern Worker Role not related to HTML 5 concept of Web Worker
AJAX – orthogonal concern Worker Role not related to HTML 5 concept of Web Worker
http://msdn.microsoft.com/en-us/library/ff919703.aspx – Windows Azure CDN http://blogs.msdn.com/b/windowsazure/archive/2010/08/09/20-nodes-available-globally-for-the-windows-azure-cdn.aspx – 20 CDN nodes available across the world
http://msdn.microsoft.com/en-us/library/ff919703.aspx – Windows Azure CDN http://blogs.msdn.com/b/windowsazure/archive/2010/08/09/20-nodes-available-globally-for-the-windows-azure-cdn.aspx – 20 CDN nodes available across the world