The document discusses extending SQL Server to the cloud using SQL Azure. It describes how applications can use standard SQL client libraries to connect to SQL Azure through a load balancer and gateway that enforces authentication and authorization. It also covers data sync between on-premises and cloud databases, sharding data across on-premises and cloud, and compares features of SQL Azure and Azure Tables.
6. Internet LB TDS (tcp) TDS (tcp) Apps use standard SQL client libraries: ODBC, ADO.Net, PHP, … Load balancer forwards ‘sticky’ sessions to TDS protocol tier SQL SQL SQL SQL SQL SQL Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to backend SQL Application TDS (tcp) Gateway Gateway Gateway Gateway Gateway Gateway Scalability and Availability: Fabric, Failover, Replication, and Load balancing
7. From Windows Azure From Outside Microsoft Datacenter From Windows Azure & Outside Microsoft Datacenter Application / Browser SQL Azure Code Near App Code / Tools SQL Azure Microsoft Datacenter Code Far Hybrid Microsoft Datacenter SQL Azure Microsoft Datacenter SQL Azure Data Sync Windows Azure SQL Server Windows Azure App Code / Tools
25. TIP: Expect Web Role to SQL Azure to take about twice as long Service Request App Data App Consistent and accepted latencies On premises application Files Service Request App Data Latency App Increases in quantity and variability of latencies Cloud based application Latency
26. Service Request App Data Timeouts? App Increased likelihood of timeouts Cloud based application Service Request App Data App Consistent, reliable connectivity and access On premises application Yes No Yes No Tried 5 times? Connection Successful? Try to connect Continue doing work Fail
32. Sharding On Premises On Premises Cloud Customer Credit Card # Shipping Information Last Name First Name Contact ID Social Security # Billing Data Other Information
33. On Premises Encryption Customer Credit Card # Shipping Information Last Name First Name Contact ID Social Security # Billing Data Other Information On Premises Cloud
34.
35.
36. Single Blob Drive Queue Table Single SQL Azure Database Structured Data Y Y Relational Database Y Server Side Processing Y Direct Access from outside Azure Y Y Y Y Messaging Infrastructure Y Persistent Storage Y Y 1 week Y Y Size Limit 200 GB/ 1 TB 1 TB 100 TB 100 TB 50 GB (*)
37. Feature Azure Table SQL Azure Table Partitioning & Scale Implicit based on Partition Key Explicitly managed by the Application (Sharding – future feature) Index Capabilities Table indexed on Partition Key + Row Key 0 Secondary Indexes 1 Clustered Index on any column 999 Secondary Indexes Table Limits Row Size – 1 MB Column Limit – 255 Table Limit – 100TB Row Size – 8MB Column Limit – 1024 Table Limit - ~50GB Transactions Transactions on entities within partition No Transactions across tables or partitions Up to 100 operations in a Transaction Payload upto 4MB per Transaction Fully compatible transactional semantics with SQL Server. No cross Database transactions Consistency Model Transactionally Consistent Transactionally Consistent Concurrency Single Optimistic Concurrency Strategy Full range of isolation and concurrency models as supported by RDBMS
38.
39. A traditional set of data that is traditionally stored on the local environment is configuration and user settings. Commonly this is stored in the registry, xml or ini files. Options Best Case Usage Blob storage Configuration file that is read only once during app load SQL database Used in environments where a SQL database already exists Windows Azure table User settings that may be changed externally from the environment
40.
41.
42.
Notas do Editor
Slide Objectives: Introduction to SQL Azure Explain SQL Azure Database Indicate that other services are coming in the future Speaking Points: SQL Azure provides Microsoft SQL Server in the cloud Broadly compatible with online SQL Server In the future other services are planned DataSync- to sync data between On premise and the cloud Notes Cloud-based relational database service built on SQL Server® technologies. It provides a highly available, scalable, multi-tenant database service hosted by Microsoft in the cloud. SQL Azure Database helps to ease provisioning and deployment of multiple databases. Developers do not have to install, setup, patch or manage any software. High availability and fault tolerance is built-in and no physical administration is required. http://www.microsoft.com/windowsazure/sqlazure/ http://go.microsoft.com/?linkid=9686976
Slide Objectives: Understand the key differentiators of SQL Azure Understand where a user has control and where the cloud runs things Speaking Points: SQL Azure provides highly available SQL Server. Appears to be a SQL Server to the client. In reality is 3 transitionally consistent copies of the database that are fronted by a Gateway that appears to be a SQL server Simple to provision- create a logical server in the Portal, execute a create DB Command to create a new database Can add and remove DBs easily from application to scale up and down Customers look after logical optimizations like indexes SQL Azure manages the physical database No need to install or patch software or other physical administration Automatic high availability and fault tolerance Simple provisioning and deployment of multiple databases Scale databases up or down based on business needs Multi-tenant Integration with SQL Server and tooling including Visual Studio Support for T-SQL based familiar relational database model Notes http://www.microsoft.com/windowsazure/sqlazure/ http://msdn.microsoft.com/en-us/windowsazure/sqlazure/default.aspx
Slide Objectives: Affirm that SQL Azure is just a TDS server. Existing SQL Server consumers can connect to it Speaking Points: Connecting to SQL Azure is simply a case of changing the connection string. The SQL Azure fabric ensures 3 transitionally consistent replicas of your data You will connect to a SQL Azure TDS gateway, this appears to be a SQL Server but will actually route your requests through to one of the three replicas stored in the DC Avoid injection attacks by using the SqlConnectionStringBuilder class. It is available from the .NET Framework to simplify creating the connection string. For more information, see Connection String Builders (ADO.NET) . Carefully protect your connection string. A connection string presents a potential vulnerability if it is not secured. For more information, see Protecting Connection Information (ADO.NET) . In order to completely secure your connection, especially when connecting to SQL Azure over the Internet, insure that the ADO.NET Encrypt and TrustServerCertificate connection parameters are set. For general considerations about connecting to databases in SQL Azure, see Guidelines for Connecting to SQL Azure Database . More on security of SQL Azure in Day 3 Notes http://msdn.microsoft.com/en-us/library/ee336243.aspx
Slide Objective Explain the architecture of SQL Azure in a diagrammatic form Speaker Notes Access is via a load balancer- load balancer is a sticky (stateful) load balancer Gateway nodes appear to TDS client as a SQL Server, but, merely forward requests through to the underlying SQL servers that actually store the data Requests are routed to a primary replica- more on replicas shortly Shared infrastructure at SQL database and below Each user database is replicated to one or more servers (configurable based on SLA) Client requests are routed to current “primary server” for read and write operations (based on SQL session) Security, lockdown and isolation enforced in SQL tier Highly scalable and state-of-the-art HA technology Automatic failure detection; client request re-routed to new primary on failure High SLA guarantee using logical replication (hot standby replicas) Automatic management, self-healing and load balancing across shared resource pool SDS provides provisioning, metering and billing infrastructure Notes SQL Azure architecture http://msdn.microsoft.com/en-us/library/ee336271.aspx
Slide Objective Discusses various SQL Azure data access topologies Speaking notes Access from within Microsoft Datacenter (Code near scenario) Connect a Windows Azure Compute application to SQL Azure Executing Asp.NET code, PHP, other managed code, native code Simple familiar programming model Access from on premise applications (Code far) Solve the DB under the desk issue .NET, native or other platform support Microsoft access as a front end offers interesting scenario Need to be conscious of query frequency and/or payload Access from both Cloud and On Premise E.g. application with browser front and AND a need to sync to mobile devices Cloud provides an always up rendezvous point for data consumers Windows Azure runs the browser based application Other applications connect remotely- TDS, Odata, Snc Notes MSDN on topology options http://msdn.microsoft.com/en-us/library/ee336239.aspx SQL Azure + MS Access http://blogs.msdn.com/b/access/archive/2010/06/07/access-2010-and-sql-azure.aspx
Slide Objective Provides detailed information on connecting to SQL Azure Speaker Notes SQL Azure uses the standard SQL connection string syntax Several important points Need to specify the database to connect- i.e. No USE DB option Set the initial catalog to do this Must enable encryption Traffic transits over the internet. Should not trust server certificate (i.e. override trust chain check0 More on security and encryption on Day 3 security session SQL Azure has a configurable firewall Must explicitly allow connectivity from address ranges Open the smallest ranges possible Will be times when you need to ‘allow all’ E.g. Datasync with mobile clients etc… Notes Connecting to SQL Azure step by step http://msdn.microsoft.com/en-us/library/ee336243.aspx SQL Azure Firewall http://msdn.microsoft.com/en-us/library/ee621782.aspx
Slide Objective Provides a guide to SQL Azure vs SQL Server compatability Speaker Notes For more details see this document SQL Azure vs SQL Server differences http://www.microsoft.com/downloads/details.aspx?FamilyID=86f12b41-1eba-4567-9ac8-02eaa7d12034&displaylang=en
Slide Objective Provide information on the two SQl Azure editions Speaker Notes Not prorated by size Pro rated by the day or part thereof by midnight UTC- charged for peak size that day Can move up and down between sizes SQL Azure has no query charge Excessively long transactions or high query load may result in throttling Traffic as per other Windows Azure Platform Services