Getty Images
FinOps best practices to fully optimize your cloud costs
While there's no one-size-fits-all approach to a FinOps initiative, these established principles and practices get you started on the right path.
The public cloud poses a profound dilemma for modern businesses: How do they best navigate the tradeoffs among cloud performance, quality and cost?
It's a tricky tightrope to walk. Cloud services are typically designed by cloud architects and engineers, deployed and monitored by IT operations staff, and paid for by department managers. Each business silo rarely sees what the others are doing, which is a recipe for frustration and failure.
These challenges have given rise to the notion of FinOps, or cloud financial operations. Just as DevOps seeks to break down silos and bring developers and operations staff together, FinOps seeks to unite IT, finance, product and management teams.
To bring cloud cost management to cloud use, organizations should encourage cultural change and apply established FinOps best practices.
What are the FinOps principles?
The FinOps Foundation, a nonprofit industry group focused on cloud financial management, defines six governing principles upon which FinOps is based. These principles are designed to bring diverse business teams together to share in cloud-based activities:
- Collaboration. Regular and open communication is necessary to eradicate business silos. Engineering and operations staff must recognize costs as another measure of cloud efficiency. At the same time, finance and business staff must embrace the fast and dynamic nature of IT. Teams must work together to define the processes and practices for cloud use.
- Ownership. Ownership drives accountability. Enable each product team to own its cloud use and manage that use against the team's available budget. Give teams the tools and practices necessary to see and understand all cloud costs, establish cost and performance goals, and track cost and performance against goals over time. Missed goals should prompt close examination of cloud use.
- Centralization of cost savings. While collaboration is essential in FinOps, a core team should drive the cloud cost optimization initiative. For example, a centralized team should identify and govern cloud cost benefits, such as committed use discounts (CUDs), reserved instances and other demand pricing discounts from cloud providers. A single team focused on discounts and demand pricing can negotiate more effectively and relieve engineering and operations teams of this burden. It can also allocate costs to other teams and cost centers that use cloud resources.
- Reporting. FinOps relies on accurate real-time reporting to track cloud spending. It also requires performance metrics that can help the FinOps team gauge the effectiveness of specific cloud uses. Reporting can optimize cloud budgets and identify workloads that might be over- or underprovisioned.
- Value. Organizations base their cloud investments on business value. To justify cloud use, the cloud must be more beneficial than local workload deployments. FinOps teams use tools such as trending and variance analysis to examine cloud costs. Simultaneously, they can benchmark cloud workloads and costs to gain meaningful insight into how the business performs.
- Variable costs. It's easy to overprovision cloud resources or to leave unneeded resources running longer than necessary. FinOps teams must understand and take advantage of the fact that cloud services have variable cost models -- and businesses can save money by looking for opportunities to use less. Right-size cloud instances, retire unused resources and scale resources effectively to optimize costs and maintain performance.
3 phases of the FinOps lifecycle
FinOps is iterative, and teams continuously circle through phases to refine the FinOps effort and drive it forward. This iterative paradigm is similar to DevOps and other Agile development concepts.
According to the FinOps Foundation, FinOps follows three major phases:
- Inform. A FinOps team needs visibility into cloud costs and utilization. The first step in any FinOps effort is to understand how the organization allocates, benchmarks, budgets and forecasts cloud resources and services. This analysis should factor in any customized pricing or volume discounts. Detailed allocation information is necessary to tie cloud costs and utilization to business units. FinOps teams can show stakeholders the business value of cloud, while avoiding unexpected costs and looking for opportunities to improve.
- Optimize. With the detailed information mentioned above, the FinOps team can optimize cloud utilization. Tap into reserved instances or CUDs to save money. Evaluate the cloud environment, and work to right-size resources. Use automated tools to scale back or turn off unneeded resources.
- Operate. FinOps teams should continuously track and evaluate cloud operations against business objectives and metrics. Watch how cloud utilization and performance align with business needs. Again, share this information with stakeholders to demonstrate the cloud's financial and operational effects on the business.
An organization can be in multiple, or even all, phases of the FinOps lifecycle simultaneously, depending on the department or workload involved.
FinOps best practices
There is no single way to approach a FinOps initiative, but the underlying goal is always the same: to use cloud resources and services efficiently and cost-effectively, while raising awareness and delivering the best value to the business.
There are numerous FinOps best practices that can help a team achieve this goal, including these 10:
- Know the vendors. Cloud platforms, such as AWS, Google Cloud and Microsoft Azure, are in the same business, but their approach to the business varies. Any attempt to embrace FinOps and apply cost optimizations absolutely demands comprehensive knowledge of each cloud provider's resources, services, terms and concepts. For example, demand pricing ideas, such as CUDs, sustained use discounts, reserved instances, savings plans and spot instances, are all vendor-specific and carry different opportunities and obligations. Similarly, most resources and services are available in differing tiers, such as free tiers versus paid or performance tiers. Such knowledge can be critical for architecting a cost-effective, long-term, reliable infrastructure for cloud workloads and for maintaining a cost-effective infrastructure when a cloud vendor changes terms and plans.
- See the costs. You can't manage what you can't see, so cost visibility is a huge part of FinOps. Practitioners can use a bevy of cloud-native and third-party FinOps tools to monitor and report on real-time cloud costs. But think beyond simple costs. Employ tagging and categorization features to help identify and correlate cloud costs versus project, department, group, workload or even users. This type of detailed insight helps FinOps teams align cloud budgets and understand how much is being spent, on what, by whom and for what purpose. Look for granular reporting that can identify costs per unit of time, such as hourly costs, enabling teams to see recurring and unexpected cost trends in detail.
- Use alerting and reporting. Take full advantage of the alerting and reporting features available in FinOps tools. Real-time alerts can identify unexpected spikes in cloud utilization, which impose more costs. By correlating cost anomalies and alerts with cost visibility, FinOps teams can quickly identify the workload involved and make informed decisions whether to enhance or adjust the cloud infrastructure to mitigate unexpected cost spikes. FinOps teams should review reports regularly and seek further clarification from cloud providers for details that need additional explanation.
- Choose and use metrics. FinOps embraces a wide range of metrics and KPIs intended to quantify the performance and cost efficiency of cloud operations. Metrics and KPIs provide a sound baseline for ongoing cloud oversight and management. The FinOps Foundation outlines 36 KPIs, including Percentage Variance of Budgeted vs. Forecasted CSP Cloud Spend, Percent Storage on Frequent Access Tier, Hourly Cost per CPU Core and many others. Most KPIs can be calculated using data obtained from FinOps tools, and businesses can often implement additional KPIs to meet their unique needs. Metrics and KPIs are almost always obtained by using FinOps tools' dashboards and reports.
- Right-size cloud resources. Cloud providers can offer hundreds of different compute instances in dozens of service families. Waste occurs at two ends of the resource spectrum: when organizations undersize services to save money but risk losing revenue from poorly performing workloads, or oversize services to ensure ample capacity but risk wasting money from unused or excess capacity. A key to FinOps is right-sizing resources and spend patterns so each workload gets just what it needs to meet satisfactory performance goals. This takes continuous performance monitoring and reporting using appropriate metrics, such as utilization. For example, Amazon S3 Intelligent-Tiering can track utilization and adjust the storage tier automatically. In some cases, switching from an older service to a newer, more efficient version of the same service can also enhance savings.
- Identify and eliminate idle resources. The cloud's convenience can also be its weakness, which often leads to resource sprawl, such as VM or container sprawl, where resources are used but the resulting workload falls into disuse and its constituent resources and services are never released. The business winds up paying for resources and services that are unused or provide no benefit. Use FinOps tools to identify unused cloud resources and services, such as obsolete or test workload deployments that were never removed. This can involve pausing or releasing compute instances, as well as other associated resources, such as storage instances; network resources, e.g., elastic IP addresses; and other services, e.g., unused Amazon Elastic Block Store snapshots.
- Take advantage of demand pricing opportunities. Savvy shoppers know there are three ways to save money: buy in bulk, make longer-term commitments or look for leftovers. Cloud models typically echo these traditional savings mechanics through demand pricing schemes. Bulk can be reflected in tiers, and using fewer higher tiers can typically be more cost-effective than using more lower tiers in terms of resource availability and performance. Long-term commitments include AWS Savings Plans, Amazon Reserved Instances, and Google sustained use discounts or committed use discounts. Ad hoc savings can be found in spot pricing, where cloud providers seek to use their own resources at higher capacities by offering unused capacity at significant savings. Demand pricing requires careful consideration, planning and constant attention from FinOps teams.
- Use automation tools. Automation is a core attribute of public cloud capabilities, including infrastructure-as-code features. Cloud providers can help to right-size resources during provisioning by providing tools such as AWS CloudFormation or HashiCorp Terraform. Other tools can help scale a cloud infrastructure up or down as demands change over time, enabling the business to use fewer or smaller resources to save money when workload demand is light. Other tools help automate scheduling, enabling a workload to be deployed and operated for a prescribed period -- and then released -- to prevent sprawl and enhance workload lifecycle management.
- Include licenses in FinOps calculations. Software can trigger recurring licensing fees that can impact cloud spend. This can happen when the business licenses commercial software, such as OSes and Amazon Machine Images, and then deploys that software to a cloud instance, such as a VM. Take the time to identify licenses and include appropriate licensing costs with cloud costs. License awareness can help a business get more value from existing software licenses and prevent spending on unneeded licenses.
- Get the stakeholders on board. FinOps success requires support and participation from parties across the enterprise, including business leaders, technology leaders, project managers, department heads, finance and regulatory experts, developers, operations staff and more. Many successful FinOps implementations spawn cloud centers of excellence and formalized cloud operating models. Each team member should have a bona fide interest in cloud technology and management and fulfill regular responsibilities as part of a FinOps team.
Stephen J. Bigelow, senior technology editor at TechTarget, has more than 20 years of technical writing experience in the PC and technology industry.