In our previous blog we argued why cloud financial management (FinOps) is an inevitable cloud practice that is necessary to create long-term value in the AWS cloud. We concluded that being able to measure efficiency in a clear way is the key to success for a cloud financial management practice. In this second part, we describe practical examples of how you can come to an efficient and effective FinOps strategy. We pay attention to all stakeholders: from the IT department in charge of shaping the cloud, to the finance department who is allocating and monitoring budgets for it. By setting up KPIs in four steps that both parties understand, two very different departments can come together to create even more efficient cloud strategies while simultaneously optimizing costs.
You can compare saving on your cloud bill to saving on your energy bill at home. You do not use energy all the time just because it is available: you wouldn’t leave the heat on when you are not home. So why would you keep your cloud resources running if you are not using them? We often hear that a decision like this comes from a time-saving perspective at the engineering side: booting up also takes time and effort, so the choice is made to keep them running, not knowing the financial impact of such small decisions. However, idly running your resources will still result in costs. As long as you don’t actually shut down your workloads, the cloud provider will keep reserving the allocated capacity for you. It is only when you actually shut down/stop your workloads that another customer can use it.
When thinking about it this way in your organization, you become responsible and consciously aware of the consequences that your operations have in the cloud, no matter how small. As a cloud engineer, you need to be aware of how your actions will affect the company in the long run. And if entire departments can work more efficiently, the company as a whole will too.
Through consultancy, workshops and a thorough cost optimization scan of your cloud environments, we aim to discover where hidden optimizations like these need to be brought to light. However, when assessing current workloads, it may turn out that reducing the bill might not be possible or desirable.
When your business is in any way based on the cloud, it is likely that there is a correlation between your cloud demand and revenue. In that case, you will have to keep using and paying for what you consume to keep that revenue going, and it might not be possible to reduce that.
But if your business is based on the cloud, then the total you pay at the end of each month may not be the metric you want to follow to determine efficiency. Surprisingly, looking at the direct relation between your cloud spend and your revenue is probably not a good idea at all. Finding the correct relationship for efficiency can be tricky, but it allows you to get more out of the cloud services by running the resources that are already available. What we want is to make sure that your operations are more efficient, not necessarily cheaper. As a result, we often recommend actions that will result in a lean cloud bill that keeps operational performance predictable.
As we discussed in our previous blog, we often see that not all stakeholders of the cloud are aligned:
To achieve this alignment, we argued that both parties need to start speaking a common language in order to become aware of the financial results that your cloud operations bring. Capturing KPIs in a metric system that both parties are familiar with allows different departments to communicate clearly what is expected of each other. We demonstrate this in the next chapters.
Before we describe how we configure KPIs, let us first demonstrate what the consequences are of a misaligned FinOps KPI. Imagine an organization that has its e-commerce fully based on the cloud. The organization could decide to create a KPI that compares their monthly average e-commerce revenue with the monthly cloud bill, which could indicate whether they are getting enough value for their cloud operations.
Assume that in one month the website processes 100 transactions. 90 transactions consist of 1 item with an average price of $100, and 10 transactions have 1 item with an average price of $10. The average revenue per transaction would then be $91. Imagine that in the same month the cloud bill was $500, which is what is necessary to support the 100 transactions. In all, the revenue/cloud bill KPI would then be 18,2.
Now imagine that next month they have the same 100 transactions, but the purchases are inverted. 90 transactions consist of 1 item with an average price of $10, and 10 transactions have 1 item with an average price of $90. The average revenue per transaction would then be $18. The cloud bill kept the same since you had the same number of transactions: 100. But, now the revenue/cloud bill KPI will be 3,6. This KPI is pointing somewhere, but not to cloud efficiency.
With this example in mind, let’s now dive into setting up an efficient KPI strategy for FinOps. We consider the following steps:
We start by first determining what the goal is for setting and measuring KPIs. In this case, we want to measure how efficient our cloud operation is. It’s not a KPI for sales or marketing. Especially in times where revenue is volatile, you want to make sure you are fair and make people accountable for something they have autonomy over. This is a KPI that needs to be understood by both the DevOps team and the finance department.
What are you measuring exactly? If you want to measure operational efficiency in relation to your cloud spend, one of your measures is already defined: the spend. More specifically, the total on your AWS bill each month. Then ask yourself: what cloud operation can I measure that has a direct relationship to my spend? Meaning that if you increase this operation without making it more efficient, you will pay more or the other way around. The KPI demonstrated in the above example shows that the total revenue and the cloud spend don’t have a direct relationship. In other words: if the revenue goes up, it does not mean the cloud spend will go up or vice versa.
A better KPI for cloud efficiency would be to track your total amount of transactions and the total AWS bill. Applying this to the example, that would show both months to be equally efficient.
This is how you actually give a value to your measures. In the first example, the metric consisted of the average revenue divided by the total cloud spend. As demonstrated, this is not a consistent measure when your average revenue varies per month. It also cannot be translated into an optimization action. A better point of focus would be the cost per transaction, which is the same for each transaction, independent of the revenue. In this example, the new KPI can easily demonstrate your cloud efficiency if the number of transactions changes, which is as we know likely given the scalability of the cloud.
And finally, after aligning your goal with all stakeholders and defining your measures and metrics, you can start by setting targets that you can work towards. In this case, you would define the maximum cost per transaction, making your DevOps team accountable to meet the target. In parallel, if you have a sales target or forecast and the average transaction value, you can predict your operational cost. If you cannot meet your sales target, it will not impact the cloud efficiency KPI, and vice versa.
We know engineers like a challenge. At least, ours do. So why not make FinOps a challenge? Based on your current processes and their costs, set a target to architect the same workflows but in a more cost efficient way. Try defining your own cloud efficiency KPI and set a benchmark while fully leveraging the AWS cloud principles (e.g. elasticity) and or features (e.g. serverless, newer compute and DB services/resources) and routinely check if something can be done more efficiently.
Is optimization already your goal, but do you need some inspiration on where to start? We offer a broad range of cost optimization services that help you get insight into FinOps strategies that work best for your current use case. Let us know in the form below if you have a budgeting or cost optimization challenge that you’d like to discuss with us and we will make sure to get in touch with you. Or join our FinOps Alliance! The FinOps Alliance works on building a library of functional approaches from real-life experience to the FinOps Community. Check out the website and our content.