FinOps
The cloud shift in process
With the migration to cloud, there was a really big change on how the financial process worked on IT.
When companies used on premises computers, the process to "scale" was having an engineer to create a procurement request, the finance team would approve and after that the new computer could be bought and used. If a machine broke, the same would happen. In the end the finance team had full visibility and predictability on IT costs.
With the change to cloud, the costs are dynamic and the developers can simply require more resources. This makes it really hard for finance to predict the IT costs making even more important for developers to have cost conscience.
Cost optimisation is not an island
Just optimising for costs can cause issues in other areas such as security, stability, performance and so on, because of that we should pay attention on potential harmful side-effects and instead of just trying to reduce costs focus on reducing waste. Balance is essential.
Shifting Focus to Value
Because of cloud's elastic nature, looking only at costs won't give the correct picture. If your costs are going up, it doesn't mean that you are having a problem, since it can mean that you are having more business happening, thus generating more revenue.
Finops goal is to help organizations to get the maximum business value, creating a culture with continuous feedback and team collaboration and ownership of their cloud usage.
Phases of FinOps
FinOps works in a cycle and its phases are:
- Inform - Understand how, when and where the company is spending money
- Optimize - Becoming more efficient, by for example, auto scaling, creating specific types of machines for each load, reservation of resources with better rate.
- Operate - Create processes and guidelines so we make the improvements part of new things produced.
Once you create the processes(operate) you check again the results(inform) and keep the cycle going. It is important to keep searching for improvements, otherwise your processes can become outdated.
FinOps Goals
The main goals for FinOps are for every euro spent we can say:
- We meant to spend it - It shouldn't be an accident or surprise that we spent something.
- We know what we spent it on - The cost should be associated to a resource that we know.
- We know why we spent it - We should have a clear objective behind it
- We know what we got for it - We need to know what benefits we are getting from it being monetary or not.
The focus is on the value of dollars and not on the number of dollars.
Educational Approach
Understand the why and how, this require education and informing on how it is doing.
- Consumption nature of cloud - The elastic cost of cloud
- VM types - The shapes that are available, cpu, memory, or storage focus and so on
- Autoscale - Modifying the number of resources based on a trigger
- Metrics and reporting - Understand how to instrument and understand metrics of their resources
- Tradeoffs - Understanding what are the tradeoffs that you might have with changes.
Important - Every team should easily be able to see their cloud spend and it should be just another metric and if possible the value returned (eg. revenue, leads created and so on), this information encourage people to improve this.
Success Metrics
Success metrics should be really well though of, because if not they might cause dangerous issues.
Eg. A success metric is to reduce 20% the costs, then a team reduces some replica sets to achieve this goal, but it causes slower performance and less reliability on the systems.
Certification
FinOps certification - https://training.linuxfoundation.org/certification/certified-finops/
FinOps Practitioner Content - https://medium.com/@jalligator/finops-certified-practitioner-focp-what-another-certification-fb2a8645412c