220 likes | 375 Views
Getting Your Nerd on with Microsoft’s Cloud data services. Scott Klein Technical Evangelist Microsoft Corporation. Get in touch. www.scottLklein.com. scottkl@microsoft.com. @ sqlscott. A Continuous Offering From Private To Public Cloud. Virtual. Physical. SaaS. IaaS. PaaS.
E N D
Getting Your Nerd on with Microsoft’s Cloud data services Scott Klein Technical Evangelist Microsoft Corporation
Get in touch www.scottLklein.com scottkl@microsoft.com @sqlscott
A Continuous Offering From Private To Public Cloud Virtual Physical SaaS IaaS PaaS
Agenda • Windows Azure SQL Database • Architecture • Application Connectivity • Scalability • Windows Azure Table Storage • Architecture • Querying • Best Practices and Considerations • Cost • Transactions
How It Works Client Layer PHP SQL Server Applications and Tools WCF Data Services 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. ODBC ADO.NET Tabular Data Stream (TDS) TDS+SSL Services Layer Provisioning Provisioning Provisioning … Billing and Metering Billing and Metering Billing and Metering … Connection Routing Connection Routing Connection Routing … Platform Layer SQL Server SQL Server SQL Server … SQL Database Fabric SQL Database Fabric SQL Database Fabric … Management Services Management Services Management Services … Infrastructure Layer
Application Connectivity Considerations And Best Practices • login: [login]@[server] • Idle connections • Long running transactions • DoSguard • Failover events • Throttling • Connection pooling and Retry logic • Latency introduced for updates • No cross-database dependencies
Scalability Model For The Cloud Cloud Applications Require Scale Beyond Scale-Up Demand the Best Economics Best Price/Performance Elasticity + Pay-as-you-go
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 connectivity
SQL Database Demo Time!
Table Storage Concepts Account Table Entity Name =… Email = … customers Name =… EMailAdd= contoso Photo ID =… Date =… photos Photo ID =… Date =…
TableDetails Create, Query, Delete Tables can have metadata Not an RDBMS! Table Insert Update Merge – Partial update Replace – Update entire entity Upsert Delete Query Entity Group Transactions Multiple CUD Operations in a single atomic transaction Entities
No Fixed Schema FAV SPORT Canoeing
Querying ?$filter=Last eq ‘Wegner’
Purpose of the PartitionKey Entity Locality Entities in the same partition will be stored together Efficient querying and cache locality Endeavour to include partition key in all queries Entity Group Transactions Atomic multiple Insert/Update/Delete in same partition in a single transaction Table Scalability Target throughput – 20,000 tps/partition, several thousand tps/account Windows Azure monitors the usage patterns of partitions Automatically load balance partitions Each partition can be served by a different storage node Scale to meet the traffic needs of your table
Partitions and Partition Ranges Server A Table = Products [MinKey - Canoes) Server A Table = Products Server B Table = Products [Canoes - MaxKey)
Windows Azure Tables Demo Time!
Cool Stuff Azure Office Hours (benkotips.com/OfficeHrs) Live Call-in Radio Show for Developers