FinOps, bringing cloud financial accountability to the edge

It has been estimated by Gartner that cloud spend in 2021 will grow 23.1% to a value of $332 billion, a $60 billion increase from 2020. With devops (CI/CD) providing the ability for engineering teams to be able to rapidly and autonomously spin-up new resources and release new features or services into production, organizations of all sizes have realized that cloud financial management and accountability is an absolute must. Here I present to you, a high level overview of cost optimization and accountability, with a more detailed breakdown in future articles.

The majority of companies are unable to keep track of, and allocate cloud spend at a granular level such as per customer (existing and new), unit cost, feature, product line, or division. It is imperative to define and track these type of metrics in real time and make them visible to anyone involved in impacting these costs. Along came FinOps, and is well, the process of following a well defined set of best practices, standards, and education, while promoting a culture of financial savvyness at all levels, trust, and accountability. The FinOps Organization, is a not-for-profit committee that is part of the Linux Foundation. It was created to solve this problem by helping practitioners document and share best practices at all levels of the organization. Only 15% of companies regard their FinOps program as being “mature”, and those who are not, are unaware of the cloud spend, are reactive to spikes in cost, and have no consistent cost optimization processes across cloud initiatives. The core pillars in my opinion, should be an extension of DevOps, Agile, and Lean practices, and be part of the framework for building High Performing Teams. Just as Agile and Lean processes provide for cross communication, accountability, real-time reporting, product based teams, and more, FinOps greatly overlaps with many of these aspects.

As the goal of this article is to only present a cursory introduction, I will say that the end goal should be for product teams to understand that everything has a cost, designing, building, deploying, supporting, etc… all of it incurs a financial cost. It is important that non-technical stake holders become a little more tech-savvy, and the technical teams become a little more financial-savvy. Technical teams need to understand at a minimum capex vs opex, chargebacks vs showbacks, and that every initiative being worked on must add value for the customer or the organization. How you build, deploy, and support your applications can widely dictate the cost of those efforts. Architects and engineers need to include cost into their thought process building applications, and should be able to easily and visually understand how for example, the increase of a new microservice or database increases cost and compare it to what value it will bring. Non technical teams at a minimum, should understand the nature of product development for the cloud, a general understanding of devops and serverless, and the impacts to the “Proverbial” procurement process as we know it today. Engineering teams need to be able to deploy as necessary, and not be blocked by drawn out processes to approve these initiatives.

The “True North” of Finops is to vet every effort that goes into product development, and to understand how the financial costs of a new feature, architectural change, hardware upgrade, new hire, etc… add value. It is strongly recommended that a mini-business case is done for every initiative in order to determination a more granular ROI on each of these. For example if you upgrade a new server, add a new lambda function, build up a new team, or add a new product feature, you should be able to compare the cost incurred and compare that to the estimated additional revenue that could be generated. For example, if your monthly cloud spend increases an additional $500 on hardware to increase performance, but that amount was not generated in additional revenue each month, then it **may** have been in vain.

A well-formed FinOps team will typically consist of cross-functional stakeholders from accounting, finance and technical or engineering teams. Larger organizations with multiple clouds and product lines will require more time and discipline in order to achieve cost optimization and financial accountability. I hope to provide in future posts, a break down of how to allocate costs at a more granular level, the impacts of capex and opex, the process for setting up a finops team and culture, options for providing real time reporting and crafting different reports for different personas within the organisation, and how to engage your technical teams.