The public cloud poses a profound dilemma for modern businesses: How do we best navigate the trade-offs between 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 financial control to cloud deployments, 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 their cloud use and manage that use against their available budget. Give teams the tools and practices necessary to see and understand all cloud costs, establish cost/performance goals, and track cost/performance against goals over time. Missed goals should prompt close examination of cloud use.
Centralize cost savings. While collaboration is essential in FinOps, a core team should drive the initiative and manage cost benefits. For example, a centralized team should identify and govern cloud cost benefits such as committed use discounts, reserved instances, and other volume or custom discounts from cloud providers. A single team focused on discounts 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 and timely reporting to track cloud spending. It also requires performance metrics that can help the FinOps team gauge the effectiveness of any cloud deployment. Reporting can optimize cloud budgets and identify workloads that might be over- or under-provisioned.
Value. Organizations base their cloud decisions on business value; to justify its 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.
Take advantage of variable costs. It's easy to overprovision cloud resources or to leave unneeded resources running longer than needed. 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.
Three phases of the FinOps Lifecycle
FinOps is iterative. Team will 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 committed use discounts 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 aligns 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 delivering the best value to the business.
There are several FinOps best practices that can help a team achieve this goal:
Remember that it takes a village. FinOps requires a cross-disciplinary team with representatives from finance, product and technology or engineering groups. Ensure all team members firmly commit to the FinOps initiative, and work to establish and maintain an effective FinOps culture.
Standardize on cloud cost tools. FinOps demands a single source of truth for cloud costs. Adopt a single tool that can give each member of the team the utilization and cost information they need to make decisions. The tool can be native to a specific cloud, such as AWS Cost Explorer, or a third-party tool, such as CloudZero.
Establish cost-allocation tools and processes. To track resources and correlate costs, implement strategies such as cloud resource tagging.
Establish and adhere to metrics. FinOps teams need metrics, such as cost-per-customer or cost-per-transaction, to quantify cloud costs vs. performance. For example, cloud costs might increase 12% after IT upgrades or scales an important workload. The cost increase might be a concern initially, but the workload enhancements could lead to more transactions and customers.
Be diligent in monitoring and optimizing. Constantly track cloud workload or resource utilization against costs to identify ways to reduce cloud waste.