Ten10’s Head of Cloud and DevOps Practice, Matt Smith, gives you five essential tips for implementing FinOps and controlling cloud expenses
Are you struggling to keep your cloud expenses under control? We understand the challenges you face when it comes to controlling and optimising cloud costs – that’s why we’re here to guide you through the process of mastering FinOps and provide you with five essential tips that will empower you to take control of your cloud expenses.
1. Start early
With FinOps, one of the most important things you need to know is that you must be involved early in the process. If you want to mitigate large, unplanned costs then you need someone who understands how to maximise the value of the cloud involved from the beginning.
In this situation, their role would be to ensure the right architecture decisions are made to maximise the value of the solutions while minimising the cost, budgeting and forecasting, based on the expected customer volume giving some insights into potential costs. Ideally, the cost of acquisition of a customer will be determined and used as a metric to ensure that as the platform scales it is still profitable.
2. Be pragmatic
One of the biggest failings in software engineering is pre-optimisation. Teams and engineers believe they know how a platform will be used and make decisions to optimise it ahead of potential issues. This is not the same as making architectural decisions to increase flexibility and scalability.
For example, you may have a monolithic service that includes user registration. If this is excessively utilised, it will impact the whole service. Whether this falls into pre-optimisation or architecture comes down to the data. If you know the service will struggle with 1,000 signups a day and you’re expecting 5,000 to 10,000, this is an architectural necessity. If you are expecting a few hundred a day, it becomes pre-optimisation.
The same is true for the cloud cost. FinOps is not about spending a lot of effort to save small amounts of money. It’s about saving the right money – balancing the need to release with the need to balance cost. For example, you may already have an API as part of a container. The most pragmatic way to deploy that API is with a container service. It’s not necessarily the cheapest way, but it’s pragmatic. With that knowledge, a plan can be made to determine what actions will be taken if it becomes a problem (e.g. migrate to Lambdas and an API gateway).
3. Let the data guide you
While I’m sure some FinOps engineers would love you to think it’s magic, it’s not. It’s data. By taking a scientific approach to measuring the changes and impact, they can make decisions that ensure a greater impact on the bottom-line costs. Because of this, getting visibility into the usage and costs of your service is vital to ensure the right decisions are made, backed with evidence. Without having the data, all decisions are essentially educated guesses. Prioritise getting data and metrics from your services and platforms to enable your FinOps engineers to make the right decisions more often.
4. Collaboration is key
You should think of FinOps in the same way you think of DevSecOps – you can have people embedded in the team and you will get value from this. However, from an organisational point of view, FinOps should be a central function like security, working closely with the budget holders and the engineering teams to ensure a set amount of good practice is being followed.
Successful FinOps teams can enact changes and are backed by the management team to do so. They should be seen as an equal part of the development team, ensuring the overall owner of the budget, security, and product’s success is aware of the key factors that will affect them now and in the future. That is not to say it becomes the office of “no” but that the FinOps engineers should present solutions to cost problems to enable people to say “yes”. If a decision needs to be made that affects the budget of an application, people are suitably informed of the risk that has to their budget.
5. Do something
FinOps is a bit like security. Even if what you do is suboptimal, it is still better than not doing anything at all. You may not have the budget for a specialist FinOps engineer. That’s fine but make sure it is part of the considerations that your DevOps engineer is thinking about to ensure you are not just spending money needlessly. Once the mindset is established, the team will have more flexibility to determine what is good and what is not. If you only do one thing, make sure you get good data so you can make informed decisions.