Scott Klein Technical Evangelist Microsoft Corporation Get in touch wwwscottLkleincom scottklmicrosoftcom sqlscott SaaS Physical Virtual A Continuous Offering From Private To ID: 424393
Download Presentation The PPT/PDF document "Getting Your Nerd on with Microsoft’s ..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Getting Your Nerd on with Microsoft’s Cloud data services
Scott Klein
Technical Evangelist
Microsoft
CorporationSlide2
Get in touch
www.scottLklein.com
scottkl@microsoft.com
@
sqlscottSlide3
SaaS
Physical
Virtual
A Continuous Offering
From Private To
Public Cloud
IaaS
PaaSSlide4
Agenda
Windows Azure SQL Database
Architecture
Application ConnectivityScalabilityWindows Azure Table Storage
ArchitectureQuerying Best Practices and ConsiderationsCostTransactionsSlide5
Windows Azure SQL DatabaseSlide6
How It Works
Architecture
Client Layer - Used by application to communicate directly with SQL Database.
Services Layer – Gateway between Client layer and Platform layer.
Platform Layer – Includes physical servicers and services that support the Services layer.
Infrastructure Layer – IT administration of the physical HW and OS.
Infrastructure Layer
PHP
WCF Data Services
SQL Server
Applications
and Tools
ODBC
ADO.NET
Tabular Data Stream (TDS)
Client Layer
Services Layer
Provisioning
Billing and Metering
Connection Routing
Provisioning
Billing and Metering
Connection Routing
Provisioning
Billing and Metering
Connection Routing
…
……TDS+SSLPlatform LayerSQL ServerSQL Database FabricManagement ServicesSQL ServerSQL Database FabricManagement ServicesSQL ServerSQL Database FabricManagement Services………Slide7
Application Connectivity
Considerations
A
nd Best Practices
login
:
[login]@[server]
Idle
connections
Long running
transactions
DoS
guard
Failover
events
Throttling
Connection
pooling and
Retry logic
Latency introduced for
updatesNo cross-database dependenciesSlide8
Scalability Model For The Cloud
Cloud Applications
Require Scale Beyond Scale-Up
Demand the Best Economics
Best Price/Performance
Elasticity + Pay-as-you-goSlide9
Challenges
Defining the Tenant
Establishing Tenant’s surrogate key
Establish Sharding Strategy (Range / Point)Elastic Scalability (Splits/Merges/Tenant Moving)Application Lifecycle Management (Dev; Test; Deploy; Upgrades)Overcoming limitations of existing tools & available features
Transient nature of connectivitySlide10
SQL Database
Demo Time!Slide11
Windows Azure TablesSlide12
Azure Storage ArchitectureSlide13
Table Storage Concepts
Entity
Table
Account
contoso
Name =…
Email = …
Name =…
EMailAdd
=
customers
Photo ID =…
Date =…
photos
Photo ID =…
Date =…Slide14
Table
Details
Insert
Update
Merge – Partial update
Replace – Update entire
entity
Upsert
Delete
Query
Entity Group Transactions
Multiple CUD Operations in a single atomic transaction
Create, Query, Delete
Tables can have metadata
Not an RDBMS!
Table
EntitiesSlide15
No Fixed Schema
FIRST
LAST
BIRTHDATE
Wade
Wegner
2/2/1981
Nathan
Totten
3/15/1965
Nick
Harris
May 1, 1976
FAV SPORT
CanoeingSlide16
Querying
FIRST
LAST
BIRTHDATE
Wade
Wegner
2/2/1981
Nathan
Totten
3/15/1965
Nick
Harris
May 1, 1976
?$filter=Last
eq
‘Wegner’Slide17
Purpose of the PartitionKey
Entity Locality
Entities in the same partition will be stored
togetherEfficient querying and cache localityEndeavour to include partition key in all queries
Entity Group TransactionsAtomic multiple Insert/Update/Delete in same partition in a single transactionTable ScalabilityTarget throughput – 20,000 tps/partition, several thousand tps/accountWindows Azure monitors the usage patterns of partitionsAutomatically load balance partitions
Each partition can be served by a different storage nodeScale to meet the traffic needs of your tableSlide18
PartitionKey
(Category)
RowKey
(Title)
Timestamp
MODELYEARBikes
Super Duper Cycle
…
2009
Bikes
Quick Cycle 200 Deluxe
…
2007
…
…
…
…
Canoes
Whitewater
…
2009
Canoes
Flatwater
…
2006
PartitionKey
(Category)RowKey(Title)TimestampMODELYEARRafts14ft Super Tourer…1999…………
SkisFabrikam Back Trackers…2009…………TentsSuper Palace…2008PartitionKey(Category)RowKey(Title)TimestampMODELYEARBikesSuper Duper Cycle…2009BikesQuick Cycle 200 Deluxe…2007…………CanoesWhitewater…2009CanoesFlatwater…2006Rafts14ft Super Tourer…1999…………SkisFabrikam Back Trackers…2009…………TentsSuper Palace…2008Partitions and Partition RangesServer ATable = ProductsServer BTable = Products[Canoes - MaxKey)
Server ATable = Products[MinKey - Canoes)Slide19
Windows Azure Tables
Demo Time!Slide20
Cool Stuff
Azure Office Hours (benkotips.com/
OfficeHrs
)
Live Call-in Radio Show for DevelopersSlide21
Thank YouSlide22