In our previous article we mentioned four principles of FinOps adoption: Visibility, Optimization, Control and Collaboration. Today we will talk in more detail about the first one: Visibility.
Private clouds have regions, tenants, clusters, etc. Public clouds have linked accounts, regions, IAM users and so on. Usually, it is a complex task to figure out how much is spent on each application or by any team but this is crucial to understand bottlenecks, budget & forecast and avoid wastage.
Visibility, in case of FinOps, means identifying organizational units and mapping them onto cloud resources with preserving historical data for further trend analysis. By units we mean items like business units, teams, individual engineers, applications, cloud services and asset pools. As cloud resources are constantly changing, it is important not only to capture the current state but also to develop a process of getting visibility in dynamics.
What practices to get the visibility are:
1. Identify the units (which I mentioned above) to be tracked.
Don’t spread at the beginning trying to control everything, focus on the most important. I suggest starting with business units, teams and individual engineers as it’s a good way to begin the FinOps education process.
2. Define a policy how to identify resources belonging to a specific unit.
It can be tagging or resource naming convention – it doesn’t matter too much which way exactly you choose. What’s important – when you define it, you should follow it to succeed.
3. Define a policy to identify resource creators.
It’s tricky to figure out resource creators in public clouds, so it is extremely helpful to have a policy for that, even if it is just a Jenkins job. Later you may need to figure out who or what created some unassigned resource and this approach will help.
4. Create budgets and charts to track units.
Here I strongly suggest using cost management tools to properly track budgets.
5. Set TTL rules and create clean-up jobs.
It’s a good practice not to allow any resources without TTL. It can be set with tags or as a part of a name and it helps to avoid wastage and understand the purpose of the resources better.
6. Review your budgets in dynamics.
Unmanaged cloud expenses have a tendency to grow. You need to keep an eye on them to prioritize what budgets need an immediate action.
7. Avoid unassigned resources.
You should build a habit of zero tolerance to orphaned or unassigned resources. The more such resources you have the less transparency you get.
8. Don’t forget about ‘hidden costs’, cloud accounts and regions.
A Cloud is not just about VMs or containers, there are dozens of other services and items that cost money but are not so obvious. One of the most important aspects is network traffic which can be a significant chunk of your cloud bill.
9. Don’t forget that your resources can be spread between multiple clouds accounts and regions.
Taking those principles to action can immediately shed light on your current cloud expenses and opens the door to optimization, which we will discuss in our next article.