This document in the Google Cloud Architecture Framework outlines strategies to help you consider the cost impact of your actions and decisions when provisioning and managing resources in Google Cloud. It discusses FinOps, a practice that combines people, processes, and technology to promote financial accountability and the discipline of cost optimization in an organization, regardless of its size or maturity in the cloud.
The guidance in this section is intended for CTOs, CIOs, and executives responsible for controlling their organization's spend in the cloud. The guidance also helps individual cloud operators understand and adopt FinOps.
Every employee in your organization can help reduce the cost of your resources in Google Cloud, regardless of role (analyst, architect, developer, or administrator). In teams that have not had to track infrastructure costs in the past, you might have to educate employees about the need for collective responsibility.
A common model is for a central FinOps team or Cloud Center of Excellence (CCoE) to standardize the process for optimizing cost across all the cloud workloads. This model assumes that the central team has the required knowledge and expertise to identify high-value opportunities to improve efficiency.
Although centralized cost-control might work well in the initial stages of cloud adoption when usage is low, it doesn't scale well when cloud adoption and usage increase. The central team might struggle with scaling, and project teams might not accept decisions made by anyone outside their teams.
We recommend that the central team delegate the decision making for resource optimization to the project teams. The central team can drive broader efforts to encourage the adoption of FinOps across the organization. To enable the individual project teams to practice FinOps, the central team must standardize the process, reporting, and tooling for cost optimization. The central team must work closely with teams that aren't familiar with FinOps practices, and help them consider cost in their decision-making processes. The central team must also act as an intermediary between the finance team and the individual project teams.
The next sections describe the design principles that we recommend your central team promote.
Encourage individual accountability
Any employee who creates and uses cloud resources affects the usage and the cost of those resources. For an organization to succeed at implementing FinOps, the central team must help employees transition from viewing cost as someone else's responsibility, to owning cost as their own individual responsibility. With this transition, employees own and make cost decisions that are appropriate for their workloads, team, and the organization. This ownership extends to implementing data-driven cost-optimization actions.
To encourage accountability for cost, the central team can take the following actions:
- Educate users about cost-optimization opportunities and techniques.
- Reward employees who optimize cost, and celebrate success.
- Make costs visible across the organization.
Make costs visible
For employees to consider cost when provisioning and managing resources in the cloud, they need a complete view of relevant data, as close to real time as possible. Data in reports and dashboards must show the cost and business impact of team members' decisions as the relevant impacts occur. Usage and cost data of other teams can serve as baselines for identifying efficient deployment patterns. This data can help promote a shared understanding of the best ways to use cloud services.
If an organization doesn't encourage and promote sharing cost data, employees might be reluctant to share data. Sometimes, for business reasons, an organization might not permit sharing of raw cost data. Even in these cases, we recommend that you avoid a default policy that restricts access to cost information.
To make costs visible across the organization, the central team can take the following actions:
- Use a single, well-defined method for calculating the fully loaded costs of cloud resources. For example, the method could consider the total cloud spend adjusted for purchased discounts and shared costs, like the cost of shared databases.
- Set up dashboards that enable employees to view their cloud spend in near real time.
- To motivate individuals in the team to own their costs, allow wide visibility of cloud spending across teams.
Enable collaborative behavior
Effective cost management for cloud resources requires that teams collaborate to improve their technical and operational processes. A collaborative culture helps teams design cost-effective deployment patterns based on a consistent set of business objectives and factors.
To enable collaborative behavior, the central team can take the following actions:
- Create a workload-onboarding process that helps ensure cost efficiency in the design stage through peer reviews of proposed architectures by other engineers.
- Create a cross-team knowledge base of cost-efficient architectural patterns.
Establish a blameless culture
Promote a culture of learning and growth that makes it safe to take risks, make corrections when required, and innovate. Acknowledge that mistakes, sometimes costly ones, can happen at any stage during the IT design and deployment lifecycle, as in any other part of the business.
Rather than blaming and shaming individuals who have overspent or introduced wastage, promote a blameless culture that helps identify the cause of cost overruns and miscalculations. In this environment, team members are more likely to share their views and experience. Mistakes are anonymized and shared across the business to prevent recurrence.
Don't confuse a blameless culture with a lack of accountability. Employees continue to be accountable for the decisions they make and the money they spend. But when mistakes occur, the emphasis is on the learning opportunity to prevent the errors from occurring again.
To establish a blameless culture, the central team can take the following actions:
- Run blameless postmortems for major cost issues, focusing on the systemic root cause of the issues, rather than the people involved.
- Celebrate team members who respond to cost overruns and who share lessons learned. Encourage other members in the team to share mistakes, actions taken, and lessons learned.
Focus on business value
While FinOps practices are often focused on cost reduction, the focus for a central team must be on enabling project teams to make decisions that maximize the business value of their cloud resources. It can be tempting to make decisions that reduce cost to a point where the minimum service levels are met. But, such decisions often shift cost to other resources, can lead to higher maintenance cost, and might increase your total cost of ownership. For example, to reduce cost, you might decide to use virtual machines (VMs) instead of a managed service. But, a VM-based solution requires more effort to maintain when compared with a managed service, and so the managed service might offer a higher net business value.
FinOps practices can provide project teams the visibility and insights that they need to make architectural and operational decisions that maximize the business value of their cloud resources.
To help employees focus on business value, the central team can take the following actions:
Use managed services and serverless architectures to reduce the total cost of ownership of your compute resources. For more information, see Choose a compute platform.
Correlate cloud usage to business-value metrics like cost efficiency, resilience, feature velocity, and innovation that drive cost-optimization decisions. To learn more about business-value metrics, see the Cloud FinOps whitepaper.
Implement unit costing for all your applications and services running in the cloud.
- Learn more about FinOps:
- Monitor and control cost
- Optimize cost for Google Cloud services:
- Explore the other categories of the Google Cloud Architecture Framework