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
Change Connection String SQL Azure TDS Your App
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
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
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
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
TIP: There is a new code library for all this!
Sharding On Premises On Premises Cloud Customer Credit Card # Shipping Information Last Name First Name Contact ID Social Security # Billing Data Other Information
On Premises Encryption Customer Credit Card # Shipping Information Last Name First Name Contact ID Social Security # Billing Data Other Information On Premises Cloud
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 (*)
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
Feature Azure Table SQL Azure Data Access REST API, ADO .NET, Client Library SDK Standard tools and APIs apply SSMS, Visual Studio, ADO .NET, ODBC Column Types Basic Types Usual SQL Server Data Types Portability Data portability coming with Windows Azure Appliance <ul><li>Data in SQL Azure similar to SQL Server </li></ul><ul><li>Easy migration in and out of the cloud </li></ul><ul><li>Use multi stream transfer to mitigate network latency. </li></ul>Queries Upto 1000 entities [token pagination] Beyond 5 sec – return continuation token Queries by partition & row key are fast No Custom Indexes Today Non key queries are scans Query capabilities as per standard SQL Server database expectations Offer Server Side Processing through Stored Procedures and Complex Queries (Aggregation, Joins, Sorts, Filters, etc.)
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
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.