In my day to day at Strategic Blue, I’m constantly thinking about FinOps and finding new ways to help customers get the best value out of their cloud services. When you do something so often, it’s very easy to take for granted what you know, and when talking to people about it, just jumping to what you find most interesting. 

With this in mind, I was speaking to my friend and colleague Frank Contrepois, about getting back to basics. Let’s stop jumping to the sexy stuff about cloud cost optimisation which we find interesting because we’re so used to the normal stuff. We began by setting ourselves a little challenge:

If we were dropped into a new company to kick-off a cloud cost saving exercise, where would we start?  

Hopefully this blog will be useful to anyone involved in cloud spend, whether that be a CTO, a developer, a solution’s architect or even a CFO. Here’s what the top ten tips are for what we felt we’d do, hopefully in order!

Tip 1: Speak to cloud vendors

Frank and I, being the big kids we are, pictured this like being on a desert island running out of water. So the first thing we wanted to do was try to get more water! Well that’s exactly what we would do as a first step, speak to our appointed cloud partner’s representative and see what credits, programs and such are available. 

All the cloud providers are constantly fighting for your business. It may not be an easy thing to jump between them, but still you should always see what’s available. I’ve seen organisations receive large amounts of credits and make business cases much more able to gain internal approval by leveraging close relationships with their vendor account managers.

Tip 2: Review your regions 

Although in some cost saving exercises it makes sense to start with the biggest things in terms of cash first, when contemplating cloud cost optimisation, there’s a technical hierarchy to follow first. With this in mind, we start at the top of the pyramid when looking at cloud optionality, Regions. 

They are the first building block, the foundation if you will, of your cloud environments. Much in the same way as renting houses, renting compute (which is what we’re doing in cloud), does vary in cost depending on where you’re doing it. In some cases the gaps between regions have reduced in the past 6 months, but still it’s worth considering.  

When reviewing your regions, think about why you’re in that region. If it’s compliance related then that’s fine, move on to the next tip. But if it’s not, perhaps have a think as to whether you’ve made the right choice. For instance, Stockholm is cheaper than Frankfurt on AWS, or US-West-2 is cheaper than US-West-1. There’s no point making small changes to your infrastructure if it may all be better in another region, so knowing your region strategy will help you make the changes in a more optimised manner (i.e. rightsize and move together).

Tip 3: Review your usage

Going back to the concept of conserving money like it’s water, our next top tip is to shut off as many taps as you can, as often as you can. In some transformation projects I have been amazed at how prevalent the Retire path is used in the 7Rs. I’ve seen up to 40% of a virtual machine fleet be retired through it being obsolete. However, in most environments, especially if you’re already in the cloud this number should be much lower.  

That doesn’t mean there’s no other taps that can be turned off, at least for an amount of time. Can environments be switched off overnight? Are they needed at weekends? Obviously there are some caveats regarding statefullness and whether an app is a pig to start up, but many organisations can see a reduction in 30-60% on their test and development environments with this simple step.

Tip 4: Leverage horizontal scaling where possible

One of the things people always talk about with cloud, is that it’s elastic. Yet so many organisations are using the cloud like a conventional data centre, not only ignoring the many managed/serverless services that exist, but not using the aspect cloud is most famous for, scaling. 

There are lots of classic apps that simply cannot handle horizontal scaling, but where possible it should be employed. Allowing you to right size for lowest usage and scale up automatically to handle peaks. The cost saving can be significant, for some ecommerce apps. I’ve seen as much as an 80% saving versus holding capacity for peak even when it’s not used.

Tip 5: Consolidation

Something I often see overlooked, is consolidation. This is another way to allow for retirement of servers. For instance, moving multiple databases to a single server, should this be feasible there are both infrastructure and license savings from this. If you’re using SQL server or Oracle these savings can be significant, so look where possible to consolidate your license footprint.

Tip 6: Rightsizing

So we’ve now managed to work out our regions, what we want on and off, what can scale and what can be consolidated. At this stage we should have a good understanding of what our estate should look like. As such, it’s time to look at rightsizing, what does the app really need now you’ve made all those other cost saving steps? Are you using the right instance type for the heaviest part of utilisation (eg do you need more RAM vs CPU). Are the block storage amounts correct?  

Tip 7: Generational/family upgrades

Are you using the latest generation of instances/VMs? You get a performance improvement and cost reduction for moving on to the newest instances. The cloud providers have their own reasons for doing this (discussed on our other blogs), so use it!

Tip 8: Commitments and volume discounts

Now you’ve got the right instances/VMs in place let’s look at what’s on a large amount of the time (generally over 90% of the time) and this can be used to commit to the cloud provider for a discount. Now obviously this required a forecast of future usage based on your roadmap. The last thing you want is wastage, but at Strategic Blue we specialise in taking these forecasts and putting together custom made commitments to suit any customer.

Tip 9: Put responsibility on the user

So as you can see, there are loads of things we’ve done already but please believe me, there are so very many more. The only way to really control the rest is to give responsibility to those who maintain the environments. Now I thought long and hard about where to put this, as some of the concepts here are very quick wins, but I think tidying up best practice as above is key. 

However, you also need to get people to take responsibility for removing unused block storage volumes, deleting unneeded snapshots (or putting in policies to do it), as well as using automated tiering for object storage. Storage is a really quick win  but you need to understand the usage of the objects to make sure you don’t pay more for retrieval than you were before moving it!

Tip 10: Re-architect

Our real favourite, but is the hardest and takes the longest to do. Look for chances to re-architect. Where can you use Function as a Service instead of VMs?  Where can you use managed Databases rather than managing them yourself? A lot of infrastructure and internal staffing costs can be gained from really taking advantage of the true power of cloud.

Summary

So as you can see, a lot to do in our first week in the new company we joined! Jokes aside, this really is a slow, ongoing journey. Creating good habits takes time but is critical to long term achievement of cloud cost control. I hope you’ve found this blog useful, and if you have any questions don’t hesitate to reach out!