SlideShare a Scribd company logo
Bill Wilder – brief bio Bill Wilder has been a professional software developer for more than 20 years. Last year he founded the  Boston Azure User Group , 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  Boston Azure Project , a collaborative Windows Azure coding project just starting up in the Boston Azure community. Bill is an active community speaker, blogger ( blog.codingoutloud.com ), and tweeter ( @codingoutloud ) 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.
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
Agenda What is the Cloud What is Azure How Cloud-Native Azure is different Roles and queues Tables and SQL Overview of Tables, Blobs, Queues, Drives Capabilities Geographic distribution Pay As You Go billing model Azure Table Storage vs. Relational SQL Azure Scenarios for combining capabilities Focus is on CONCEPTS moreso than details
Agenda ? 
What is “the cloud”? ?
The Cloud Opportunity Replace “your” infrastructure with “their” infrastructure Save money, shift risk, shorten time-to-market
The Cloud Provides… Efficient Scalability Elasticity on Demand Complexity Reduction through Abstraction A few new challenges
Containers! http://www.microsoft.com/showcase/en/us/details/36db4da6-8777-431e-aefb-316ccbb63e4e
Global investment in Data Centers Vendors build out – so you don’t have to (increasingly…) “Containers” packed with Fast, multi-core processors Cheap, commodity hardware (memory, disk) Google’s famously bare-bones hardware Locations selected for efficiency considering Cheap cooling, Cheap electricity Geographical coverage Competitive bidding  optimizes for Containers Delivery “ready to plug-in” & “ready to unplug”
 
Most $$$ part of Software System?
Massive Automation, Efficiency Cross-Data Center Monitoring Software and Hardware Virtualization Automated Deployment (across Data Centers) HUGE win for customers lowering real costs Operational efficiency – you    them 100:1    10,000:1
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
Utility Computing http://commons.wikimedia.org/wiki/File:Thai_plug.jpg
Business Model Innovation DIFFERENTIATOR is  business model  that permits  bursting system capacity  up and down  on demand without penalty Just like electricity (without the brownouts?) Avoids need for  Elasticity of Customer’s Work Force No such thing as hire/fire at Internet speed
Req - Business Partners, Customers Requirements Dev - similar Ops – square root Arch - Architecture in the middle We know the cost of storing a byte And we don’t have “max * 1 ½ “ style constraints Fuzzy business requirements
Cloud-Native Applications Effort focuses on business functionality Development is highly productive Time-to-market is short Modification is straight-forward Infrastructure is not a limiting factor Cost structure is a good fit Downtime is not necessary Scale is efficient Innovation / experimentation is enabled
Azure Cloud Platform The rise of focused, specialized services Really good at one thing True of other Cloud Platforms “ Scalable” Persistent Storage abstractions Set of Services Illusion of  infinite  scale out Same performance with x clients as with 10x as with 100x as with 1000x as with … Billing model: pay only for what you use Friction-free access to add’l  or less   storage
Azure Storage Services in Concert
Scaling Out 
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
Azure Services – Examples Web Roles Worker Roles Queues Combining Roles and Queues Asynchronous Work Queue Pattern Scale Out Resilient to failure
Key Pattern: Roles + Queues Web Role (IIS) Worker Role Queues Blobs Tables
Canonical Example: Thumbnails Web Role (IIS) Worker Role Queues Blobs Tables
Adding to Queue -  Conceptual
Adding to Queue -  Actual Azure Blob Storage
Roles + Queues: API Web Role (IIS) Worker Role Queues queue.AddMessage ( new  CloudQueueMessage ( statusUpdateMessage)); CloudQueueMessage     statusUpdateMessage = queue.GetMessage ( TimeSpan.FromSeconds(10)); …  queue.DeleteMessage ( statusUpdateMessage );
Azure Queue Storage Service for RELIABLE message delivery 7 days = default TTL for item to stay in queue 30 seconds = default “invisibility window” 8 KB = max size of a queued item 500 = approx number of transactions a queue can handle per second Beware of “spinning” – may get throttled, disabled N = number of queues you can have (N >> 1)
 
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
Azure Storage Services Family of specialized, complementary storage services Abstractions High level services Blobs + Queues + Tables + Drives Many features in common Plus each with its own differentiating features
Azure Storage – Common Features RESTful API (http + XML + “resources”) http://bostonazure.table.core.windows.net/ TableFoo?comp=list Operations - REST/http verb support C reate = PUT  R ead = GET U pdate = POST  D elete = DELETE Language agnostic Client library provided for .NET by Microsoft Many other client libraries available
Authentication Requirements PUT, POST, DELETE are always Authenticated GET is usually Authenticated Exception possible for Blobs  Blob GET access can be public if Blob Container allows for Unauthenticated GET requests Sign http header using Access Key from Portal Don’t need to code this (use Microsoft-provided .NET client library) Key lives in an Azure xml config file
Developer Portal for Keys https://windows.azure.com/
Storage Keys for Authentication
Azure Storage – Common Features Tables, Blobs, Queues, Drives all share the following features / characteristics Are all created under your  Azure Storage Account Storage Account is usually created through the Developer Portal Or API
Azure Storage – Common Features Support for metadata (8k, unstructured) Replicated so there are (at least) 3 copies Within in a single data center Strongly consistent programming model Easy, fast to dynamically add new containers No limit to number of instances of blobs, tables, table rows, or queues Pay As You Go billing model
Azure Blob Storage The place to put ANY LARGE OBJECT Private or Public Public blobs can be anonymously accessed Images, videos, CSS files Need not be binary Public blobs can be cached in Azure CDN 20 locations around the world Different locations than data centers Time-limited signed-access available “ You have until tomorrow to download this video”
Azure Blob Storage Two types of Azure Blobs “ Block Blob” Parallel upload scenarios Resume download scenarios Up to  200 GB “ Page Blob” Random access scenarios Azure Drives Up to  1000 GB
Azure Drive Storage Disk Drive simulation in cloud Façade over an Azure Blob Specifically, Page Blob type Legacy-focused, not “cloud native” Limits same as Page Blob limits 1000 GB = 1 TB
Azure Table Storage Best place for granular, semi-structured data No rigid database schema Fast and easy to instantiate Strongly Consistent No performance lag Programming model is WCF Data Services All data access and data updates LINQ
Azure Table Storage Storage Account Table  [*] Entity  [*, 1 MB data]  PartitionKey + RowKey Property  [255x] Name/Value/Type Up to 64k
Azure Table Storage Partition Key Along a “logical grouping” – a “shard” PartitionKey value of up to 64 KB Row Key Identify specific row within a partition RowKey value is String of up to 64 KB Table access requires Partition Key + Row Key Not to mention (cryptographic)  Access Key  (for the digital signing of the http header)
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
Replication
All Azure Storage is Replicated Resilient in case of failure “ All data replicated multiple times” – Sriram Krishnan,  Programming Windows Azure , p130+ Supports scale-out Replicate specific data if it gets too hot to keep up Geographic distribution of replication Currently up to you
Replicated != Backed up SQL Azure and Azure Storage data have 3 copies Within a data center (?) But not equivalent to “all data is backed up” History Software bug Compliance
 
Pay As You Go – Data Transfer SQL Azure and Azure Storage Data in motion… North America and Europe regions $0.10 per GB in $0.15 per GB out (different costs in Asia) No charge for transfer within a data center
Pay As You Go – Storage Azure Storage Data at rest… Storage $0.15 per GB stored per month $0.01 per 10,000 storage transactions Applies equally to: Queues Tables Blobs
SQL Azure Pricing Data at rest… 1 GB relational database = $10 / month 10 GB relational database = $100 / month 50 GB version coming
SQL Azure vs. Azure Storage Review and Simple Analysis… 1 GB storage per month: $10 = SQL Azure  $0.15 = Azure Storage 10/0.15 =  66.67x Are the features worth the cost?
Pay As You Go – CDN Content Delivery Network (CDN) $0.15 per GB for data transfers from European and North American locations $0.20 per GB for data transfers from other locations $0.01 per 10,000 transactions Same or less expensive than straight-to-blob costs
Geography
Geography Matters Select Data Center near customers Keep data resources near compute resources Currently 6 data centers from which to choose Additional 20 sites for CDN
Geography Matters Azure data centers North Central US South Central US West Europe North Europe East Asia Southeast Asia Anywhere options for: US, Europe, Asia Data Center choices
Not new, but…
Accessible to mere mortals Less complex, more cost-effective     competitive pressure … Your competitors are going to be doing it
Questions? ?
BostonAzure.org Boston Azure cloud user group Focused on Microsoft’s cloud solution Next meeting: 6-8 PM Thurs Sept 23 nd  2010 Hacking on “Boston Azure Project” Intro to Cloud Computing on Windows Azure Meetings  usually  4 th  Thursday of month No cost; food; great topics; growing community; wifi Join email list:  http://bostonazure.org Follow on Twitter:  @bostonazure
Slides available from Bill’s blog http://blog.codingoutloud.com   hmbl.me  is URL shortener running on Azure: http://hmbl.me/2FPW3L   http://blog.codingoutloud.com/2010/07/14/key-architectural-design-pattern-for-cloud-native-azure-apps
Bill Wilder @codingoutloud http://blog.codingoutloud.com

More Related Content

PPTX
Understanding The Azure Platform Jan
PPTX
A Lap Around Azure
PPTX
Understanding The Azure Platform March 2010
PPTX
Understanding the Windows Azure Platform - Dec 2010
PPTX
Above the cloud: Big Data and BI
PDF
Azure - Data Platform
PDF
10 things ever architect should know about the Windows Azure Platform - ericnel
PPTX
What's New for the Windows Azure Developer? Lots!!
Understanding The Azure Platform Jan
A Lap Around Azure
Understanding The Azure Platform March 2010
Understanding the Windows Azure Platform - Dec 2010
Above the cloud: Big Data and BI
Azure - Data Platform
10 things ever architect should know about the Windows Azure Platform - ericnel
What's New for the Windows Azure Developer? Lots!!

What's hot (20)

PPTX
Scaling Big While Sleeping Well
PPTX
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
PPTX
Combining Private and Public Clouds into Meaningful Hybrids
PPTX
Architecting Solutions Leveraging The Cloud
PPTX
Azure Data platform
PPTX
The Essentials of Building Cloud-Based Web Apps with Azure
PPTX
Architecting Cloudy Applications
PPTX
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
PPTX
Architecting For The Windows Azure Platform
PPTX
The Hybrid Windows Azure Application
PDF
Azure Cloud Dev Camp - Introduction
PPTX
Windows Azure: Lessons From the Field
PPTX
Microsoft Database Options
PDF
Data Platform Overview
PPTX
Public Cloud Platforms for .NET Developers
PPTX
Technology Roadmap by ericnel
PPTX
Windows azure camp - Kolkata
PPTX
Azure Data Storage
PPT
SQL Azure Dec Update
PPTX
Sky High With Azure
Scaling Big While Sleeping Well
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Combining Private and Public Clouds into Meaningful Hybrids
Architecting Solutions Leveraging The Cloud
Azure Data platform
The Essentials of Building Cloud-Based Web Apps with Azure
Architecting Cloudy Applications
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Architecting For The Windows Azure Platform
The Hybrid Windows Azure Application
Azure Cloud Dev Camp - Introduction
Windows Azure: Lessons From the Field
Microsoft Database Options
Data Platform Overview
Public Cloud Platforms for .NET Developers
Technology Roadmap by ericnel
Windows azure camp - Kolkata
Azure Data Storage
SQL Azure Dec Update
Sky High With Azure
Ad

Similar to Building Cloud-Native Applications with Microsoft Windows Azure (20)

PPTX
Windows azure camp
PPTX
Windows Azure
PPTX
Azure, Cloud Computing & Services
PPTX
Microsoft cloud 101
PPTX
Ukfs Snr Dev Arch Forum Pres2 St
PPTX
Design Considerations For Storing With Windows Azure
PDF
Cloud computing Azure
PPT
ArcReady - Architecting For The Cloud
PPTX
Azure rev002
PPTX
Introduction to Azure Cloud Storage
PPTX
Azure for ug
PPT
Azure Software As Service
PPTX
Wisconsin .NET UG - Windows Azure
PPTX
Cloud computing and the Windows Azure Services Platform (KU Leuven)
PPTX
Microsoft Partner Roadshow - To the Cloud
PPTX
Azure Fundamentals Part 2
 
PPTX
MSDN - Converting an existing ASP.NET application to Windows Azure
PDF
Building Real World Application with Azure
PPT
Arc Ready Cloud Computing
PPTX
Windows Azure Platform Overview
Windows azure camp
Windows Azure
Azure, Cloud Computing & Services
Microsoft cloud 101
Ukfs Snr Dev Arch Forum Pres2 St
Design Considerations For Storing With Windows Azure
Cloud computing Azure
ArcReady - Architecting For The Cloud
Azure rev002
Introduction to Azure Cloud Storage
Azure for ug
Azure Software As Service
Wisconsin .NET UG - Windows Azure
Cloud computing and the Windows Azure Services Platform (KU Leuven)
Microsoft Partner Roadshow - To the Cloud
Azure Fundamentals Part 2
 
MSDN - Converting an existing ASP.NET application to Windows Azure
Building Real World Application with Azure
Arc Ready Cloud Computing
Windows Azure Platform Overview
Ad

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
cuic standard and advanced reporting.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation theory and applications.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPT
Teaching material agriculture food technology
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
KodekX | Application Modernization Development
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Modernizing your data center with Dell and AMD
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
cuic standard and advanced reporting.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation theory and applications.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Teaching material agriculture food technology
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
KodekX | Application Modernization Development
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Mobile App Security Testing_ A Comprehensive Guide.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectral efficient network and resource selection model in 5G networks
MYSQL Presentation for SQL database connectivity
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
NewMind AI Monthly Chronicles - July 2025
Modernizing your data center with Dell and AMD
Encapsulation_ Review paper, used for researhc scholars
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Building Cloud-Native Applications with Microsoft Windows Azure

  • 1. Bill Wilder – brief bio Bill Wilder has been a professional software developer for more than 20 years. Last year he founded the Boston Azure User Group , 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 Boston Azure Project , a collaborative Windows Azure coding project just starting up in the Boston Azure community. Bill is an active community speaker, blogger ( blog.codingoutloud.com ), and tweeter ( @codingoutloud ) 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.
  • 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
  • 3. Agenda What is the Cloud What is Azure How Cloud-Native Azure is different Roles and queues Tables and SQL Overview of Tables, Blobs, Queues, Drives Capabilities Geographic distribution Pay As You Go billing model Azure Table Storage vs. Relational SQL Azure Scenarios for combining capabilities Focus is on CONCEPTS moreso than details
  • 5. What is “the cloud”? ?
  • 6. The Cloud Opportunity Replace “your” infrastructure with “their” infrastructure Save money, shift risk, shorten time-to-market
  • 7. The Cloud Provides… Efficient Scalability Elasticity on Demand Complexity Reduction through Abstraction A few new challenges
  • 9. Global investment in Data Centers Vendors build out – so you don’t have to (increasingly…) “Containers” packed with Fast, multi-core processors Cheap, commodity hardware (memory, disk) Google’s famously bare-bones hardware Locations selected for efficiency considering Cheap cooling, Cheap electricity Geographical coverage Competitive bidding optimizes for Containers Delivery “ready to plug-in” & “ready to unplug”
  • 10.  
  • 11. Most $$$ part of Software System?
  • 12. Massive Automation, Efficiency Cross-Data Center Monitoring Software and Hardware Virtualization Automated Deployment (across Data Centers) HUGE win for customers lowering real costs Operational efficiency – you  them 100:1  10,000:1
  • 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
  • 15. Business Model Innovation DIFFERENTIATOR is business model that permits bursting system capacity up and down on demand without penalty Just like electricity (without the brownouts?) Avoids need for Elasticity of Customer’s Work Force No such thing as hire/fire at Internet speed
  • 16. Req - Business Partners, Customers Requirements Dev - similar Ops – square root Arch - Architecture in the middle We know the cost of storing a byte And we don’t have “max * 1 ½ “ style constraints Fuzzy business requirements
  • 17. Cloud-Native Applications Effort focuses on business functionality Development is highly productive Time-to-market is short Modification is straight-forward Infrastructure is not a limiting factor Cost structure is a good fit Downtime is not necessary Scale is efficient Innovation / experimentation is enabled
  • 18. Azure Cloud Platform The rise of focused, specialized services Really good at one thing True of other Cloud Platforms “ Scalable” Persistent Storage abstractions Set of Services Illusion of infinite scale out Same performance with x clients as with 10x as with 100x as with 1000x as with … Billing model: pay only for what you use Friction-free access to add’l or less storage
  • 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. Azure Services – Examples Web Roles Worker Roles Queues Combining Roles and Queues Asynchronous Work Queue Pattern Scale Out Resilient to failure
  • 23. Key Pattern: Roles + Queues Web Role (IIS) Worker Role Queues Blobs Tables
  • 24. Canonical Example: Thumbnails Web Role (IIS) Worker Role Queues Blobs Tables
  • 25. Adding to Queue - Conceptual
  • 26. Adding to Queue - Actual Azure Blob Storage
  • 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. Azure Queue Storage Service for RELIABLE message delivery 7 days = default TTL for item to stay in queue 30 seconds = default “invisibility window” 8 KB = max size of a queued item 500 = approx number of transactions a queue can handle per second Beware of “spinning” – may get throttled, disabled N = number of queues you can have (N >> 1)
  • 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
  • 31. Azure Storage Services Family of specialized, complementary storage services Abstractions High level services Blobs + Queues + Tables + Drives Many features in common Plus each with its own differentiating features
  • 32. Azure Storage – Common Features RESTful API (http + XML + “resources”) http://bostonazure.table.core.windows.net/ TableFoo?comp=list Operations - REST/http verb support C reate = PUT R ead = GET U pdate = POST D elete = DELETE Language agnostic Client library provided for .NET by Microsoft Many other client libraries available
  • 33. Authentication Requirements PUT, POST, DELETE are always Authenticated GET is usually Authenticated Exception possible for Blobs Blob GET access can be public if Blob Container allows for Unauthenticated GET requests Sign http header using Access Key from Portal Don’t need to code this (use Microsoft-provided .NET client library) Key lives in an Azure xml config file
  • 34. Developer Portal for Keys https://windows.azure.com/
  • 35. Storage Keys for Authentication
  • 36. Azure Storage – Common Features Tables, Blobs, Queues, Drives all share the following features / characteristics Are all created under your Azure Storage Account Storage Account is usually created through the Developer Portal Or API
  • 37. Azure Storage – Common Features Support for metadata (8k, unstructured) Replicated so there are (at least) 3 copies Within in a single data center Strongly consistent programming model Easy, fast to dynamically add new containers No limit to number of instances of blobs, tables, table rows, or queues Pay As You Go billing model
  • 38. Azure Blob Storage The place to put ANY LARGE OBJECT Private or Public Public blobs can be anonymously accessed Images, videos, CSS files Need not be binary Public blobs can be cached in Azure CDN 20 locations around the world Different locations than data centers Time-limited signed-access available “ You have until tomorrow to download this video”
  • 39. Azure Blob Storage Two types of Azure Blobs “ Block Blob” Parallel upload scenarios Resume download scenarios Up to 200 GB “ Page Blob” Random access scenarios Azure Drives Up to 1000 GB
  • 40. Azure Drive Storage Disk Drive simulation in cloud Façade over an Azure Blob Specifically, Page Blob type Legacy-focused, not “cloud native” Limits same as Page Blob limits 1000 GB = 1 TB
  • 41. Azure Table Storage Best place for granular, semi-structured data No rigid database schema Fast and easy to instantiate Strongly Consistent No performance lag Programming model is WCF Data Services All data access and data updates LINQ
  • 42. Azure Table Storage Storage Account Table [*] Entity [*, 1 MB data] PartitionKey + RowKey Property [255x] Name/Value/Type Up to 64k
  • 43. Azure Table Storage Partition Key Along a “logical grouping” – a “shard” PartitionKey value of up to 64 KB Row Key Identify specific row within a partition RowKey value is String of up to 64 KB Table access requires Partition Key + Row Key Not to mention (cryptographic) Access Key (for the digital signing of the http header)
  • 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
  • 46. All Azure Storage is Replicated Resilient in case of failure “ All data replicated multiple times” – Sriram Krishnan, Programming Windows Azure , p130+ Supports scale-out Replicate specific data if it gets too hot to keep up Geographic distribution of replication Currently up to you
  • 47. Replicated != Backed up SQL Azure and Azure Storage data have 3 copies Within a data center (?) But not equivalent to “all data is backed up” History Software bug Compliance
  • 48.  
  • 49. Pay As You Go – Data Transfer SQL Azure and Azure Storage Data in motion… North America and Europe regions $0.10 per GB in $0.15 per GB out (different costs in Asia) No charge for transfer within a data center
  • 50. Pay As You Go – Storage Azure Storage Data at rest… Storage $0.15 per GB stored per month $0.01 per 10,000 storage transactions Applies equally to: Queues Tables Blobs
  • 51. SQL Azure Pricing Data at rest… 1 GB relational database = $10 / month 10 GB relational database = $100 / month 50 GB version coming
  • 52. SQL Azure vs. Azure Storage Review and Simple Analysis… 1 GB storage per month: $10 = SQL Azure $0.15 = Azure Storage 10/0.15 = 66.67x Are the features worth the cost?
  • 53. Pay As You Go – CDN Content Delivery Network (CDN) $0.15 per GB for data transfers from European and North American locations $0.20 per GB for data transfers from other locations $0.01 per 10,000 transactions Same or less expensive than straight-to-blob costs
  • 55. Geography Matters Select Data Center near customers Keep data resources near compute resources Currently 6 data centers from which to choose Additional 20 sites for CDN
  • 56. Geography Matters Azure data centers North Central US South Central US West Europe North Europe East Asia Southeast Asia Anywhere options for: US, Europe, Asia Data Center choices
  • 58. Accessible to mere mortals Less complex, more cost-effective  competitive pressure … Your competitors are going to be doing it
  • 60. BostonAzure.org Boston Azure cloud user group Focused on Microsoft’s cloud solution Next meeting: 6-8 PM Thurs Sept 23 nd 2010 Hacking on “Boston Azure Project” Intro to Cloud Computing on Windows Azure Meetings usually 4 th Thursday of month No cost; food; great topics; growing community; wifi Join email list: http://bostonazure.org Follow on Twitter: @bostonazure
  • 61. Slides available from Bill’s blog http://blog.codingoutloud.com hmbl.me is URL shortener running on Azure: http://hmbl.me/2FPW3L http://blog.codingoutloud.com/2010/07/14/key-architectural-design-pattern-for-cloud-native-azure-apps
  • 62. Bill Wilder @codingoutloud http://blog.codingoutloud.com

Editor's Notes

  • #2: Bill Wilder has been a professional software developer for more than 20 years. Last year he founded the <a href="http://bostonazure.org/">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="http://blog.codingoutloud.com/2010/06/02/introducing-the-boston-azure-project/">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="http://blog.codingoutloud.com">blog.codingoutloud.com</a>), and tweeter (<a href="http://twitter.com/codingoutloud">@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.
  • #3: 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)
  • #5: Scales of Justice: http://commons.wikimedia.org/wiki/File:Scale_of_justice_gold.png Key: http://commons.wikimedia.org/wiki/File:Crypto_key.svg
  • #15: 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 )
  • #20: http://commons.wikimedia.org/wiki/File:Boston_Pops_Esplanade_Orchestra_2005-07-04.jpg
  • #22: 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 "Do you want IIS?" If so, use a web role. If not, use a worker role.” One is always running, one is always listening
  • #24: AJAX – orthogonal concern Worker Role not related to HTML 5 concept of Web Worker
  • #25: AJAX – orthogonal concern Worker Role not related to HTML 5 concept of Web Worker
  • #27: 3.14159 265358 979323 846264 338327 950288 419716 939937 510582 097494 459230
  • #28: AJAX – orthogonal concern Worker Role not related to HTML 5 concept of Web Worker
  • #39: 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
  • #40: 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
  • #45: http://en.wikipedia.org/wiki/NoSQL
  • #46: http://commons.wikimedia.org/wiki/File:Stormtrooper_2.jpg
  • #49: http://www.freefoto.com/preview/04-28-6?ffid=04-28-6&k=Pile+of+Money
  • #50: http://www.microsoft.com/windowsazure/pricing/
  • #51: http://www.microsoft.com/windowsazure/pricing/
  • #54: http://www.microsoft.com/windowsazure/pricing/
  • #55: From NASA: http://svs.gsfc.nasa.gov/vis/a000000/a002600/a002680/apollo17_earth_web.jpg Apollo 17
  • #58: http://blogs.westword.com/latestword/2009/10/denver_is_smarter_than_every_o.php http://www.google.com/imgres?imgurl=http://www.watchmoviestreaming.com/pictures/dumbanddumber1.jpg&imgrefurl=http://www.watchmoviestreaming.com/%3Fp%3D424&usg=__UZ1BrJ79mCMa7yueDsmtXOADCHw=&h=267&w=500&sz=24&hl=en&start=7&sig2=IbDrZVdkObZkrsySJqTm-Q&itbs=1&tbnid=Q_EZDCwRAgp15M:&tbnh=69&tbnw=130&prev=/images%3Fq%3Ddumb%2Band%2Bdumber%26hl%3Den%26as_st%3Dy%26tbs%3Disch:1&ei=j-zkS63ZHcO78gaC4qy4Bw
  • #59: http://blogs.westword.com/latestword/2009/10/denver_is_smarter_than_every_o.php http://www.google.com/imgres?imgurl=http://www.watchmoviestreaming.com/pictures/dumbanddumber1.jpg&imgrefurl=http://www.watchmoviestreaming.com/%3Fp%3D424&usg=__UZ1BrJ79mCMa7yueDsmtXOADCHw=&h=267&w=500&sz=24&hl=en&start=7&sig2=IbDrZVdkObZkrsySJqTm-Q&itbs=1&tbnid=Q_EZDCwRAgp15M:&tbnh=69&tbnw=130&prev=/images%3Fq%3Ddumb%2Band%2Bdumber%26hl%3Den%26as_st%3Dy%26tbs%3Disch:1&ei=j-zkS63ZHcO78gaC4qy4Bw