Choosing Between Azure General Purpose or Business Critical Tiers

By:   |   Updated: 2022-01-14   |   Comments   |   Related: > Azure


Problem

Cloud costs can be very appealing at the beginning of the cloud journey, but costs can become very high if we pick wrong the architecture model to support our needs. In this article we will look at some things to consider when select an Azure service tier.

Solution

There are two tiers we can choose, either the General Purpose or Business Critical which I will cover below.

General Purpose

I see a lot of companies who use the General Purpose model for their production Azure SQL Database. At first glance it looks like the correct choice, you have numerous CPU and Memory options to choose from, which could be a good simple starting point.

In the Azure SQL Database documentation, it explains that General Purpose is a budget-friendly tier and is designed for workloads that are not performance sensitive. There are many production databases that are small and used infrequently, so this could be a good fit.

Instances built on the General Purpose tier can use one of the 3 Different hardware generations (more compute oriented or more memory oriented) and configured from 2 to 72 CPUs and up to 207GB of Memory.

For storage, there are no options, we have only Remote SSDs in any possible hardware configuration in this tier which provides us with 5-7 ms/write and 5-10 ms/read. So if IO is extremely important, the Business Critical may be a better choice.

Business Critical

If you need a fast database system, this means that your environment is performance sensitive. Most busy multi-core on-premises production servers would translate to something within the Business Critical architectural model.

In the Business Critical architecture model, compute and storage are integrated on the single node. Both the SQL Server database engine process and underlying .mdf/.ldf files are placed on the same node with locally attached SSD storage providing low latency to your workload, 1-2 ms/write and 1-2 ms/read.

Furthermore, a Business Critical cluster has built-in Read Scale-Out capability that provides free-of-charge a built-in read-only node that can be used to run read-only queries (for example reports) that should not affect performance of your primary workload.

Production environments with a high number of insert, update and delete operations have no other choice but to use the Business Critical architecture tier.

Here are some more benefits:

  • Advanced data corruption protection
  • Higher availability (99.995% availability, compared to 99.99% for General Purpose tier)
  • Guaranteed Recovery Point Objective (RPO) of 5 seconds and Recovery Time Objective (RTO) of 30 seconds
  • Higher resiliency and faster recovery from failures

Keeping Costs Down

The Business Critical tier is more expensive than the General Purpose tier, but there are ways to lower costs in the cloud without compromising production workload performance.

One option is to choose a 1 year or 3 year reservation model which gives us up to a 40% discount over pay-as-you-go pricing.

Here are some other things to consider for keeping costs in check:

  1. Cloud Elasticity is our best friend and one of the major advantages of the public cloud environment. It allows us to have cost and performance effective systems by providing automatic tools to expand or compress the infrastructure resources. We can change the hardware composition of our instance when it's needed and the downtime is minimal.
  2. If automatic adjustment is not appropriate, we can use another cloud advantage, Scalability, to adjust resources according to our workload behavior. We can optimize costs by scaling down on weekends and scaling up midweek. Scaling compute up or down typically takes up to 2 minutes regardless of data size because it usually does not involve any data movement.
  3. It is important to review consumption and performance monthly and adjust the database instance resources.
  4. An additional approach to reduce costs is to take a closer look at Dev and QA environment configuration. We can either use the Free Tier, serverless architecture tier or pool of resources shared between multiple instances. We can also let each developer use the developer edition of SQL Server installed on his/her laptop instead of using cloud resources and spin up a SQL Database from time to time to perform testing.
  5. Using appropriate data management cloud services for different application components is also a modern, cost effective and performance effective approach. Consider moving all non-OLTP activity out of the relational database.
    • Store row data in Azure Data Lake instead of Staging database.
    • Process, clean, enrich and aggregate data using Azure Data Factory.
    • Use caching layers for frequent queries that can tolerate data freshness latency.
    • Use Azure Synapse for analytical workload
    • Use Azure Cosmosdb for graph models or for the key/document query access patterns.
Next Steps


sql server categories

sql server webinars

subscribe to mssqltips

sql server tutorials

sql server white papers

next tip



About the author
MSSQLTips author Maria Zakourdaev Maria Zakourdaev has been working with SQL Server for more than 20 years. She is also managing other database technologies such as MySQL, PostgreSQL, Redis, RedShift, CouchBase and ElasticSearch.

This author pledges the content of this article is based on professional experience and not AI generated.

View all my tips


Article Last Updated: 2022-01-14

Comments For This Article

















get free sql tips
agree to terms