Amidst the COVID-19 pandemic, businesses have been forced to implement short-medium term plans to protect not only their ability to transact, but also the health and wellbeing of their customers, partners and employees. Video calls, queueing at shops (and on websites) and home deliveries have become the new norm. Whether mandated by government or through personal choice, it's clear we're in this new mode of working for the foreseeable future.
Beyond the logistics of working remotely, businesses have to contend with the fluid nature of the situation and when coupled with the economic uncertainties, it's more important than ever to look at new ways of optimising IT spend whilst maintaining productivity, relevance and compliance. As a Consultant, specialising in the Microsoft data platform, I thought it might be useful to create a blog that explores ways in which businesses can optimise their spend on-premises and in Azure, without losing that competitive edge offered by a modern data platform.
In my experience, there are several areas businesses should look at when attempting to optimise spend for Microsoft data platforms. Here are my top recommendations, starting with the simplest:
1. Automatic start-up and shut-down
It's easy to create new virtual machines in Azure - before you know it, there are hundreds of them. Many of them might not needed 24x7: development and test environments could be switched off during periods of inactivity (perhaps), Windows Virtual Desktop virtual machines (VMs) may not be needed at all during weekends. To help, there are several pre-canned Azure Automation Runbooks in the Runbook Gallery to stop and start virtual machines on a schedule - you just need to deploy one and change the parameters.
For example, an E8s v3 virtual machine with just the Operating System (OS) using Pay-As-You-Go (PAYG) licensing will cost ~£505 per month, assuming it's turned on for the entire month. Over the year, that equates to ~£6,060.
Implementing an Automation Runbook that turns off the virtual machine at 7:00pm and turns it on at 6:00am, will save you ~£2,772 per year! If you also turn it off at weekends, you'll save ~£4,056 per year! That's a single virtual machine, and if we extrapolate that across an entire environment the potential cost saving is massive!
2. Decommission legacy tooling
Technical debt is a problem, and it’s a reality for many organisations. Difficult decisions constrained by technical limitations often requires pragmatism and comprise, usually at the expense of "what's the right thing to do?". As businesses change through acquisition, role movements and natural attrition, things are forgotten - yet the business still bears the cost. As an example, I still see clients using third party backup software to compress SQL Server backups, even though this feature was introduced to the product in SQL Server 2008.
Now is the perfect opportunity to rationalise the software and value-add products you're using; can that functionality be provided natively by the main product, has it been superseded by another? The Microsoft Assessment Planning Toolkit (MAPs) is a great tool for inventorying your environment. In my experience of using this tool, 25-50% of the estate is unused or no longer needed.
3. Right-sizing your workload
The shape of the economic recovery and the industry vertical within which your businesses operates, may be reflected in the future size and shape of your data platform workload. It's important to consider how this might translate to your overall data platform expenditure. For example, if an e-commerce web site in Azure experiences fewer sales yet it's performance tier is scaled for pre-pandemic workloads, does it need to maintain that level of performance or can it be tiered down to save money? The only way of knowing is by monitoring and telemetry analysis. Azure Monitor and Azure Cost Advisor are two fantastic tools to get you started.
4. Enterprise Dev/Test subscriptions
Enterprise Dev/Test subscriptions are provided as part of Microsoft Enterprise Agreements (EA). They're designed for teams of Visual Studio subscribers to run development and test workloads in Azure but at discounted rates, specifically on Windows virtual machines and exclusive gallery images. This is significant because I see many clients using regular Azure subscriptions for development and test, which means they’re potentially paying more than they need to.
5. Reserved Instances and Capacity
Reserving Azure compute over a one-year or three-year term can yield significant cost-savings. Within the context of a data platform, Azure Reserved VM Instances can reduce costs by up to 72% compared with Pay As You Go (PAYG) pricing, whilst Reserved Capacity for Azure SQL Database can save up to 33%! In addition, Microsoft allows customers to reserve capacity for Azure Cosmos DB, Azure Synapse Analytics and Azure Cache for Redis. If you have a strategic, long-term workload that currently uses PAYG pricing, it's well worth considering the cost-savings you might realise by reserving the compute.
Taking our earlier example; an E8s v3 virtual machine with PAYG will cost ~£6,060 per year. With a one-year reservation, that drops to ~£4,678 for the year. With a three-year reservation, that drops to ~£3,858 per year (over three years). I'm sure you'll agree, these are significant cost savings! That's why here at Coeo, we continually monitor our Dedicated Support clients Azure spend, providing them with up-to-date recommendations on where Reserved Instances and Reserved Capacity could provide substantial savings within their Azure data platform environment. This means our clients have complete peace of mind that our Consultants ensure they’re seeing the best value for money from their spend and their Azure data services spend is optimised.
6. Azure Hybrid Benefit
Savings of up to 80% can be achieved if Reserved Instances or Reserved Capacity is combined with Azure Hybrid Benefit. This benefit is provided exclusively to companies with active Software Assurance (SA), allowing them to use existing core licenses in Azure. This incentive means there is significant benefit for businesses migrating on-premises SQL Server to Microsoft Azure compared with other cloud providers, since it provides more options to transform to an evergreen data platform using Azure SQL Database.
By combining a one-year Reserved Instance with Azure Hybrid Benefit for an E8s v3 virtual machine, the annual cost will be ~£2,275. When combined with a three-year Reserved Instance, the cost will be ~£1,455 per year (for three years). That's a staggering saving of ~£4,605 per year over standard PAYG pricing. Why would you not consider it!?
7. SQL Server consolidation
Consolidating databases and instances is another effective way of saving money. Ordinarily, businesses won't embark upon a consolidation project until prompted by an audit or licensing true-up. In my experience, it's good practice to stay on top of SQL Server deployments as a way of monitoring costs and mitigating the build-up of technical-debt. It will also provide plenty of time to identify any versions that may be leaving extended support, mitigating the risk of being unsupported or needing to pay for a custom support agreement, which could be several millions of pounds. By using the Microsoft Assessment Planning Toolkit (MAPs) to inventory the environment, it will help inform any future decisions about which databases or instances can be consolidated or retired.
8. Improve running cost oversight
Let's face it - monitoring Azure running costs isn't the most exciting, nor simplest of tasks. However, better planning, oversight and forecasting can lead to better financial decisions in the Cloud. That's why here at Coeo, we provide our Dedicated Support clients with an online Azure Spend Report, which provides a forecast of Azure spend and opportunity to review and optimise resources where required. This report breaks down monthly spend, enabling our team to provide further recommendations for Azure cost saving measures such as using Reserved Instances. My colleague, Andy Jones wrote a fantastic blog article last month about the tools available for monitoring and forecasting your Azure spend.
9. Modernise with Platform-as-a-Service (PaaS)
Whilst modernising data platform workloads to leverage PaaS services will provide a strong return on investment (ROI), time and effort should be considered and closely monitored. For simple, in-house applications with no external dependencies, the time and effort associated with modernisation might be relatively small. However, for more complex applications with a broader set of external dependencies and constraints, the time and effort may outstrip the benefit - at least for the moment. It's only after modernisation takes place, when the human element and the associated benefits are realised. No more patching, no more backups, no more OS maintenance - now we begin to see our return on investment. To start your journey, the Data Migration Assistant (DMA) is a useful tool in understanding effort and identifying modernisation blockers to platform services such as Azure SQL Database.
Optimising spend on-premises or in Azure shouldn't be a reaction, but a continual premeditated process. Even during periods of economic prosperity, why spend more than you need to? Gartner recognises that whilst global IT spending will decline by 8%, public cloud services "will be a bright spot in the forecast", so it's important to consider how you'll optimise your Cloud spend. Now more than ever businesses are forced to define new cost saving measures that reduce their financial exposure but don't impede their ability to move forward with a view to bouncing back. I hope that my recommendations above have served up some ideas for you take away and consider. Thanks for reading and take care of yourselves.