Microsoft Azure was officially launched in 2010 (back then, it was named Windows Azure Platform) and Azure’s SQL Services, SQL Azure, was one of the first cloud-based relational database services and one of the first services offered by Microsoft upon launch.
According to industry analysts and based on Turbonomic’s customer data, Cloud database is one of the most highly adopted PaaS services globally. Microsoft, one of the top vendors for commercial relational databases globally, made the smart choice to offer a cloud-based service based on its successful SQL server product, now called Azure SQL.
The largest database size available on Azure SQL (based on DTU purchasing model) is 4000 DTU with 4096 GB of storage billed at almost $16,000/month – see the image below from Azure’s pricing calculator.
In most cases, when application owners define their sizing requirements for Azure SQL services, it is done without any real insight into what exactly is needed from a compute and storage resourcing perspective. In some cases, this may lead to poor database performance, and to avoid it, many opt to select the higher tiers, which will lead to out-of-control cloud bills.
The only way to truly address this conundrum is to observe the database utilization and overall performance and make resourcing decisions to match the database demand to the available database tiers on the respective Database service - in this case, Azure SQL.
Customers told us that they “felt lost” when they tried to optimize their databases on the cloud. Some customers also told us that the cloud operations team’s sizing recommendations were often rejected by the Application-Owners and/or the Database Admins because they “could not justify the scale down requests to reduce cost.”
Needless to say, no customer ever reported a case where an app-owner declined a database scale up request to give more resources to a struggling database.
When we embarked on the journey to solve these challenges to our customers who depend on Azure SQL Databases for their critical applications, we knew exactly what was needed. The only way to solve this problem is to provide trustworthy, application-aware, and data-driven scaling actions that will increase the application owners' confidence and entice them to take the actions without concerns.
Turbonomic has done this successfully with cloud IaaS services (mainly VM compute and storage), which helped our customers safely reduce their cloud bill by millions of dollars every month – and most importantly, without ever impacting application performance.
After a lot of hard work, we are excited to announce that Turbonomic Application Resource Management capabilities now include Azure SQL PaaS optimization.
Azure SQL DTU (Database Transaction Unit) Model
Microsoft Azure SQL service offers two different purchasing models for customers:
- Database Transaction Unit (or DTU) based purchasing model
- Virtual Core (or vCore) based purchasing model
Image source: Microsoft Azure
vCore is a model that allows users to define and scale compute, storage, and IO resources independently.
DTU (Database Transaction Unit), the current model supported by Turbonomic, is a performance metric that is a function of memory, CPU, and I/O. A fixed set of resources are assigned to the Database via different performance tiers:
The service offers bundled, preconfigured resources, so that scaling performance is simplified by scaling single DTU metrics.
In Turbonomic, our platform discovers and monitors DTU, storage, concurrent workers (processes), and concurrent sessions (connection) to decide the best tier. Congestion or underutilization of DTU and Storage will trigger an action to scale to the tier, fulfilling the real-time utilization need of DTU, storage amount, concurrent workers, and concurrent sessions.
Turbonomic Azure DTU Database Support Overview
Scale Up Actions for Performance Assurance
Turbonomic will continuously monitor all Azure SQL servers discovered under an Azure subscription using Azure APIs and will ingest all available metrics for the workloads.
When a performance risk is identified, Turbonomic will generate a scale-up action to move the database to the most appropriate tier.
The action screen will include the exact action to take, visualization of historical data based on percentiles utilization (95th percentile by default) to help users quickly identify the reason for the action, including projected utilization post-action, and last but not least, the cost impact of the action. If you want to learn more about percentiles and how Turbonomic is employing them for cloud optimization, make sure to check out this blog post.
To help inform our customers on which actions are disruptive on the cloud, we have added disruptiveness details, including a link to Azure documentation on what near-zero downtime means. For example, in the scale-up action below, Turbonomic has recommended to scale an Azure SQL server from Standard S3 to Standard S4 trier to address a DTU congestion at 100%, which is consistent for 95% of the time. The scale-up action will require $161 / mo. investment, and if taken, the SQL Database DTU utilization will drop to 50%.
Scale Down Actions for Cost Optimization
Since most Azure SQL servers (and IaaS workloads, and their volumes) are oversized, most of the actions generated by Turbonomic will be to scale down and reduce costs. In this example, Turbonomic generated an action to scale down an Azure SQL server using only 1% of its allocated DTU for 95% of the time over 14 days. The action is to move from the Premium – P11 tier to the Standard – S3 tier. The action will reduce the allocated DTU from 1750 to 11 with projected utilization of 17.5% post action, and storage size will shrink from 1 TB to 400 GB with 74% projected utilization. The impact of the action will be over $6,600 / mo. savings!
Finally, Turbonomic will generate unique performance-focused actions to help customers claim all the free storage available within their tier, if they have not done so for some reason, with zero cost. The example below illustrates that scenario - note that there are no extra charges associated with the action.
Deep visibility into Azure SQL Database information
Customers can view important information on their database, including its current tier, cost (including Microsoft EA pricing discounts), related subscription, resources group, and the maximum workers and sessions supported by the tier, all in a single widget.
Storage Support and DTU capacity, utilization and Cost
The Turbonomic UI will also display the real-time utilization information for the DTU and storage space utilization per Azure SQL database.
Turbonomic will also provide an accurate cost breakdown. For example, in Azure SQL, the various tiers include the pre-defined storage amount, and when users exceed it without moving to a higher trier, they will be charged for storage. Turbonomic will display that vital information to the users.
New Automation Policy for Database
In Turbonomic 8, we have revamped and enhanced our automation policies, user experience, and overall flow. For Azure SQL databases, the Database scaling optimization action can be fully automated, executed manually from the UI, or scheduled for a pre-defined maintenance window. Turbonomic also supports integration with ITSM tools, such as ServiceNow, to approval workflows for all actions, not just database optimization.
As customers start to modernize their applications by moving from IaaS to PaaS services, they realize that the same challenges they faced on-premises (and then on IaaS) still exist with PaaS services such as Azure SQL Service, or Managed Kubernetes Service such as AKS on Azure or EKS on AWS. The challenge of balancing performance and cost does not go away when adopting PaaS – in fact, it becomes even more challenging since the PaaS services are generally more expensive.
Turbonomic will continue to help its customers as they adopt more PaaS services to ensure their cloud journey is successful and that they achieve the business outcome they defined when they decided to embrace cloud computing.