The public cloud continues to gain traction as a deployment target for enterprise workloads and storage. Yet as cloud resources expand and services diversify, business leaders are struggling with increasingly complex cost structures that are difficult to forecast and budget.
Although FinOps has emerged as an organization-wide strategy for organizing and optimizing cloud spending, it can be difficult to integrate FinOps priorities and practices across all elements of the business. In particular, DevOps teams that are directly responsible for cloud workload design, deployment and support often struggle most with FinOps adoption.
But integrating FinOps into DevOps pipelines can reduce cloud costs and save organizations money. Learn how to implement FinOps principles as part of DevOps workflows.
What is FinOps?
Self-service has become the cloud's blessing and its curse. Today, anyone with a credit card and a cloud account can architect resources, connect services and deploy workloads to run in the cloud.
Most cloud users, such as finance, HR and other department managers, are not experts in cloud architecture. Consequently, they might not possess the technical skills to assemble a suitable cloud environment capable of hosting a business application. This can lead to a range of problems, including the following:
- Overprovisioning. Workloads are allocated more resources than necessary.
- Sprawl. Users allocate resources and services to -- or forget about -- workloads that no longer offer value to the business.
- Performance issues. Users cannot monitor workload performance or scale cloud resource use dynamically to maintain performance requirements.
- Inconsistency. A lack of standardization means that every deployment is different or on different clouds, making optimization and troubleshooting almost impossible.
Unfortunately, all these mistakes can cost the business money every month, and those costs can skyrocket when multiplied by every employee who uses the cloud. The FinOps model is a new cloud cost analysis and management paradigm designed to address this issue.
FinOps, a portmanteau of finance and DevOps, emphasizes centralization and accountability in cloud spending decisions. FinOps starts with a centralized best-practices team with representatives from engineering, finance, technology and business.
This highly collaborative team collects and analyzes cloud cost and data use, and establishes a set of how-to standards for cloud use. Often, the FinOps team negotiates better pricing with cloud providers for commonly used resources and services.
The FinOps team helps users across the entire business incorporate best practices related to cost-effective cloud use, careful monitoring and conscientious spending. Each user is held directly accountable for their cloud spend and must meet the organization's cloud cost management and optimization objectives.
When implemented properly, FinOps enables well-informed compromises among speed, cost and quality in cloud spending decisions. For example, a FinOps team helps users in HR or sales understand how to deploy workloads in a cost-effective manner and collect essential spending data.
Bringing FinOps principles into DevOps practices
DevOps emphasizes collaboration between software development and IT operations, which empowers developers to deploy and manage software for the business.
Because the public cloud is an increasingly attractive development and deployment target, it might seem like FinOps goals and practices would be a seamless fit for DevOps groups. But in practice, DevOps teams can be slow to embrace FinOps.
A typical DevOps team is already faced with software design, coding and testing challenges, along with deployment and ongoing operations management responsibilities. Adding the financial oversight and cloud-specific business-wide practices associated with FinOps could be another hurdle for busy DevOps teams.
To smoothly integrate FinOps principles into the DevOps lifecycle, focus on the following best practices.
Share FinOps data with DevOps teams
FinOps teams gather and analyze significant cloud cost data over time to forecast and optimize cloud use. Sharing this data with DevOps staff supports DevOps' efforts to make use of cost efficiencies that the FinOps group exposes.
For example, say a FinOps team negotiates aggressive pricing on a specific type of cloud container. That information should be passed along to developers, who can recognize the cost benefit of designing and building software to use those containers.
Promote collaboration between DevOps and FinOps
DevOps team members deserve a seat at the FinOps table. Developers and IT ops professionals have detailed knowledge to share about the type and volume of cloud services needed to deploy business workloads.
Conversely, developers and IT ops should understand the importance of cloud costs and business goals that are the focus of cross-disciplinary FinOps teams. This builds collaboration, which is critical for successful FinOps adoption.
Discuss costs as a regular part of DevOps meetings
Development and IT ops teams meet regularly to discuss project progress and technical issues. These meetings should include discussions of cloud costs, such as cost-effective cloud infrastructure and business cost goals for developers to keep in mind.
When designing new software products, consider how to balance software performance, reliability and cost. For example, does a product require the additional cloud costs and complexities associated with high-availability operation?
Share DevOps data with the FinOps team
DevOps teams collect a wide range of metrics about process efficiency and software performance. Such data should be shared regularly with FinOps teams to enable early warnings about cost overruns, project delays and other potential issues.
For example, developers creating and deploying an API might collect performance metrics such as the number of calls the API handles over time or the average time to service an API call. If the FinOps team sees API service time increasing because call rates are climbing, FinOps can justify the additional cloud resources needed to scale the API deployment to maintain service quality while managing costs.
Have a contingency plan in place
Established FinOps guidelines and practices can vary and should evolve to suit the unique needs of each business. DevOps teams should understand how to use FinOps guidance to remediate performance or cost problems, such as adding resources to meet demanding deadlines in a way that is consistent with FinOps practices for the business.
Challenges to adopting FinOps principles in DevOps
FinOps has emerged as a valuable business and technology practice that brings a higher level of organization and insight to cloud spending. However, there are potential problems with FinOps adoption that can affect DevOps teams and the business.
Lack of stakeholder buy-in
The centralization of FinOps expertise can sometimes conflict with the self-service concepts of the public cloud, resulting in DevOps and business leaders failing to embrace or participate in FinOps practices. To promote buy-in, FinOps teams can start small. Quick wins that demonstrate the business value of FinOps efforts show DevOps and business leaders that FinOps saves money and effort.
Lack of accountability
If DevOps has no directive to embrace FinOps, there are no repercussions if FinOps principles are not followed. Because the purposes of FinOps are to understand cloud use, optimize cloud costs and hold other business leaders accountable for cloud budgets, organizations should implement business policies and goals to promote FinOps initiatives.
Lack of meaningful metrics
DevOps teams can better participate in FinOps initiatives by providing development and deployment metrics to FinOps teams, which can use that data to identify, remediate and prevent idle or underused cloud resources. If deployment and operations data is not monitored and shared, FinOps efforts wind up working in the dark.
Unpredictable cloud spend
Effective FinOps requires detailed use and deployment metrics. Workloads with highly variable or unpredictable cloud resource demands can be difficult for DevOps teams to manage efficiently, even with FinOps oversight. This sometimes prompts DevOps staff to ignore or undervalue FinOps guidance.
Lack of effective analytics
FinOps demonstrates business value because it helps business leaders answer important cloud business questions. Because FinOps requires analyzing data collected from cloud use to identify waste and optimization opportunities, poor or ineffective analytics make it difficult for DevOps teams to adopt FinOps practices.
Choosing tools for FinOps and DevOps
A FinOps approach typically relies on one or more software tools to gather data and perform analytics.
Although data collection and analysis ultimately fall to the FinOps team, all departments involved can access relevant financial and usage data. This offers critical transparency and objectivity, supporting effective FinOps adoption.
Many FinOps tools are available that offer varied features or cater to different industry verticals. There are not separate tools for FinOps and DevOps; in most cases, the two teams use the same tools. However, the following are some popular FinOps tools that DevOps teams might encounter:
- AWS Cost Explorer.
When choosing a FinOps tool, keep the following two axioms in mind: First, no two tools are the same, so choose the option that best meets the needs of the business and its specific cloud use cases. Second, test and evaluate several FinOps tools and select the best candidate based on features, ease of use, and integrations with other tools and business data sources before committing.