SlideShare a Scribd company logo
Data Options in the CloudJoe Shireyjoe.shirey@microsoft.com
Database ChoicesValue Props:Full h/w control – size/scale100% of API surface areaRoll-your-own HA/DR/scaleValue Props:100% of API surface areaRoll-your-own HA/DR/scaleDedicatedOn-premise SQL Server or other s/w on-premise Resource governance @ machine Security @ DB Server/OSValue Props:Auto HA, Fault-ToleranceFriction-free scaleSelf-provisioningSubset of API surface areaResourcesHosted Hosted SQL Server Resource governance @ VM Security @ DB Server/OSSQL Azure Database Virtual DB serverResource governance @ DB Security @ DB/Virtual ServerSharedLow“Friction”/ControlHighSQL Azure V1 targets scenarios that live in the lower left quadrant
SQL Server 2008 R2Focus AreasImprovements in Scalability and PerformanceEnhanced ManageabilitySelf Service Business IntelligenceMaster Data Management
Master Data ManagementSingle source of truth for Master DataThin client managementSafeguards of data integrityData versioningImport/Export capabilities
SQL Server VersionsNew with SQL 2008 R2Datacenter Edition (256 logical processor support)
Parallel Data Warehouse Edition (100+ TB support)Cloud DevelopmentWEB & CLOUDSthird party cloudweb applicationsdeveloper experienceuse existing skills and toolscomputestoragemanagementmanagementrelational dataconnectivityaccess controlON-PREMISESlob Applicationscomposite applications
Storage in the CloudWEB & CLOUDSthird party cloudweb applicationsdeveloper experienceuse existing skills and toolsmanagementmanagementconnectivityaccess controlcomputerelational datastorageON-PREMISESlob Applicationscomposite applications
Why Data in the CloudCapital CostsDBA (or lack thereof)High AvailabilityPerformanceScalability
Windows Azure StorageThe goal is to allow users and servicesAnywhere at anytime accessStore data for any length of time Scale to store any amount of dataBe confident that the data will not be lost Pay for only what they use/store
Windows Azure StorageStorageDurableScalable (capacity and throughput)Highly availableRich storage conceptsLarge user data items:  blobsService state:  tablesService communication:  queuesSimple and familiar programming interfacesREST  (HTTP and HTTPS).NET accessible
Fundamental data abstractionsBlobs – provide a simple interface for storing named files along with metadata for the fileTables – provide structured storage.  a table is a set of entities, which contain a set of propertiesQueues – provide reliable storage and delivery of messages for an application
Blob Storage ConceptsblobcontaineraccountIMG001.JPGpicturesMOV1.AVIIMG002.JPGsallymovies
Blob Features and FunctionsStore large objects  (up to 200GB)Associate metadata with blobmetadata is <name, value> pairs, up to 8KB per blobset/get with or separate from blob data bitsStandard REST InterfacePutBlobInserts a new blob or overwrites the existing blobGetBlobGet whole blob or a specific rangeDeleteBlob
Windows Azure TablesProvides structured storageMassively scalable tablesBillions of entities (rows) and TBs of dataAutomatically scales across servers as traffic growsHighly availableAnywhere at anytime access to your dataDurableData is replicated at least 3 timesFamiliar and easy to use programming interfacesADO.NET data services – .NET 3.5 SP1.NET classes and LINQREST - with any platform or language
Table Storage ConceptsentitytableaccountName =…Email = …usersName =…Email = …sallyPhoto ID =…Date =…photo indexPhoto ID =…Date =…
Table Data ModelTableA storage account can create many tablesTable name is scoped by accountData is stored in tablesA table is a set of entities (rows)An entity is a set of properties (columns)EntityTwo “key” properties that together are the unique ID of the entity in the tablePartitionKey – enables scalabilityRowKey – uniquely identifies the entity within the partition
Partition Deyand PartitionsEvery table has a partition keyIt is the first property (column) of your tableUsed to group entities in the table into partitionsA table partition All entities in a table with the same partition key valuePartition key is exposed in the programming model Allows application to control the granularity of the partitions and enable scalability
Partition ExampleTable partition – all entities in tablewith same partition key valueApplication controls granularity of partitionPartition 1Partition 2
Purpose of the Partition KeyEntity localityEntities in the same partition will be stored togetherEfficient querying and cache localityEntity group transactions Atomically perform multiple insert/update/delete over entities in same partition in a single transactionTable scalabilityWe monitor the usage patterns of partitionsAutomatically load balance partitionsEach partition can be served by a different storage nodeScale to meet the traffic needs of your table
Choosing a Partition KeyGranularity of entity group transactionsMake the partition key only as big as you need it for  entity group transactionsSpread out load across partitionsMore partitions – makes it easier to automatically balance loadCurrently have one primary indexImportant to use a partition key that is common in your queriesIf partition key is part of queryFast access to retrieve entities within a single partitionIf partition key is not specified in a query Then every partition has to be scanned
Table Entities and PropertiesEach entity can have up to 255 propertiesMandatory properties for every entity in tablePartition keyRow key		All entities have a system maintained versionNo fixed schema for rest of propertiesEach property is stored as a <name, typed value> pairNo schema stored for a table2 entities within the same table can have different propertiesProperties can be the standard .NET types String, binary, bool, DateTime, GUID, int, int64, and double
Table Programming ModelProvide familiar and easy to use interfacesLeverage your .NET expertiseTable entities are accessed as objects via ADO.NET Data Services – .NET 3.5 SP1LINQ – language Integrated queryRESTful access to table and entitiesInsert/update/delete entities over the tableQuery over tablesGet back a list of structured entities
Web + Worker Role PatternWeb roleWeb farm that handles request from the internetPush work items onto storage queueWorker roleProcess work item off storage queuePublic internetnmWeb roleWorker roleQLoad balancerCloud storage (tables, blobs, queues)
Windows Azure QueuesProvide reliable message deliverySimple, asynchronous work dispatchProgramming semantics ensure that a message can be processed at least onceQueues are highly available, durable and performance efficientAccess is provided via REST
Queue Storage ConceptsMessageQueueAccount128x128, http://…thumbnail jobs256x256, http://…sallyhttp://…photo processing jobshttp://…
Account, Queues and MessagesAn account can create many queuesQueue name is scoped by the accountAqueue contains messagesNo limit on number of messages stored in a queueA message is stored for at most a week in a queuehttp://<Account>.queue.core.windows.net/<QueueName>MessagesMessage size  <= 8 KBTo store larger data, store data in blob/entity storage, and the blob/entity name in the message
queue programming APIqueuescreate/delete/clear queuesinspect queue lengthmessagesenqueue (queuename, message)dequeue (queueName, invisibility time T)returns  the message with a messageIDmakes the message invisible for time Tdelete(queuename, messageID)
Queue Best PracticesMake message processing idempotentNeed to deal with failuresNo fixed order for dequeue messagesInvisible messages result in out of order processing Use the queue length to scale your workers
Demowindows azure storage
SQL AzureSQL Server Data Services false startFamiliar relational modelUses existing APIs & toolsFriction free provisioning and reduced managementBuilt for the cloud with availability and scaleClear feedback: “I want a SQL database in the cloud”
Service Provisioning ModelEach account has zero or more serversAzure wide, provisioned in a common portalBilling instrumentEach server has one or more databasesContains metadata about the databases and usageUnit of authenticationUnit of geo-locationGenerated DNS based nameEach database has standard SQL objectsUnit of consistencyUnit of multi-tenancyContains users, tables, views, indices, etc.Most granular unit of billingSKU’s Web edition -1 GBBusiness edition – 10 GB     account     server       database
ArchitectureShared infrastructure at SQL database and belowRequest routing, security and isolationScalable HA technology provides the glueAutomatic replication and failoverProvisioning, metering and billing infrastructureMachine 5Machine 6Machine 4SQL InstanceSQL InstanceSQL InstanceSQL DBSQL DBSQL DBUserDB1UserDB2UserDB3UserDB4UserDB1UserDB2UserDB3UserDB4UserDB1UserDB2UserDB3UserDB4SDS Provisioning (databases,  accounts,  roles, …, Metering, and BillingScalability and Availability: Fabric, Failover, Replication, and  Load balancingScalability and Availability: Fabric, Failover, Replication, and  Load balancing
Sample of SQL compatibilityIn Scope for V1Tables, indexes and viewsStored ProceduresTriggersConstraintsTable variables, session temp tables (#t)…..Out of Scope for V1Distributed Transactions
Distributed Query
CLR
Service Broker
Spatial
Physical server or catalog DDL and viewsLogical vs. Physical AdministrationCustomer can focus on logical administrationSchema creation and managementQuery optimizationSecurity management (logins, users, roles)Service handles physical managementAutomatically replicated with HA “out of the box”Transparent failover in case of failureLoad balancing of data to ensure SLADBA role places more focus on logical management

More Related Content

What's hot (20)

PPT
ArcReady - Architecting For The Cloud
Microsoft ArcReady
 
PDF
Azure - Data Platform
giventocode
 
PDF
Data Platform Overview
Hamid J. Fard
 
PPTX
Azure Data platform
Mostafa
 
PPTX
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
vaishalisahare123
 
PPTX
6.Live Framework 和Mesh Services
GaryYoung
 
PPTX
Sky High With Azure
Clint Edmonson
 
PPTX
Azure Platform
Wes Yanaga
 
PPTX
Azure architecture
Amal Dev
 
PDF
Migrating Existing ASP.NET Web Applications to Microsoft Azure
Ilyas F ☁☁☁
 
PDF
Introducing Azure Services Platform V1
guest120d945
 
PDF
AppSphere 15 - Microsoft Azure for Developers & DevOps
AppDynamics
 
PDF
Microsoft Azure Overview Infographic
Microsoft Azure
 
PDF
Cloud Native Apps
David Chou
 
PDF
Microsoft And Cloud Computing
David Chou
 
PPT
Unplugged
Nigel Parker
 
PPTX
Data Management Gateway - Deep Dive
Jean-Pierre Riehl
 
PPTX
SQL Server Data Services
Eduardo Castro
 
PPTX
Visual Studio 2010 ALM Overview - Sreedhar Kakade
Spiffy
 
ODP
ZK MVVM, Spring & JPA On Two PaaS Clouds
Simon Massey
 
ArcReady - Architecting For The Cloud
Microsoft ArcReady
 
Azure - Data Platform
giventocode
 
Data Platform Overview
Hamid J. Fard
 
Azure Data platform
Mostafa
 
Creation of cloud application using microsoft azure by vaishali sahare [katkar]
vaishalisahare123
 
6.Live Framework 和Mesh Services
GaryYoung
 
Sky High With Azure
Clint Edmonson
 
Azure Platform
Wes Yanaga
 
Azure architecture
Amal Dev
 
Migrating Existing ASP.NET Web Applications to Microsoft Azure
Ilyas F ☁☁☁
 
Introducing Azure Services Platform V1
guest120d945
 
AppSphere 15 - Microsoft Azure for Developers & DevOps
AppDynamics
 
Microsoft Azure Overview Infographic
Microsoft Azure
 
Cloud Native Apps
David Chou
 
Microsoft And Cloud Computing
David Chou
 
Unplugged
Nigel Parker
 
Data Management Gateway - Deep Dive
Jean-Pierre Riehl
 
SQL Server Data Services
Eduardo Castro
 
Visual Studio 2010 ALM Overview - Sreedhar Kakade
Spiffy
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
Simon Massey
 

Similar to Microsoft Database Options (20)

PPTX
Data In Cloud
rsnarayanan
 
PPTX
Design Considerations For Storing With Windows Azure
Eric Nelson
 
PPT
Windows Azure and a little SQL Data Services
ukdpe
 
PPTX
Azure, Cloud Computing & Services
Alan Dean
 
PPT
Microsoft Azure
Dima Maleev
 
PPTX
Windows azure camp - Kolkata
Abhijit Jana
 
PPTX
Building services using windows azure
Suliman AlBattat
 
PDF
Cloud computing Azure
vivek p s
 
PPT
Building Cloud-Native Applications with Microsoft Windows Azure
Bill Wilder
 
PPTX
Windows azure camp
Abhishek Sur
 
PPTX
Microsoft cloud 101
Rateb Abu Hawieleh
 
PPT
SQL Azure Overview for Bizspark day
Eric Nelson
 
PPTX
Storage in the Windows Azure Platform - ericnel
ukdpe
 
PPTX
Azure Data Storage
Ken Cenerelli
 
PPTX
Tablas y almacenamiento en windows azure
Eduardo Castro
 
PPTX
Exploring Windows Azure Cloud Storage
K.Mohamed Faizal
 
PPTX
Exploring azure cloud storage
Spiffy
 
PPT
Day Of Cloud - Windows Azure Platform
Wade Wegner
 
PPTX
Microsoft/Zend Webcast on Cloud Computing
Josh Holmes
 
Data In Cloud
rsnarayanan
 
Design Considerations For Storing With Windows Azure
Eric Nelson
 
Windows Azure and a little SQL Data Services
ukdpe
 
Azure, Cloud Computing & Services
Alan Dean
 
Microsoft Azure
Dima Maleev
 
Windows azure camp - Kolkata
Abhijit Jana
 
Building services using windows azure
Suliman AlBattat
 
Cloud computing Azure
vivek p s
 
Building Cloud-Native Applications with Microsoft Windows Azure
Bill Wilder
 
Windows azure camp
Abhishek Sur
 
Microsoft cloud 101
Rateb Abu Hawieleh
 
SQL Azure Overview for Bizspark day
Eric Nelson
 
Storage in the Windows Azure Platform - ericnel
ukdpe
 
Azure Data Storage
Ken Cenerelli
 
Tablas y almacenamiento en windows azure
Eduardo Castro
 
Exploring Windows Azure Cloud Storage
K.Mohamed Faizal
 
Exploring azure cloud storage
Spiffy
 
Day Of Cloud - Windows Azure Platform
Wade Wegner
 
Microsoft/Zend Webcast on Cloud Computing
Josh Holmes
 
Ad

More from David Chou (20)

PPTX
Windows Phone app development overview
David Chou
 
PPTX
Microsoft AI Platform Overview
David Chou
 
PPTX
Designing Artificial Intelligence
David Chou
 
PPTX
Immersive Computing
David Chou
 
PPTX
Java on Windows Azure
David Chou
 
PPTX
Microsoft Azure
David Chou
 
PPTX
Designing Microservices
David Chou
 
PPTX
Java on Windows Azure
David Chou
 
PPTX
Windows Azure AppFabric
David Chou
 
PPTX
Java on Windows Azure (Cloud Computing Expo 2010)
David Chou
 
PPTX
Scale as a Competitive Advantage
David Chou
 
PPTX
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
David Chou
 
PPTX
Kelley Blue Book and Cloud Computing
David Chou
 
PPTX
Windows Phone 7
David Chou
 
PPTX
Silverlight 4 Briefing
David Chou
 
PPTX
SOA And Cloud Computing
David Chou
 
PPTX
Microsoft Cloud Computing - Windows Azure Platform
David Chou
 
PPTX
Microsoft Cloud Computing
David Chou
 
PPTX
Windows Azure Platform in 3 Minutes
David Chou
 
PPTX
Windows Azure Platform
David Chou
 
Windows Phone app development overview
David Chou
 
Microsoft AI Platform Overview
David Chou
 
Designing Artificial Intelligence
David Chou
 
Immersive Computing
David Chou
 
Java on Windows Azure
David Chou
 
Microsoft Azure
David Chou
 
Designing Microservices
David Chou
 
Java on Windows Azure
David Chou
 
Windows Azure AppFabric
David Chou
 
Java on Windows Azure (Cloud Computing Expo 2010)
David Chou
 
Scale as a Competitive Advantage
David Chou
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
David Chou
 
Kelley Blue Book and Cloud Computing
David Chou
 
Windows Phone 7
David Chou
 
Silverlight 4 Briefing
David Chou
 
SOA And Cloud Computing
David Chou
 
Microsoft Cloud Computing - Windows Azure Platform
David Chou
 
Microsoft Cloud Computing
David Chou
 
Windows Azure Platform in 3 Minutes
David Chou
 
Windows Azure Platform
David Chou
 
Ad

Recently uploaded (20)

PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 

Microsoft Database Options

  • 2. Database ChoicesValue Props:Full h/w control – size/scale100% of API surface areaRoll-your-own HA/DR/scaleValue Props:100% of API surface areaRoll-your-own HA/DR/scaleDedicatedOn-premise SQL Server or other s/w on-premise Resource governance @ machine Security @ DB Server/OSValue Props:Auto HA, Fault-ToleranceFriction-free scaleSelf-provisioningSubset of API surface areaResourcesHosted Hosted SQL Server Resource governance @ VM Security @ DB Server/OSSQL Azure Database Virtual DB serverResource governance @ DB Security @ DB/Virtual ServerSharedLow“Friction”/ControlHighSQL Azure V1 targets scenarios that live in the lower left quadrant
  • 3. SQL Server 2008 R2Focus AreasImprovements in Scalability and PerformanceEnhanced ManageabilitySelf Service Business IntelligenceMaster Data Management
  • 4. Master Data ManagementSingle source of truth for Master DataThin client managementSafeguards of data integrityData versioningImport/Export capabilities
  • 5. SQL Server VersionsNew with SQL 2008 R2Datacenter Edition (256 logical processor support)
  • 6. Parallel Data Warehouse Edition (100+ TB support)Cloud DevelopmentWEB & CLOUDSthird party cloudweb applicationsdeveloper experienceuse existing skills and toolscomputestoragemanagementmanagementrelational dataconnectivityaccess controlON-PREMISESlob Applicationscomposite applications
  • 7. Storage in the CloudWEB & CLOUDSthird party cloudweb applicationsdeveloper experienceuse existing skills and toolsmanagementmanagementconnectivityaccess controlcomputerelational datastorageON-PREMISESlob Applicationscomposite applications
  • 8. Why Data in the CloudCapital CostsDBA (or lack thereof)High AvailabilityPerformanceScalability
  • 9. Windows Azure StorageThe goal is to allow users and servicesAnywhere at anytime accessStore data for any length of time Scale to store any amount of dataBe confident that the data will not be lost Pay for only what they use/store
  • 10. Windows Azure StorageStorageDurableScalable (capacity and throughput)Highly availableRich storage conceptsLarge user data items: blobsService state: tablesService communication: queuesSimple and familiar programming interfacesREST (HTTP and HTTPS).NET accessible
  • 11. Fundamental data abstractionsBlobs – provide a simple interface for storing named files along with metadata for the fileTables – provide structured storage. a table is a set of entities, which contain a set of propertiesQueues – provide reliable storage and delivery of messages for an application
  • 13. Blob Features and FunctionsStore large objects (up to 200GB)Associate metadata with blobmetadata is <name, value> pairs, up to 8KB per blobset/get with or separate from blob data bitsStandard REST InterfacePutBlobInserts a new blob or overwrites the existing blobGetBlobGet whole blob or a specific rangeDeleteBlob
  • 14. Windows Azure TablesProvides structured storageMassively scalable tablesBillions of entities (rows) and TBs of dataAutomatically scales across servers as traffic growsHighly availableAnywhere at anytime access to your dataDurableData is replicated at least 3 timesFamiliar and easy to use programming interfacesADO.NET data services – .NET 3.5 SP1.NET classes and LINQREST - with any platform or language
  • 15. Table Storage ConceptsentitytableaccountName =…Email = …usersName =…Email = …sallyPhoto ID =…Date =…photo indexPhoto ID =…Date =…
  • 16. Table Data ModelTableA storage account can create many tablesTable name is scoped by accountData is stored in tablesA table is a set of entities (rows)An entity is a set of properties (columns)EntityTwo “key” properties that together are the unique ID of the entity in the tablePartitionKey – enables scalabilityRowKey – uniquely identifies the entity within the partition
  • 17. Partition Deyand PartitionsEvery table has a partition keyIt is the first property (column) of your tableUsed to group entities in the table into partitionsA table partition All entities in a table with the same partition key valuePartition key is exposed in the programming model Allows application to control the granularity of the partitions and enable scalability
  • 18. Partition ExampleTable partition – all entities in tablewith same partition key valueApplication controls granularity of partitionPartition 1Partition 2
  • 19. Purpose of the Partition KeyEntity localityEntities in the same partition will be stored togetherEfficient querying and cache localityEntity group transactions Atomically perform multiple insert/update/delete over entities in same partition in a single transactionTable scalabilityWe monitor the usage patterns of partitionsAutomatically load balance partitionsEach partition can be served by a different storage nodeScale to meet the traffic needs of your table
  • 20. Choosing a Partition KeyGranularity of entity group transactionsMake the partition key only as big as you need it for entity group transactionsSpread out load across partitionsMore partitions – makes it easier to automatically balance loadCurrently have one primary indexImportant to use a partition key that is common in your queriesIf partition key is part of queryFast access to retrieve entities within a single partitionIf partition key is not specified in a query Then every partition has to be scanned
  • 21. Table Entities and PropertiesEach entity can have up to 255 propertiesMandatory properties for every entity in tablePartition keyRow key All entities have a system maintained versionNo fixed schema for rest of propertiesEach property is stored as a <name, typed value> pairNo schema stored for a table2 entities within the same table can have different propertiesProperties can be the standard .NET types String, binary, bool, DateTime, GUID, int, int64, and double
  • 22. Table Programming ModelProvide familiar and easy to use interfacesLeverage your .NET expertiseTable entities are accessed as objects via ADO.NET Data Services – .NET 3.5 SP1LINQ – language Integrated queryRESTful access to table and entitiesInsert/update/delete entities over the tableQuery over tablesGet back a list of structured entities
  • 23. Web + Worker Role PatternWeb roleWeb farm that handles request from the internetPush work items onto storage queueWorker roleProcess work item off storage queuePublic internetnmWeb roleWorker roleQLoad balancerCloud storage (tables, blobs, queues)
  • 24. Windows Azure QueuesProvide reliable message deliverySimple, asynchronous work dispatchProgramming semantics ensure that a message can be processed at least onceQueues are highly available, durable and performance efficientAccess is provided via REST
  • 25. Queue Storage ConceptsMessageQueueAccount128x128, http://…thumbnail jobs256x256, http://…sallyhttp://…photo processing jobshttp://…
  • 26. Account, Queues and MessagesAn account can create many queuesQueue name is scoped by the accountAqueue contains messagesNo limit on number of messages stored in a queueA message is stored for at most a week in a queuehttp://<Account>.queue.core.windows.net/<QueueName>MessagesMessage size <= 8 KBTo store larger data, store data in blob/entity storage, and the blob/entity name in the message
  • 27. queue programming APIqueuescreate/delete/clear queuesinspect queue lengthmessagesenqueue (queuename, message)dequeue (queueName, invisibility time T)returns the message with a messageIDmakes the message invisible for time Tdelete(queuename, messageID)
  • 28. Queue Best PracticesMake message processing idempotentNeed to deal with failuresNo fixed order for dequeue messagesInvisible messages result in out of order processing Use the queue length to scale your workers
  • 30. SQL AzureSQL Server Data Services false startFamiliar relational modelUses existing APIs & toolsFriction free provisioning and reduced managementBuilt for the cloud with availability and scaleClear feedback: “I want a SQL database in the cloud”
  • 31. Service Provisioning ModelEach account has zero or more serversAzure wide, provisioned in a common portalBilling instrumentEach server has one or more databasesContains metadata about the databases and usageUnit of authenticationUnit of geo-locationGenerated DNS based nameEach database has standard SQL objectsUnit of consistencyUnit of multi-tenancyContains users, tables, views, indices, etc.Most granular unit of billingSKU’s Web edition -1 GBBusiness edition – 10 GB account server database
  • 32. ArchitectureShared infrastructure at SQL database and belowRequest routing, security and isolationScalable HA technology provides the glueAutomatic replication and failoverProvisioning, metering and billing infrastructureMachine 5Machine 6Machine 4SQL InstanceSQL InstanceSQL InstanceSQL DBSQL DBSQL DBUserDB1UserDB2UserDB3UserDB4UserDB1UserDB2UserDB3UserDB4UserDB1UserDB2UserDB3UserDB4SDS Provisioning (databases, accounts, roles, …, Metering, and BillingScalability and Availability: Fabric, Failover, Replication, and Load balancingScalability and Availability: Fabric, Failover, Replication, and Load balancing
  • 33. Sample of SQL compatibilityIn Scope for V1Tables, indexes and viewsStored ProceduresTriggersConstraintsTable variables, session temp tables (#t)…..Out of Scope for V1Distributed Transactions
  • 35. CLR
  • 38. Physical server or catalog DDL and viewsLogical vs. Physical AdministrationCustomer can focus on logical administrationSchema creation and managementQuery optimizationSecurity management (logins, users, roles)Service handles physical managementAutomatically replicated with HA “out of the box”Transparent failover in case of failureLoad balancing of data to ensure SLADBA role places more focus on logical management
  • 39. Programming ModelSmall data setsUse a single databaseSame model as on-premise SQL ServerLarge data setsPartition data across many databasesUse parallel fan-out queries to fetch the dataApplication code must be partition aware
  • 41. Management ToolingSQL Server 2008 R2 Management StudioSQLCMDThird party/ communityadd-ons
  • 43. Customer Learning’s from TAP programUse SQL Azure to store metadata and BLOB storage for large filesHighly elastic load patterns in a cost effective way is an industry challengeCombination of different SKUs
  • 44. Sync FrameworkSQL AzureLocal SQL DBSync ProcessSync ProcessLocal ComputerMSDN - http://msdn.microsoft.com/en-us/sync/default.aspx
  • 46. PricingWindows Azure StorageBandwidth: $0.10 in / $0.15 out / GB$0.15/GB stored/monthSQL Azure StorageBandwidth: $0.10 in / $0.15 out / GBWeb edition (1GB): $9.99/monthBusiness edition (10GB): $99.99/month
  • 47. Data Options in the [email protected]://www.joeshirey.com