I started using Microsoft Azure in the very early days in 2008 when the whole idea with cloud computing was something very different than it is today. During recent years I’ve found myself working mostly with Azure-related architectures, deployments, and governance projects as the platform have matured to fit any type of customer need.
One recurring challenge I find many organizations facing is the shift from capital expenditures (CAPEX) to operational expenditures (OPEX). Traditional IT has always relied on a 12-36-month investment cycle, and one the decision for investment has been made, it’s mostly a sunken cost. Afterward, the cost is something that is rarely revisited.
With Azure, and similarly with other cloud providers, the shift to operational costs brings relief. Prices will typically go down over time and we can optimize costs more easily. Thus, setting up new services in Azure will not bind us to a 3-year contract, but rather a 1 minute or 1-hour contract.
Taking control of cloud costs
With constantly evolving pricing models, it’s now crucial for organizations to follow up on changes. This includes the occasional discounts, services moving out from preview and services that are no longer actively used but that are kept running.
Infrastructure as Service-based capabilities such as Virtual Machines is the obvious services IT departments need to watch after. If we only need to run certain workloads during weekdays on business hours, we can shut down a VM and save massively in operating costs. Scaling a VM up or down depending on need is also advisable but as this causes a slight maintenance break, it is not typically something that is feasible for production environments.
For Platform as Service-based capabilities we can use automatic scaling such as multiple instances of a given service, or a better performing instance when the usage of the service grows rapidly.
Besides scalability and optimization, we also need a way to provide sunset services no longer in use. This might include virtual machines that are mostly idling after a project ends or a database service that was initially sized to a more expensive tier and has less usage now.
All these approaches affect how much cost Azure incurs for us over months and years. And to achieve this IT administrators need to employ modern solutions, as scaling services is rarely something that should be done manually.
The problem therefore is, how do we know what, when, and where to scale?
Overcast by Sharegate is a solution to save money by optimizing Azure environments.
Activating and using Overcast
I was attending a conference in Europe two weeks ago and had a chat with Benjamin Niaulin from Sharegate. He asked if I’d had a chance to see what and how Overcast works. As I did not have my laptop with me, I asked if I could try it out with my phone. Turns out it works on a mobile device as well, as I was able to fluently activate a free trial in one go.
To activate the free trial of Overcast, head over to https://overcast.cloud/ and click the Start Free Trial button. I would advise you to use a browser session you know you can use to authenticate to one or more Azure subscriptions. I’m using one of my Azure Global Admin accounts to perform this, but there is also a way to use a more restricted account with Overcast. See the list of necessary permissions to grant here.
Note: Overcast is available as a freemium offering – if your annual Azure cost is under $50,000 you can employ the small business version, which is free. See details on pricing here.
You’ll first need to log in with your organizational or Microsoft Account.
As your account might have multiple Azure tenants connected, you can then specify which domain, or tenant ID you would like to manage with Overcast. The difference here is that you can use a friendly name, such as domain.onmicrosoft.com, or a tenant ID which is a GUID.
After connecting, you’ll need to complete authentication with your account to access Overcast.
As I have two Azure subscriptions under my Azure AD tenant, I can use Overcast to manage them both at the same time. Overcast shows me a 30-day cost and forecast, how much potential savings I could achieve, and what difference over time it is seeing for each subscription.
For my two subscriptions, I’m typically seeing a cost of between 85 to 100 € each, per month. There is a little bit of variation as I regularly spin up services and scale certain services up or down for my needs.
Potential savings are over half of my current cost, 76 €. Clicking on the amount, I get a detailed list of where those savings are best realized:
Under Idle services I can see two app service plans I use for running several web apps, that are generating costs for me but are rarely utilized.
Clicking further on the items in this list, I get a detailed breakdown of the individual services and their current costs.
I was able to find out that I had forgotten about an App Service Plan, that I had initially named ‘FreeWE’ (for Western Europe), but that I later scaled to a paid version. Thus, the naming did not match the actual service anymore. I scaled this App Service Plan from Standard 1 (S1) to Free from the Azure Portal, and I’m now saving about 430 € yearly.
And this only took me a short moment to find out and a minute to fix it!
Another thing I found from the recommendations was an abandoned virtual machine disk in one of my Azure storage accounts. This is costing me less than 5 € each month, and while relatively little it’s still a recurring cost for a service I am not using anymore.
Hovering over the item I get a link to Azure Portal, that takes me directly to the exact resource. The disk was created in April of this year, and I see that it is not connected to any of my other virtual machines.
Just to make certain, I have a habit of checking for any activity for this resource from Azure Monitor. It yields nothing for the last 2 weeks, so I am now certain I can remove the disk.
In just a few minutes I’ve saved a total of 490 € for the next year with Overcast!
I can now update my data from the home page of Overcast, to see the changes reflected. Updating data from my Azure subscriptions takes about a minute, and I can then verify the savings
I’ve now used Overcast for a few different Azure environments over the past few weeks. I’m always happy when I can optimize costs for my customers’ service in such an easy way. With a few simple clicks, I’ve achieved something I did not know would be achievable, and I hope the service evolves overtime to bring in even more capabilities for optimizing and monitoring Azure costs.