SlideShare una empresa de 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

Más contenido relacionado

Similar a Design Considerations For Storing With Windows Azure

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 - ericnelukdpe
 
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 AzureBill Wilder
 
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]vaishalisahare123
 
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...Bill Wilder
 
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 storageSpiffy
 
Azure, Cloud Computing & Services
Azure, Cloud Computing & ServicesAzure, Cloud Computing & Services
Azure, Cloud Computing & ServicesAlan Dean
 
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 AzureMarco Parenzan
 
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 Servicesukdpe
 
Windows azure camp - Kolkata
Windows azure camp - KolkataWindows azure camp - Kolkata
Windows azure camp - KolkataAbhijit Jana
 
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 toolsPushkar Chivate
 
Windows azure camp
Windows azure campWindows azure camp
Windows azure campAbhishek Sur
 
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 DataGruter
 
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çõesComunidade NetPonto
 
Azure - Data Platform
Azure - Data PlatformAzure - Data Platform
Azure - Data Platformgiventocode
 
Afternoons with Azure - Azure Data Services
Afternoons with Azure - Azure Data ServicesAfternoons with Azure - Azure Data Services
Afternoons with Azure - Azure Data ServicesCCG
 

Similar 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
 

Más de Eric Nelson

SQL Azure Dec 2010 Update
SQL Azure Dec 2010 UpdateSQL Azure Dec 2010 Update
SQL Azure Dec 2010 UpdateEric Nelson
 
SQL Azure Dec Update
SQL Azure Dec UpdateSQL Azure Dec Update
SQL Azure Dec UpdateEric Nelson
 
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 ericnelEric Nelson
 
Technology Roadmap by ericnel
Technology Roadmap by ericnelTechnology Roadmap by ericnel
Technology Roadmap by ericnelEric Nelson
 
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 ericnelEric Nelson
 
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 - ericnelEric Nelson
 
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 - ericnelEric Nelson
 
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 ericnelEric Nelson
 
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 OneEric Nelson
 
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 Eric Nelson
 
SQL Azure Overview for Bizspark day
SQL Azure Overview for Bizspark daySQL Azure Overview for Bizspark day
SQL Azure Overview for Bizspark dayEric Nelson
 
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 AzureEric Nelson
 
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 2010Eric Nelson
 
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 audienceEric Nelson
 
Dev305 Entity Framework 4 Emergency Slides
Dev305 Entity Framework 4 Emergency SlidesDev305 Entity Framework 4 Emergency Slides
Dev305 Entity Framework 4 Emergency SlidesEric Nelson
 
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 ArchitectureEric Nelson
 
Windows Azure Overview
Windows Azure OverviewWindows Azure Overview
Windows Azure OverviewEric Nelson
 
SQL Data Service Overview
SQL Data Service OverviewSQL Data Service Overview
SQL Data Service OverviewEric Nelson
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2Eric Nelson
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework OverviewEric Nelson
 

Más 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

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Último (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 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 del 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