This is part 4 of our ultimate guide to FinOps blog series. In part 1 we defined FinOps and provided an in-depth review of FinOps functions. Part 2 took a deep dive into FinOps domains and roles and reviewed the main responsibilities of those domains. Part 3 outlined the core principles of FinOps and reviewed each in detail
In this instalment of the ultimate guide to FinOps, we will provide an in-depth review of the FinOps phases.
FinOps principles serve as the foundation upon which a good FinOps practice is constructed. The FinOps foundation outlines 3 distinct phases across which FinOps principles and practices are implemented. These include Inform, Optimize and Operate.
Below we review each of these phases individually.
The inform phase is where most organizations kick off their FinOps practice. It involves building out the granular cost visibility required by later FinOps stages. Provision of detailed cost allocation reports for individual organizational groupings and cost centers should serve as a baseline requirement during this phase. These groupings can include anything from teams, projects, applications, services or business units.
Reducing the lead time between receiving cost metrics, developing reports and analyses and providing them to the relevant teams is also an essential function of FinOps teams during this phase.
The FinOps foundation identifies a number of activities that should serve as a baseline for the Inform phase:
Developing and implementing a mapping mechanism whereby costing data is allocated to organizational groupings in a way that enables the larger FinOps principle of unit economics is a baseline requirement.
In order to arrive at a unit economics model of cloud cost, FinOps teams should collaborate with the relevant domains to figure out the correct groupings that cloud costs should be allocated to. Once these have been identified, they should then work together with engineering to ensure that the correct mapping is implemented via a comprehensive tagging strategy.
Creating detailed showback and chargeback reports for the organizational groupings identified earlier is the next order of business for a FinOps team.
These are essential in driving accountability and improving cost transparency where individual organizational groupings can be held accountable for the costs they incur. These reports can then also serve as a baseline for instituting cost management processes.
Allocating budgets and creating usage forecasts is another essential component of the Inform phase. Both of these allow organizations to implement guardrails around cloud cost, monitor these guard rails and make changes where required. They also enable cost and resource re-allocation decisions, allowing management to shift resources around to where they are needed the most.
Shared costs make up a significant portion of the overall costs of any cloud environment. These costs are usually shared across teams, apps or projects and need to be distributed across them. Figuring out a mechanism for sharing these costs, either equally or based on usage, is essential to figuring out the true costs of each organizational grouping.
Most cloud providers offer volume and usage based discounts. In addition companies can also negotiate custom discounts by reserving capacity for a specified time period. All of these discounts should be incorporated into cost reports to ensure an accurate reporting regime.
Gamifying cost reports and benchmarking teams internally based on cost incurred as well as already agreed upon business metrics is another important aspect of the Inform phase. FinOps teams should also broaden these benchmarks to encompass industry peers.
During the optimize phase, FinOps teams build on the activities of the Inform phase to define a set of targets for the Operate phase. These targets cover both aspects of cost management including cost avoidance as well as cost optimization.
The Optimize phase is built around the following activities:
Instituting processes that identify and report on unexpected cost and usage spikes is essential to the Optimize phase. Quickly identifying spikes is essential in cloud environments where engineering teams can spin up hundreds of instances with a small configuration mistake.
Dynamic, real-time reporting, a comprehensive tagging policy and detailed cost allocation reports enable teams to quickly identify unused resources. These resources make up a significant proportion of most cloud environments, where they slip under the radar in the absence of a comprehensive and well-implemented tagging policy.
Once identified, FinOps teams can develop potential trim down plans for these resources in collaboration with engineering teams as well as measure the expected cost reductions.
Evaluating discounts is another essential activity that is performed by FinOps teams during the Optimize phase. A comprehensive recurring review of volume, usage and reservation based discounts enables FinOps teams to evaluate the effectiveness of already existing discounts, identify opportunities for improvements as well as collaborate with procurement to add more.
FinOps teams in collaboration with engineering can also explore other cloud vendors to host workloads. A detailed review of the feature-sets provided by those cloud providers as well as the cost benefits that would accrue as a result of the move would enable management to make decisions about migrating to another cloud or at the very least instituting a multi-cloud strategy.
The Operate phase of the FinOps lifecycle institutes processes aimed at achieving the targets set during the Optimize phase. The processes instituted during this phase should be living processes that are continually updated to keep pace with the rapid developments both in the cloud as well as in the FinOps framework itself. Building in automation to reduce manual labor and repetition is another key aspect of this phase.
Following are some of the activities in the Operate phase:
Building out processes to generate cost reports and deliver them to stakeholders is central to the Operate phase. These processes should be built in a way that enables quick iterative delivery on a daily basis. They should be augmented with more elaborate weekly or monthly cost reports, spend data, budget analysis and forecasts.
Engineering teams review the trim down plans for unused or under-utilized resources and in collaboration with FinOps teams implement these plans. Input from FinOps teams is essential since some critical services might require significant headroom to scale. Additionally, reviewing the business metrics identified and ensuring that the changes implemented by the engineering teams do not negatively impact them is essential.
FinOps teams need to continuously adapt cloud governance and usage controls to ensure that they do not negatively impact agility and innovation. A recurring review of governance mechanisms and usage controls in combination with business metrics and unit economics will enable better decision making about how to forge ahead with a cloud strategy that benefits the bottom line.
Automating the detection and remediation of unused or underutilized resources is another important activity during the Operate phase. Additionally, integrating recommendations into tools like Jira where engineering teams are much more at comfort rather than standalone optimization tools will aid cost cutting measures.
Fan of all things cloud, containers and micro-services!
Part 4 of our Introduction to FinOps for Kubernetes: Challenges and Best Practices article series, which outlines a comprehensive list of best practices aimed at implementing FinOps processes for cloud native Kubernetes environments.
August 26, 2021
5 min read
In a recent report, CNCF identified "a more granular and active Kubernetes cost-monitoring strategy" as a primary means of reducing K8s cost. In this article we identify major takeaways from the report and outline the contours of a comprehensive Kubernetes cost monitoring strategy.
August 12, 2021
5 min read
Part 3 of our Introduction to FinOps for Kubernetes: Challenges and Best Practices article series, which outlines a comprehensive list of best practices aimed at implementing FinOps processes for cloud native Kubernetes environments.
July 12, 2021
5 min read