SlideShare uma empresa Scribd logo
1 de 61
Design considerations for storing data in the cloud with Windows Azure Eric Nelson Microsoft UK Blog: http://geekswithblogs.net/iupdateable Twitter: http://twitter.com/ericnel and http://twitter.com/ukmsdn Podcast:  http://bit.ly/msdnpodcast Newsletter: http://msdn.microsoft.com/en-gb/flash Slides, links and background “diary” posts can be found on my blog
[object Object]
Storage in the Cloud
Blobs
Tables
Relational
Queues
Lesson learnedAgenda
Windows Azure PLATFORM 101 Just in case you had something better to do over the last 18months
3 Important Services 3 Critical Concepts Windows Azure Compute and Storage SQL Azure Storage .NET Services Connecting Computation Web and Worker Storage Table, Blob, Relational Messaging Queues, Service Bus
A simple site “Wow!  What a great site!” Database Request Web Tier B/L Tier Browser Response
Under load Browser Browser Database Web Tier B/L Tier Browser “Server Busy” Browser Browser
Under load Browser Browser Database Web Tier B/L Tier Browser “Timeout” Browser Browser
Solve using on-premise Browser p1 p2 p3 Web Tier N L B B/L Tier N L B Browser Database Web Tier Browser B/L Tier Browser Web Tier B/L Tier Browser
However… p1 p2 p3 “Not so great now…” Web Tier N L B B/L Tier N L B Database Web Tier Browser B/L Tier Web Tier B/L Tier “That took a lot of work - and money!” “Hmmm...  Most of this stuff is sitting idle...”
Solve using the Cloud aka Windows Azure Platform Browser p1 p2 p3 Web Role N L B Worker Role N L B Browser AzureStorage Web Role Browser Worker Role Worker Role Browser Web Role Browser You don’t see this bit You don’t see this bit You don’t see this bit or… Maybe you do
Solve using the Cloud aka Windows Azure Platform SQLAzure Browser p1 p2 p3 Web Role N L B Worker Role N L B Browser AzureStorage Web Role Browser Worker Role Worker Role Browser Web Role Browser You don’t see this bit You don’t see this bit You don’t see this bit Ok, you definitely do
Demo:  Windows Azure Portal
Storage in the Cloud… Windows Azure Storage and SQL Azure
Blobs, Tables, Relational
Blobs, Tables, Relational
Blobs stored in Containers 1 or more Containers per account Scoping is at container level …/Container/blobpath Blobs Capacity 50GB in CTP Metadata, accessed independently  Private or Public container access Blobs
Put a Blob Blob Container PutBlob PUT http://account.blob.core.windows./net/containername/blobname Azure  Blob Storage REST API Client http://account.blob.core.windows.net/containername/blobname
Get a Blob Blob Container Azure  Blob Storage REST API Client GetBlob GET http://account.blob.core.windows./net/containername/blobname http://account.blob.core.windows.net/containername/blobname
Get part of a Blob Blob Container Azure  Blob Storage REST API Client GetBlob GET http://account.blob.core.windows./net/containername/blobname Range:  bytes=329300 - 730000 http://account.blob.core.windows.net/containername/blobname
Put a LARGE Blob PutBlock(blobname, blockid1, data) Blob Container PutBlock(blobname, blockid7, data) PutBlockList(blobname, blockid1, …, blockidN) Azure  Blob Storage REST API Client http://account.blob.core.windows.net/containername/blobname
Blobs, Tables, Relational
Provides structured storage Massively scalable tables (TBs of data) Self scaling Highly available Durable Familiar and easy-to-use API, layered .NET classes and LINQ ADO.NET Data Services – .NET 3.5 SP1 REST – with any platform or language Introduction to Tables
No join No group by No order by “No Schema” Not a Relational Database
Table A Table is a set of Entities (rows) An Entity is a set of Properties (columns) Entity Two “key” properties form unique ID PartitionKey – enables scale RowKey – uniquely ID within a partition Data Model
Key Example – Blog Posts Partition 1 Partition 2 Getting all of dunnry’s blog posts is fast Single partition Getting all posts after 2008-03-27 is slow Traverse all partitions
Query a Table REST:   GET http://account.table.core.windows.net/Customer?$filter=%20PartitionKey%20eq%20value LINQ: var customers = from o in context.CreateQuery<customer>(“Customer”) where o.PartitionKey == value select o; Azure Table Storage Worker Role http://account.table.core.windows.net
Tradeoff between locality and scalability Considerations Entity group transactions Query efficiency Scalability Flexible Partitioning Choosing a Partition Key
Pick potential keys (common query filters) Order keys by importance If needed, include an additional unique key Use two most important keys as PK, RK Consider concatenating to form keys A Method of Choosing Keys
Non-key queries are scans Improve performance by scoping Usually by partition key But what about by table? 3 tables Top 1,000 popular items Top 10,000 popular items Everything Now arbitrary “top 1,000” queries are fast Better locality than clever partition keys Write many is one approach
Demo:  Windows Azure Storage
Lessons LearnedAzure Storage Azure tables are *not* a relational database Requires a mind shift Azure tables scale 3 - 9s availability Azure tables support exactly one key PartitionKey + RowKey Case Matters No foreign keys No referential integrity No stored procedures
Lessons LearnedAzure Storage Azure Storage Client Library No longer just a “sample” Azure storage is available via REST Not limited to Azure hosted apps Not limited to Microsoft platform or tools Getting the signature correct is the hard part
Lessons LearnedAzure Storage - RESTful REST is *not* TDS Be prepared to parse LINQ and XML classes help Sometimes, string parsing is the best choice Azure storage names are picky So are Azure key values It’s possible to create an entity in a table and not be able to update or delete it
Lessons LearnedAzure Storage – Roundtrips are expensive Often better to pull back more than you need vs. multiple roundtrips LINQ on results in memory is fast & flexible foreach works well too Sort and cache tables on the web tier
Lessons LearnedAzure Storage – Entity Group Transactions Different Entity types in the same table E.g. PK = CustomerId Customer, Order and OrderDetails in the same table
Blobs, Tables, Relational
SQL Azure (July 2009)aka SQL Data Servicesaka SQL Server Data Services
On Premise Programming Model This is what we do on-premise... Data TDS RDBMS Client SQLServer
Same for the cloud?   So, is this is what we would like to do in the cloud... Data TDS RDBMS Client SQL Server
SQL Azure can do this Data TDS RDBMS Client SQL Azure
SQL Azure can also do this HTTP TDS RDBMS Browser Web Role SQL Azure
And this! Queue TDS HTTP RDBMS Browser Web Role Worker Role SQL Azure
Which means you can easily migrate from this “The Data Center” TDS HTTP RDBMS Browser Web Tier Bus. Logic SQL Server
To this… Windows Azure and SQL Azure “The Cloud” Queue TDS HTTP RDBMS Browser Web Role Worker Role SQL Azure
Demo:  SQL Azure
Lessons LearnedSQL Azure From the database “down” it’s just SQL Server Well, almost … Many tools don’t work today System catalog is different Above the database is taken care of for you You can’t really change anything
Lessons LearnedSQL Azure Tooling SSMS partially works – “good enough” Can not create connection using Visual Studio designer Other tools may work better No BCP (currently) DDL Must be a clustered index on every table No physical file placement No indexed views No “not for replication” constraint allowed No Extended properties Some index options missing (e.g. allow_row_locks, sort_in_tempdb ..) No set ansi_nulls on
Lessons LearnedSQL Azure Types No spatial or hierarchy id No Text/images support.   Use nvarchar(max) XML datatype and schema allowed but no XML index or schema collection. Security No integrated security
Lessons LearnedSQL Azure Development No CLR Local temp tables are allowed  Global temp tables are not allowed Cannot alter database inside a connection No UDDT’s No ROWGUIDCOL column property
Lessons LearnedSQL Azure vs Windows Azure Tables SQL Server is very familiar SQL Azure *is* SQL Server in the cloud Windows Azure Storage is…very different  Make the right choice Understand Azure storage Understand SQL Azure Understand they are totally different You can use both
Lessons Learned SQL Azure vs Windows Azure Tables SQL Azure is not always the best storage option SQL Azure costs more Delivers a *lot* more functionality SQL Azure is more limited on scale
Lessons Learned SQL Azure and Sharding Can be done Many 10GB databases Not fun 
Queues
Simple asynchronous dispatch queue Create and delete queues Message: Retrieved at least once Max size 8kb Operations: Enqueue Dequeue RemoveMessage Queues
Using the Cloud for Communications http://app.queue.core.windows.net/ Azure Queue REST Client

Mais conteúdo relacionado

Semelhante a Design Considerations For Storing With Windows Azure

MS Cloud Day - Building web applications with Azure storage
MS Cloud Day - Building web applications with Azure storageMS Cloud Day - Building web applications with Azure storage
MS Cloud Day - Building web applications with Azure storage
Spiffy
 

Semelhante a Design Considerations For Storing With Windows Azure (20)

Storage in the Windows Azure Platform - ericnel
Storage in the Windows Azure Platform - ericnelStorage in the Windows Azure Platform - ericnel
Storage in the Windows Azure Platform - ericnel
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
 
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]Creation of cloud application using microsoft azure by vaishali sahare [katkar]
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
 
Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Cam...
Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Cam...Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Cam...
Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Cam...
 
MS Cloud Day - Building web applications with Azure storage
MS Cloud Day - Building web applications with Azure storageMS Cloud Day - Building web applications with Azure storage
MS Cloud Day - Building web applications with Azure storage
 
Azure, Cloud Computing & Services
Azure, Cloud Computing & ServicesAzure, Cloud Computing & Services
Azure, Cloud Computing & Services
 
2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Services
 
Microsoft cloud 101
Microsoft cloud 101Microsoft cloud 101
Microsoft cloud 101
 
Windows azure camp - Kolkata
Windows azure camp - KolkataWindows azure camp - Kolkata
Windows azure camp - Kolkata
 
Sky High With Azure
Sky High With AzureSky High With Azure
Sky High With Azure
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Cloud architectural patterns and Microsoft Azure tools
Cloud architectural patterns and Microsoft Azure toolsCloud architectural patterns and Microsoft Azure tools
Cloud architectural patterns and Microsoft Azure tools
 
Windows azure camp
Windows azure campWindows azure camp
Windows azure camp
 
Introduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big DataIntroduction to Apache Tajo: Data Warehouse for Big Data
Introduction to Apache Tajo: Data Warehouse for Big Data
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de AplicaçõesWindows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
Windows Azure - Uma Plataforma para o Desenvolvimento de Aplicações
 
Azure - Data Platform
Azure - Data PlatformAzure - Data Platform
Azure - Data Platform
 
Afternoons with Azure - Azure Data Services
Afternoons with Azure - Azure Data ServicesAfternoons with Azure - Azure Data Services
Afternoons with Azure - Azure Data Services
 
Azure Data Storage
Azure Data StorageAzure Data Storage
Azure Data Storage
 

Mais de Eric Nelson

SQL Azure Dec Update
SQL Azure Dec UpdateSQL Azure Dec Update
SQL Azure Dec Update
Eric Nelson
 
Windows Azure Overview
Windows Azure OverviewWindows Azure Overview
Windows Azure Overview
Eric Nelson
 
SQL Data Service Overview
SQL Data Service OverviewSQL Data Service Overview
SQL Data Service Overview
Eric Nelson
 

Mais de Eric Nelson (20)

SQL Azure Dec 2010 Update
SQL Azure Dec 2010 UpdateSQL Azure Dec 2010 Update
SQL Azure Dec 2010 Update
 
SQL Azure Dec Update
SQL Azure Dec UpdateSQL Azure Dec Update
SQL Azure Dec Update
 
Windows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnelWindows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnel
 
Technology Roadmap by ericnel
Technology Roadmap by ericnelTechnology Roadmap by ericnel
Technology Roadmap by ericnel
 
Windows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnelWindows Azure Platform in 30mins by ericnel
Windows Azure Platform in 30mins by ericnel
 
10 things ever architect should know about the Windows Azure Platform - ericnel
10 things ever architect should know about the Windows Azure Platform -  ericnel10 things ever architect should know about the Windows Azure Platform -  ericnel
10 things ever architect should know about the Windows Azure Platform - ericnel
 
Lap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnelLap around the Windows Azure Platform - ericnel
Lap around the Windows Azure Platform - ericnel
 
Windows Azure Platform best practices by ericnel
Windows Azure Platform best practices by ericnelWindows Azure Platform best practices by ericnel
Windows Azure Platform best practices by ericnel
 
Windows Azure Platform: Articles from the Trenches, Volume One
Windows Azure Platform: Articles from the Trenches, Volume OneWindows Azure Platform: Articles from the Trenches, Volume One
Windows Azure Platform: Articles from the Trenches, Volume One
 
Looking at the clouds through dirty windows
Looking at the clouds through dirty windows Looking at the clouds through dirty windows
Looking at the clouds through dirty windows
 
SQL Azure Overview for Bizspark day
SQL Azure Overview for Bizspark daySQL Azure Overview for Bizspark day
SQL Azure Overview for Bizspark day
 
Building An Application For Windows Azure And Sql Azure
Building An Application For Windows Azure And Sql AzureBuilding An Application For Windows Azure And Sql Azure
Building An Application For Windows Azure And Sql Azure
 
Entity Framework 4 In Microsoft Visual Studio 2010
Entity Framework 4 In Microsoft Visual Studio 2010Entity Framework 4 In Microsoft Visual Studio 2010
Entity Framework 4 In Microsoft Visual Studio 2010
 
Windows Azure In 30mins for none technical audience
Windows Azure In 30mins for none technical audienceWindows Azure In 30mins for none technical audience
Windows Azure In 30mins for none technical audience
 
Dev305 Entity Framework 4 Emergency Slides
Dev305 Entity Framework 4 Emergency SlidesDev305 Entity Framework 4 Emergency Slides
Dev305 Entity Framework 4 Emergency Slides
 
What Impact Will Entity Framework Have On Architecture
What Impact Will Entity Framework Have On ArchitectureWhat Impact Will Entity Framework Have On Architecture
What Impact Will Entity Framework Have On Architecture
 
Windows Azure Overview
Windows Azure OverviewWindows Azure Overview
Windows Azure Overview
 
SQL Data Service Overview
SQL Data Service OverviewSQL Data Service Overview
SQL Data Service Overview
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework Overview
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 

Design Considerations For Storing With Windows Azure

  • 1. Design considerations for storing data in the cloud with Windows Azure Eric Nelson Microsoft UK Blog: http://geekswithblogs.net/iupdateable Twitter: http://twitter.com/ericnel and http://twitter.com/ukmsdn Podcast: http://bit.ly/msdnpodcast Newsletter: http://msdn.microsoft.com/en-gb/flash Slides, links and background “diary” posts can be found on my blog
  • 2.
  • 9. Windows Azure PLATFORM 101 Just in case you had something better to do over the last 18months
  • 10. 3 Important Services 3 Critical Concepts Windows Azure Compute and Storage SQL Azure Storage .NET Services Connecting Computation Web and Worker Storage Table, Blob, Relational Messaging Queues, Service Bus
  • 11. A simple site “Wow! What a great site!” Database Request Web Tier B/L Tier Browser Response
  • 12. Under load Browser Browser Database Web Tier B/L Tier Browser “Server Busy” Browser Browser
  • 13. Under load Browser Browser Database Web Tier B/L Tier Browser “Timeout” Browser Browser
  • 14. Solve using on-premise Browser p1 p2 p3 Web Tier N L B B/L Tier N L B Browser Database Web Tier Browser B/L Tier Browser Web Tier B/L Tier Browser
  • 15. However… p1 p2 p3 “Not so great now…” Web Tier N L B B/L Tier N L B Database Web Tier Browser B/L Tier Web Tier B/L Tier “That took a lot of work - and money!” “Hmmm... Most of this stuff is sitting idle...”
  • 16. Solve using the Cloud aka Windows Azure Platform Browser p1 p2 p3 Web Role N L B Worker Role N L B Browser AzureStorage Web Role Browser Worker Role Worker Role Browser Web Role Browser You don’t see this bit You don’t see this bit You don’t see this bit or… Maybe you do
  • 17. Solve using the Cloud aka Windows Azure Platform SQLAzure Browser p1 p2 p3 Web Role N L B Worker Role N L B Browser AzureStorage Web Role Browser Worker Role Worker Role Browser Web Role Browser You don’t see this bit You don’t see this bit You don’t see this bit Ok, you definitely do
  • 18. Demo: Windows Azure Portal
  • 19. Storage in the Cloud… Windows Azure Storage and SQL Azure
  • 22. Blobs stored in Containers 1 or more Containers per account Scoping is at container level …/Container/blobpath Blobs Capacity 50GB in CTP Metadata, accessed independently Private or Public container access Blobs
  • 23. Put a Blob Blob Container PutBlob PUT http://account.blob.core.windows./net/containername/blobname Azure Blob Storage REST API Client http://account.blob.core.windows.net/containername/blobname
  • 24. Get a Blob Blob Container Azure Blob Storage REST API Client GetBlob GET http://account.blob.core.windows./net/containername/blobname http://account.blob.core.windows.net/containername/blobname
  • 25. Get part of a Blob Blob Container Azure Blob Storage REST API Client GetBlob GET http://account.blob.core.windows./net/containername/blobname Range: bytes=329300 - 730000 http://account.blob.core.windows.net/containername/blobname
  • 26. Put a LARGE Blob PutBlock(blobname, blockid1, data) Blob Container PutBlock(blobname, blockid7, data) PutBlockList(blobname, blockid1, …, blockidN) Azure Blob Storage REST API Client http://account.blob.core.windows.net/containername/blobname
  • 28. Provides structured storage Massively scalable tables (TBs of data) Self scaling Highly available Durable Familiar and easy-to-use API, layered .NET classes and LINQ ADO.NET Data Services – .NET 3.5 SP1 REST – with any platform or language Introduction to Tables
  • 29. No join No group by No order by “No Schema” Not a Relational Database
  • 30. Table A Table is a set of Entities (rows) An Entity is a set of Properties (columns) Entity Two “key” properties form unique ID PartitionKey – enables scale RowKey – uniquely ID within a partition Data Model
  • 31. Key Example – Blog Posts Partition 1 Partition 2 Getting all of dunnry’s blog posts is fast Single partition Getting all posts after 2008-03-27 is slow Traverse all partitions
  • 32. Query a Table REST: GET http://account.table.core.windows.net/Customer?$filter=%20PartitionKey%20eq%20value LINQ: var customers = from o in context.CreateQuery<customer>(“Customer”) where o.PartitionKey == value select o; Azure Table Storage Worker Role http://account.table.core.windows.net
  • 33. Tradeoff between locality and scalability Considerations Entity group transactions Query efficiency Scalability Flexible Partitioning Choosing a Partition Key
  • 34. Pick potential keys (common query filters) Order keys by importance If needed, include an additional unique key Use two most important keys as PK, RK Consider concatenating to form keys A Method of Choosing Keys
  • 35. Non-key queries are scans Improve performance by scoping Usually by partition key But what about by table? 3 tables Top 1,000 popular items Top 10,000 popular items Everything Now arbitrary “top 1,000” queries are fast Better locality than clever partition keys Write many is one approach
  • 36. Demo: Windows Azure Storage
  • 37. Lessons LearnedAzure Storage Azure tables are *not* a relational database Requires a mind shift Azure tables scale 3 - 9s availability Azure tables support exactly one key PartitionKey + RowKey Case Matters No foreign keys No referential integrity No stored procedures
  • 38. Lessons LearnedAzure Storage Azure Storage Client Library No longer just a “sample” Azure storage is available via REST Not limited to Azure hosted apps Not limited to Microsoft platform or tools Getting the signature correct is the hard part
  • 39. Lessons LearnedAzure Storage - RESTful REST is *not* TDS Be prepared to parse LINQ and XML classes help Sometimes, string parsing is the best choice Azure storage names are picky So are Azure key values It’s possible to create an entity in a table and not be able to update or delete it
  • 40. Lessons LearnedAzure Storage – Roundtrips are expensive Often better to pull back more than you need vs. multiple roundtrips LINQ on results in memory is fast & flexible foreach works well too Sort and cache tables on the web tier
  • 41. Lessons LearnedAzure Storage – Entity Group Transactions Different Entity types in the same table E.g. PK = CustomerId Customer, Order and OrderDetails in the same table
  • 43. SQL Azure (July 2009)aka SQL Data Servicesaka SQL Server Data Services
  • 44. On Premise Programming Model This is what we do on-premise... Data TDS RDBMS Client SQLServer
  • 45. Same for the cloud? So, is this is what we would like to do in the cloud... Data TDS RDBMS Client SQL Server
  • 46. SQL Azure can do this Data TDS RDBMS Client SQL Azure
  • 47. SQL Azure can also do this HTTP TDS RDBMS Browser Web Role SQL Azure
  • 48. And this! Queue TDS HTTP RDBMS Browser Web Role Worker Role SQL Azure
  • 49. Which means you can easily migrate from this “The Data Center” TDS HTTP RDBMS Browser Web Tier Bus. Logic SQL Server
  • 50. To this… Windows Azure and SQL Azure “The Cloud” Queue TDS HTTP RDBMS Browser Web Role Worker Role SQL Azure
  • 51. Demo: SQL Azure
  • 52. Lessons LearnedSQL Azure From the database “down” it’s just SQL Server Well, almost … Many tools don’t work today System catalog is different Above the database is taken care of for you You can’t really change anything
  • 53. Lessons LearnedSQL Azure Tooling SSMS partially works – “good enough” Can not create connection using Visual Studio designer Other tools may work better No BCP (currently) DDL Must be a clustered index on every table No physical file placement No indexed views No “not for replication” constraint allowed No Extended properties Some index options missing (e.g. allow_row_locks, sort_in_tempdb ..) No set ansi_nulls on
  • 54. Lessons LearnedSQL Azure Types No spatial or hierarchy id No Text/images support. Use nvarchar(max) XML datatype and schema allowed but no XML index or schema collection. Security No integrated security
  • 55. Lessons LearnedSQL Azure Development No CLR Local temp tables are allowed Global temp tables are not allowed Cannot alter database inside a connection No UDDT’s No ROWGUIDCOL column property
  • 56. Lessons LearnedSQL Azure vs Windows Azure Tables SQL Server is very familiar SQL Azure *is* SQL Server in the cloud Windows Azure Storage is…very different  Make the right choice Understand Azure storage Understand SQL Azure Understand they are totally different You can use both
  • 57. Lessons Learned SQL Azure vs Windows Azure Tables SQL Azure is not always the best storage option SQL Azure costs more Delivers a *lot* more functionality SQL Azure is more limited on scale
  • 58. Lessons Learned SQL Azure and Sharding Can be done Many 10GB databases Not fun 
  • 60. Simple asynchronous dispatch queue Create and delete queues Message: Retrieved at least once Max size 8kb Operations: Enqueue Dequeue RemoveMessage Queues
  • 61. Using the Cloud for Communications http://app.queue.core.windows.net/ Azure Queue REST Client
  • 62. Using the Cloud for Communications Company 1 http://app.queue.core.windows.net/ Client Azure Queue REST Company 2 Client
  • 63. Using the Cloud for Communications x Company 1 http://app.queue.core.windows.net/ Client Azure Queue REST Company 2 Client
  • 64. Using the Cloud for Communications Company 1 http://app.queue.core.windows.net/ Client Azure Queue REST Web Role Company 2 Client
  • 66. Windows Azure Platform Benefits Windows Azure High Level of Abstraction Hardware Server OS Network Infrastructure Web Server Availability Automated Service Management Scalability Instance & Partitions Developer Experience Familiar Developer Tools SQL Azure Higher Level of Abstraction Hardware Server OS Network Infrastructure Database Server Availability Automated Database Management & Replication Scalability Databases Partitioning Developer Experience Familiar SQL Environment
  • 67. Resources Slides, links and more http://geekswithblogs.net/iupdateable Azure Training Kit (August update) www.azure.com Sign up, links to resources etc http://www.azureadvantage.co.uk/ Rapid provisioning of Windows Azure

Notas do Editor

  1. name/value pairs (8kb total)
  2. PutBlob = 64Mb MAXMetaData = 8Kb per Blob
  3. PutBlock = 4Mb MAX to a maximum of 50GbBlockId = 64 bytes
  4. Partition Key – how data is partitionedRow Key – unique in partition, defines sortGoalsKeep partitions small (increased scalability)Specify partition key in common queriesQuery/sort on row key
  5. Each Table: PartitionKey (e.g. DocumentName) to ensure scalabilityRowKey (e.g. version number)[fields] for data
  6. 64kb per field
  7. Use XML Serialization to write the results to local storageIt’s generally faster to hydrate from local storageNot as fast as caching in memory