Once a business has migrated to Azure, its attention often turns to optimization. Are Azure’s services and servers performing as expected, as secure as possible, and as reliable as they could be? There is usually room for improvement, and that is the goal of Azure optimization.
In this article, we consider what Azure optimization means and discuss how your business can achieve its performance, security, and availability goals with Microsoft Azure.
What is Azure Optimization?
Azure optimization leverages Azure infrastructure and services to efficiently achieve a business’s organizational and tactical objectives. Optimization involves assessing objectives and the trade-offs inherent in Azure’s services before implementing strategies that maximize benefits while minimizing costs and other risks.
For example, developers may prefer to control their testing infrastructure, whereas operations or security teams may want to limit that control in the interests of security and compliance. Optimization aims to discover the optimal balance between these competing priorities while leveraging Azure infrastructure to its full potential.
Another common optimization challenge occurs when users introduce inefficiencies because they lack platform knowledge and experience. It may seem reasonable to deploy a high-CPU virtual machine for number-crunching tasks, but only if you haven’t considered that a GPU-oriented VM could handle the same workload more quickly.
Azure cost optimization is often a business’s primary concern. Cloud costs can spiral out of control as employees and business units deploy infrastructure without safeguards to prevent over-provisioning. We explored Azure cost optimization in greater depth in The VIAcode Azure Cost Optimization Guide, but many other aspects of Azure are ripe for optimization, including:
- Governance and compliance
- Infrastructure control and accountability
- Monitoring, alerting, and data analysis
In what follows, we take a high-level look at how these optimization categories apply to Azure’s most widely used services, before suggesting Azure optimization tools that can help your organization to maximize the benefit of its cloud infrastructure.
Optimizing Azure VMs
Azure VM is the platform’s Infrastructure-as-a-Service public cloud, and the preferred hosting option of new Azure users who want low-cost, low-complexity lift-and-shift migrations. Azure VM optimization is largely the responsibility of the user. They can install and configure any software, and they are responsible for optimizing their code.
We discussed Azure VMs in our cost optimization guide, but there are many additional factors to consider, particularly security, availability, and governance.
Azure VM Security Optimization
Misconfigured virtual machines cause security vulnerabilities and availability issues, although users familiar with Azure can leverage the platform’s tools to optimize both. Protecting the SSH and RDP ports used to log in and manage VMs should be a priority, and there are several strategies for limiting the risk, including just-in-time VM access, Azure Bastion, and Azure VPN gateways.
Azure VM Availability Optimization
An application deployed on a single VM can expect reasonable although not outstanding uptimes. Single-instance Azure VMs include a network availability Service Level Agreement of 95 percent with Standard HDD Disks and 99.5 percent with Standard SSDs.
For business-critical applications, even the 99.5 percent availability guarantee is insufficient, and, of course, an SLA may be more of an aspiration than a reality. The key to availability optimization on Azure is redundancy, the replication of VMs to locations with independent network connectivity and power.
Azure offers several replication solutions for virtual machines. Availability SLAs improve when VMs are deployed as part of an availability set, and further still when deployed across availability zones. The goal is to provide at least one redundant virtual machine that can take over if its peers fail.
Azure VM Governance Optimization
How do you know that your VMs are secure and conform to your policies and regulatory standards? The answer is complex, but an essential step is to ensure employees don’t provision risk-laden VMs in the first place. Ideally, they should choose from a selection of pre-configured VMs that meet their needs while reducing risk.
Azure Resource Manager (ARM) is the platform’s deployment and management service, and one of its most useful features is the Azure Resource Manager Template. It allows businesses to create, in code, a declarative description of a secure and compliant VM, which is deployed automatically. The Azure Quickstart Templates library offers an extensive collection of prewritten templates that businesses can use, fork, and modify for their purposes.
Optimizing SQL Server Databases on Azure
Azure offers two services for hosting SQL Server databases. The first is SQL Server on Azure Virtual Machines, which, as the name suggests, involves hosting your database on an Azure VM. If you choose this option, then performance and security optimization involve techniques applicable to an on-premises SQL Server instance and Azure VMs, as we discussed above.
For optimal performance, it is essential to choose the right VM size and series. E and M series VMs with premium SSDs or ultra disks are ideal for optimal performance. As always, users have to balance cost and performance priorities, although if read and write speed are a priority, it is possible to optimize for extremely fast database performance.
SQL Server on Azure Virtual Machines is the appropriate choice if you would like to optimize for SQL Server compatibility, fast cloud migrations, and complete control over the database engine, including customization.
The second option is Azure SQL Database, a Database-as-a-Service platform. Azure SQL Database is easier to manage than SQL Server on Azure Virtual Machines. It has features that are not available in SQL Server, including built-in high availability and intelligent threat detection. If your business would like to optimize availability while minimizing management complexity, Azure SQL Database has you covered.
Optimizing Azure Storage
Security and performance are critical targets for Azure storage optimization. Data is both an asset and a risk, making secure storage a priority for any cloud optimization project. Furthermore, the data storage service’s performance determines your applications’ performance: slow storage can bottleneck even the most powerful VMs and databases.
Azure Storage Security Optimization
Data should be encrypted at rest so that it can’t be read even if it leaks during a security breach. All Microsoft Azure storage services include encryption at rest with Microsoft-managed keys. There is no additional cost for storage encryption, so there is no reason to store data in the clear on Azure.
For critically important data, Azure offers several security enhancements, including advanced threat protection with security alerts and immutable data storage. Both help businesses to ensure that their data is stored securely and, just as important, that it cannot be changed by a malicious third-party.
Azure Storage Performance Optimization
Azure’s data storage services include a wide variety of options that balance cost and performance. Choosing the fastest storage is not always optimal. Many scenarios—backups, for example—don’t require fast I/O and benefit instead from larger, slower, and less expensive storage.
On the other hand, choosing slow and inexpensive VM storage disks can significantly degrade application performance, so it’s vital to understand Azure’s disk storage tiers, which include slow Standard HDD, faster Standard and Premium SSDs, and high-speed (and comparatively expensive) Ultra disks, which are suitable for applications and databases with high-IO requirements.
Azure measures disk performance in Input/Output Operations Per Second (IOPS), and the options just mentioned range from max IOPS capabilities of 2000 for standard HDD to 160,000 for Ultra drives. Because there is such a large performance gap between lower and higher tiers, your storage tier choice can make an enormous difference to application and database performance.
The type of storage you choose also affects the balance of price, performance, and availability optimization. Azure includes several storage services, including Azure Files, Azure Blobs, and Azure Disks. It pays to research their performance and price characteristics to ensure that you choose the optimal storage solution for your workloads.
Azure Storage Availability Optimization
As with virtual machines, replication is the key to Azure storage availability. Azure manages local redundancy for all storage, replicating data three times within the local system, providing excellent availability of 99.999999999 percent within a year.
If your application needs higher availability guarantees, Azure offers several replication strategies, from local zone-redundant storage to geo-zone-redundant storage, which we explain in greater depth in How to Build Highly Available Apps on Azure With VM and Storage Redundancy.
3 Azure Optimization Tools You Need To Know About
Azure is a complex cloud platform with over 100 services, many of which have tiers and delivery models with implications for performance, availability, and security optimization. It is challenging to optimize Azure without a deep understanding of your business’s needs and the platform. However, several tools can help you to identify optimization opportunities.
- VIAcode Azure Snapshot is a self-service Azure health-check tool that identifies cost reductions, security risks, and monitoring gaps.
- Azure Pricing Calculator helps organizations to estimate infrastructure costs for various scenarios. With it, organizations can develop an understanding of the potential costs of deploying infrastructure that optimizes availability, performance, and other factors.
- Azure Security Center assesses Azure deployments and provides tailored security recommendations based on best practices. We reviewed Security center recommendations and what they mean in Optimize Azure Infrastructure Security with Azure Security Center Recommendations.
If you need expert guidance to optimize your Azure infrastructure, VIAcode’s Azure Optimization Services include security, performance, availability, and cost optimization. Get started today with our free Azure Snapshot health check, or contact an Azure managed services consultant for a free initial consultation.