This is part 2 of our FinOps In Practice: Best Practices Checklist blog series. In Part 1 we outlined best practices aimed at developing and operating a successful FinOps practice.
In this instalment we will expand on these initial best practices by identifying additional FinOps best practices including ones to manage shared costs, identifying, reporting and mitigating underutilized and unused resources, and balancing speed, cost and quality of cloud teams and projects.
Tagging is a central pillar of a successful FinOps practice. FinOps teams should facilitate agreement on a comprehensive tagging regime among all relevant stakeholders. Mechanisms both programmatic and manual should be implemented to ensure the tagging regime is applied uniformly by engineering teams across all cloud resources.
Another best practice is for FinOps teams to hold regular tag reviews where the tagging regime is analyzed and updated to accurately mirror the requirements of the FinOps practice. Processes should also be instituted to quickly identify untagged resources, and either tag them or equitably allocate the costs of those resources as shared resource costs.
Shared costs like those for shared services make up a not-insignificant portion of total cloud costs. To ensure teams have the most accurate view of costs, shared costs should be allocated equitably across all services. A best practice is for FinOps teams to allocate these costs based on usage metrics.
Anomaly detection is key to the FinOps process. Cost and usage anomalies or spikes are a necessary byproduct of the self service model of cloud providers. Honest configuration mistakes can at times lead to usage spikes resulting in a dramatic increase in costs. Quickly identifying and mitigating these cost anomalies and usage spikes is an essential first step to implementing a fully fledged FinOps process.
Setting up an iterative process to identify, report and mitigate underutilized resources is another best practice that should be instituted by FinOps teams. This would entail putting in place all the pieces of a good FinOps practice, including periodic daily/weekly/monthly cost allocation reports, equitably allocating shared costs, mapping cloud costs to cost centers and a comprehensive tagging policy.
Once instituted, these processes would help in quickly identifying underutilized or unused resources as well as the cost center/team those resources belong to. FinOps teams can then leverage the feedback loops and communication channels developed earlier to escalate requests for de-commissioning/rightsizing those resources.
All cloud providers feature volume, usage and reservation based discounts. Leveraging these discounts can result in a significant reduction in cloud costs. FinOps teams need to keep abreast of this rapidly changing landscape featuring frequent updates to the pricing and discounts.
A recurring process to analyze reservations and discounts already availed is also a best practice. This will help teams ensure that these discounts are being used effectively as well as identify new opportunities and communicate them to procurement.
A central pillar of the FinOps process is building out effective two communication channels and feedback loops between cloud cost stakeholders. Especially important are the ones between engineering and the FinOps team. These channels often result in both teams understanding the other's motivations and requirements. Once FinOps teams have a better understanding of the built-in infrastructure safety overheads, application requirements and overall infrastructure, they can mix, match and compare multiple cloud providers for the best cost-performance tradeoff.
Similarly, these communication channels result in engineering gaining a better understanding of cloud billing models and incorporating this knowledge when provisioning cloud infrastructure or services.
FinOps at its core requires a fundamental cultural change in how organizations think about the cloud. This cultural change needs to be adopted uniformly across all cloud stakeholders. As part of this cultural change engineering teams need to build understanding of the cloud billing model, internalize a culture of owing cloud costs, and adopt tagging and cloud cost optimization processes.
Executives and FinOps teams need to act as change agents, both formulating and driving the cultural changes required for a good FinOps practice. Finance and procurement need to go beyond viewing the cloud as an isolated expense and actively aid cloud innovation.
FinOps decision making often comes down to making informed tradeoffs between speed, cost and quality. In the context of FinOps, speed refers to the deployment speed of new features and products, quality measures the robustness, scalability, uptime, availability and performance of new services and cost refers to cloud spend.
A best practice is for FinOps teams to determine these tradeoffs for each individual team or cloud project. For example a team working with tight production deadlines can opt to optimize speed over cost, while a team operating services that are only occasionally used by end-users can opt to optimize cost over speed.
Interested in learing more about the FinOps framework?
Download our detailed guide to Cloud FinOps for FinOps teams, executives, DevOps, engineering, finance and procurement.
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
4 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
4 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
4 min read