BANGALORE, INDIA: SQL Azure (SQLA) is the cloud based relational database service from Microsoft. SQL Azure servers deliver data services like database creation, transactions and management over the Internet. As compared to traditional on-premise data infrastructure, customers no longer have to bear upfront costs for hardware and platforms.
The SQL Azure service enables customers to rapidly provision (or drop) their databases as per demand and they are only charged for the days of usage. Additionally, time consuming administration tasks like backups, patches are now taken care by the SQL Azure service.
This service model makes SQL Azure equally suitable for large enterprises and small businesses or developers all alike. For DBAs and data developers planning to use SQL Azure as their data tier solution, this article highlights the important considerations involved in developing and managing SQL Azure databases.
SQL Azure Subscriptions
SQL Azure customers can provision data storage (and associated transaction processing) that can scale on-demand and is highly available. SQL Azure customers have two choices of databases. The Web Edition SQLA database is suitable for databases with storage requirements less than 5GB and a Business Edition SQLA database for storage requirements greater than 5 GB. The cost of a SQL Azure database is amortized over month and customers are charged for the number of days customer have the database.
Service Oriented Architecture of SQL Azure
Compared to on-premise SQL Server installations, SQL Azure services are delivered over the Internet. Instead of physical servers, data developers and DBAs have to work with logical servers and databases. Figure below depicts an overview of the SQL Azure architecture.
Tabular Data Stream (TDS): TDS is an application level protocol used for communication between clients and SQL Server. Any protocol that can generate TDS over the Internet is supported. This enables a variety of client applications from PHP to WCF data services to access the SQL Azure services.
SQL Azure Gateway Services: The SQL Azure gateway services are the front end for all client applications trying to access the SQL Azure services. In addition to providing gateway services like user authentication, basic request parsing, firewall verification, blocking DOS attacks, etc., the gateway services are also responsible for account provisioning, billing and usage monitoring.
Node: SQL Azure node is a commodity hardware machine that hosts one single instance of the SQL Server. This SQL Server instance hosts exactly one user database. The database has logical partitions and one partition hosts one SQL Azure database.
SQL Azure Topology: A special process called the fabric runs on every node in SQL Azure. The fabric is responsible for request routing, load balancing, failure detection and reconfiguration in case of adding new nodes or replacing failed nodes.
Logical Database: SQL Azure database is a logical collection of three SQL Server databases. SQL Azure requires that user data is replicated three times (1 primary replica, 2 secondary replicas) to ensure high availability. Each of these replicas is hosted in a logical partition belonging to a node. By design, all the replicas are never stored on the same physical machine thereby drastically reducing the chances of all three replicas failing at the same time. The gateway service is responsible for connecting an incoming request to the primary replica serving the data. The details of which particular node is hosting the replica are never known to client applications accessing the SQL Azure data.
Logical Server: SQL Azure server is not a machine. It is a logical collection of one or more SQL Azure databases. It is the TDS end point to which clients connect. The TDS end point itself is serviced by multiple redundant SQL Azure gateway servers.
Click here to read more!