Azure SQL Database | Scalable and Reliable Solution for Hosting Multiple Databases

Recommended Database Platform for Hosting 20 GB Databases with Dynamic Scaling and 99.99% Uptime SLA

Question

You are designing a SQL database solution. The solution will include 20 databases that will be 20 GB each and have varying usage patterns.

You need to recommend a database platform to host the databases. The solution must meet the following requirements:

-> The compute resources allocated to the databases must scale dynamically.

-> The solution must meet an SLA of 99.99% uptime.

-> The solution must have reserved capacity.

-> Compute charges must be minimized.

What should you include in the recommendation?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

D

Azure SQL Database elastic pools are a simple, cost-effective solution for managing and scaling multiple databases that have varying and unpredictable usage demands. The databases in an elastic pool are on a single server and share a set number of resources at a set price. Elastic pools in Azure SQL Database enable

SaaS developers to optimize the price performance for a group of databases within a prescribed budget while delivering performance elasticity for each database.

Guaranteed 99.995 percent uptime for SQL Database

https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-pool-overview https://azure.microsoft.com/en-us/pricing/details/sql-database/elastic/

Based on the requirements, the recommended solution should be able to dynamically scale compute resources, provide high availability with an SLA of 99.99%, offer reserved capacity, and minimize compute charges. Let's take a closer look at each option:

A. 20 databases on a Microsoft SQL server that runs on an Azure virtual machine in an availability set: This option involves deploying 20 separate instances of Microsoft SQL Server on 20 different virtual machines (VMs) in an availability set. Each database would be hosted on its own VM. While this option provides the flexibility to configure each VM to meet specific performance requirements, it also involves managing multiple VMs, which can increase operational overhead. Additionally, scaling resources dynamically would require manually adjusting VM sizes or adding more VMs. This option does provide reserved capacity, but the compute charges may be higher compared to other options.

B. 20 instances of Azure SQL Database serverless: Azure SQL Database serverless is a database service that allows users to automatically scale compute resources based on workload demand, making it a good fit for dynamic resource requirements. However, each database would be hosted on a separate instance, which can lead to higher costs as each instance incurs a minimum cost. While Azure SQL Database serverless does provide high availability with an SLA of 99.99%, it doesn't offer reserved capacity, which can lead to higher costs.

C. 20 databases on a Microsoft SQL server that runs on an Azure virtual machine: This option involves deploying 20 separate databases on a single VM running Microsoft SQL Server. While this approach reduces operational overhead by managing only one VM, it can lead to performance issues if multiple databases are competing for resources on the same VM. Additionally, scaling compute resources dynamically would require manually adjusting VM sizes. This option provides reserved capacity and may have lower compute charges than option A.

D. An elastic pool that contains 20 Azure SQL databases: An elastic pool is a collection of databases that share a set of resources. Azure automatically manages the resources to ensure each database gets the necessary compute power. This option provides dynamic scaling of compute resources based on demand, high availability with an SLA of 99.99%, reserved capacity, and can minimize compute charges. By sharing resources, elastic pools reduce operational overhead and can also help optimize resource utilization, resulting in cost savings.

Based on the requirements and analysis, the recommended option is D: an elastic pool that contains 20 Azure SQL databases.