Shut Down Azure VMs Out of Hours

Businesses waste money every day running non-critical servers 24/7. Arcible can help you put a stop to that (and the VM) with some clever automation.

Public Cloud is great for many reasons but two aspects of this greatness can also be a serious fall. Number one is the ease of which it can be consumed which means if allowed to, things can run away and spiral out of control. Number two is that you pay for what you use (pay-as-you-go). In normal circumstances, once you create a start an Azure Infrastructure-as-a-Service (IaaS) Virtual Machine, it will stay running until you tell it otherwise. When it comes to paying for what you use, that means paying 24 by 7 for that server, but the question is: do you really need that server 24 by 7? Could you cope with that server shut down the rest of the time?

Shut down Azure IaaS VMs to save big

The best way to think of this is impact and ask the question: will anybody or anything be impacted if this is turned off at certain times? Don’t limit yourself to thinking that this can only be applied to test and development environments either. It’s entirely plausible that this could be applied to production environments.

If your employees work 9 a.m. to 5 p.m. Monday to Friday and that server is hosting some kind of website or system which users interact with, is it adding anything being on all of the time or could turn it off overnight and at weekends save you money? Do you have test and development or pre-production systems? It’s probably safe to say that these are not critical to be running over the weekend.

If you have systems that are not being accessed for 16 hours in every 24 then that’s 16 hours a day that you are paying for VM compute which you are not using. Shutting down these servers overnight means you don’t pay for the compute portion of the cost and only pay for the storage that is being consumed for those hours.

To put this into perspective, a D11v2 IaaS VM in Azure costs £ 5.19 per day in compute if left running for 24 hours. If we work on the theory that people work 9 a.m. to 5 p.m. and then give ourselves a little headroom at the end of the day and start the server early so by 9 a.m. it is ready to service requests, we can shut it down for 15 hours a day. By reducing the server runtime to 9 hours a day, that brings the compute cost down from £ 5.19 to £ 1.95. That’s a saving of £ 3.24 per server per day, £ 92.70 per server per month or £ 1,112.40 per server per year! On just one server!

What do Microsoft offer out of the box?

Microsoft went part of the way and provided an Auto-Shutdown option on each VM where you can configure a shutdown time but that doesn’t have the option to turn it back on ready for your workforce the following day. This feature is also configured per-VM which isn’t very scalable or administrator friendly. What about if there was a way to automate your workload shutdown in the evenings and the start-up in the mornings so that for end-users, they don’t know that you are even shutting things down at night?

How do Arcible improve on this?

At Arcible, we’ve leveraged two services within Microsoft Azure, Azure Automation and Azure Job Scheduler, to deal with this problem. By applying tags to your Azure Resource Manager VMs, a series of automation tasks run to start up and shut down servers at on the days and times you set. The Azure Automation tasks read values defined in tags to determine what action to take: whether to leave a VM running, or shut it down and this can be configured to apply for a specific service (a set of servers), an entire environment (development or pre-production) or some specific servers.

Are there any other benefits?

The daily purge

For sure there are. Firstly, we’ve all heard the stories where things work better after being rebooted. Think of the overnight shut down and powering them up again each day as a way of keeping them clean and tidy. With the daily shutdowns, you are in essence doing a really long reboot which means each morning the servers start-up with a clear mind (that’s memory) ready to seize the day without whatever headaches came along yesterday.

Service assurance

Doing daily purges on your development or pre-production environments may be one thing but to do it for production does take a little bit of thought. Part of the thought required is around service assurance and knowing that things are going to work properly the next day. For example, if your application server doesn’t start properly each morning that is extra work for an administrator and potential downtime for end-users. What doing daily shut down will bring to the forefront is the need to be sure that applications and services start and run perfectly. Monitoring is especially important as knowing each morning that services are online as they should be means, happy users.

Environmental impact

Secondly, we can consider the environmental benefits for your organisation. Sure, Microsoft isn’t going to shut down Azure overnight so the reality of it all is that the electricity being poured into data centres is still being consumed but your company, during those hours, isn’t playing a part in it. It would be a tough calculation to make to be sure but there is definitely merit in the idea that managing overnight shutdowns will reduce the energy consumption and carbon footprint of your organisation which could go a long way toward green credentials.

How can we find out more?

Speak to us about how we can use Azure Automation to automate and orchestrate your server workloads to shut down your systems. We can look at your current server deployments and help you to calculate the potential for savings each month and then help you to implement and realise these savings. This can be included as a part of our Cloud Platform and our Service Modernisation solutions.