Cloud costs come under increasing focus as enterprises face cost pressures in a tough business environment. Many enterprises, carried away by the post-COVID digital boom, migrated to the cloud, lock, stock, and barrel. They now experience sticker shock.
FinOps offers enterprises a way to control cloud costs. The following FinOps-based best practices boost cloud efficiency and keep costs low.
1. Get cloud cost visibility
Transparency and visibility are important prerequisites for controlling cloud costs. Cloud providers offer several savings plans and reserved instances. But taking advantage of such offers requires ready information on the actual usage requirements at any given time.
All cloud service providers offer cost management tools and visibility into cloud spending. But large enterprises with multi-clouds often lack complete visibility into their cloud usage.
- Configure cloud systems to get detailed insights into cloud usage and spending. For multi-cloud environments, third-party cloud cost visibility platforms integrate usage and spending.
- Get granular insights into resource usage and cost allocation. AWS cost explorer and other third-party FinOps tools drill down hourly cloud spending. Users can view costs by service, resource, and other criteria. Such insights make explicit usage patterns and spikes. Tracing the source of such patterns and spikes gets to the root cause of unexpected costs.
2. Integrate FinOps considerations into development workflows
Effective cloud cost control, or the lack of it, starts from the project implementation phase. Co-opt cost estimation tools during infrastructure design. Consider the financial implications during the planning and requirement-gathering stages.
- Co-opt cost-optimisation goals in the acceptance criteria for new features and services. Put in place budget limits at this stage.
- Estimate the potential cost impact of developers’ code choices and infrastructure configurations. Several cost estimation tools make such an analysis easy.
- Empower developers to make cost-conscious decisions when designing, building, and deploying applications.
- Quantify the impact of the cost-saving initiatives. For instance, explain to the developer how a GP2 to GP3 migration can save the enterprise, say, $2k, and how such savings will benefit them.
3. Optimise resource provisioning
Proactive provisioning offers the biggest cloud cost optimisation opportunities. Most cloud providers offer discounts for committed reserved instances and other savings plans from time to time.
- Track saving plans and reserved instances. Analyse usage patterns to determine if such options can benefit when available.
- Move routine and predictable workloads to reserved instances when possible. Keep on-demand provisioning as low as possible. On-demand is flexible but also the most expensive.
- Consider spot instances for non-critical workloads. Cloud providers such as AWS offer their spare capacity as spot instances at heavy discounts. But the provider may take back the capacity at any time they need it, meaning workflows running on such instances will get disrupted.
- Automate scaling. Enterprises today operate in a dynamic environment, with resource needs fluctuating by the hour. Use monitoring tools to collect resource-level metrics on usage. Such metrics guide whether to downsize to a small instance type or subscribe to a larger instance type. Providers such as AWS offer guidelines and formulas to aid in making rightsizing decisions.
Forecasting commitments is an art. Overcommitting results in paying for unused capacity, and undercommiting often results in extra payment for on-demand resources.
4. Use appropriate storage
One key cost component of cloud resources is storage. The type of storage chosen can make a big difference to the cloud bill. A blunt hammer approach only inflates the cloud bills.
- Use appropriate storage for different data types. Not all data requires uniform storage. For instance, the unsecured public cloud is okay for marketing collateral. But sensitive data, such as personally identifiable information may require a private cloud.
- Upgrade to the latest offerings for improved efficiencies. For instance, Amazon GP3 storage offers more flexibility and cost-efficiency for various workloads. It costs 20% less than the earlier-generation GP2 volumes with the same storage size.
5. Remove unused resources
Many IT managers have an on-premises hangover and overprovision resources. Still worse, many users do not shed the resources after the need ends, and the bills continue to run. Such cloud accounts accumulate unused resources over time. Examples include remnants of workload migrations, auto-scaling misconfigurations, developmental tests, and orphaned resources from discontinued projects.
- Use IaC tools to automate infrastructure provisioning and management. These tools also prevent accidental overprovisioning and stop idle instances. For every dollar saved on an instance, there are also savings in storage, network, and database charges.
- Shut down development and testing environments outside the core for eight to ten hours. In many enterprises, these environments run 24/7 and incur unnecessary costs. Such an approach could cut costs by as much as 66%!
- Keep an eye out for unused IP addresses. Cloud providers such as AWS charge for elastic IP addresses regardless of whether the enterprise uses it.
- Conduct periodic network audits to identify and shut down unused instances.
6. Implement tagging to track spending
A proper understanding of cloud costs requires dissecting the bill and taking proactive actions to reduce costs.
The bill from AWS or other cloud service providers lists only the cost for the cloud services, resources, operation type, or usage type. Using tags makes the bill more meaningful.
Tags allow:
- Identify sending patterns anomalies, paving the way for a data-driven cost-optimisation plan.
- Categorising resources based on departments, projects, teams, customers, or even cloud environments. Such insights allow businesses to attribute costs with precision and price services correctly.
- Identifying underutilised resources to right-size them.
7. Prioritise automation
Automation has caught on to streamline workflows and reduce errors, But automation is cost-intensive.
Consider effort versus impact when prioritising cloud automation projects. For instance, removing unassociated elastic IPs involves less effort, but its impact on cost is also not significant. On the other hand, removing unused EPS volumes has a high impact on cost, but the effort required to delete the volume is low. Stopping EC2 instances requires high effort, and the impact on costs is also high.
8. Tackle shadow IT
Shadow IT creates blind spots that impede visibility. In many enterprises, the cloud grows organically. Departments empowered with their budgets often set up independent cloud subscriptions. They bypass the IT team to get things done fast. Soon it leads to silos, duplicate resources, and unnecessary spending. Shadow IT also stands in the way of the enterprise getting bulk volume discounts or making optimal use of reserved and spot instances.
To thwart shadow IT:
- Deploy cloud discovery tools that scan the cloud environment and identify all resources in use. Crosscheck the resources with billing to identify resources not sanctioned by IT.
- Establish clear guidelines and approval processes for cloud resource provisioning.
- Ensure the standardised cloud service options meet the needs of most users. Reducing the incentive to create shadow IT solutions.
9. Promote a culture of cost consciousness
The FinOps approach goes beyond tools and processes. A key component is promoting a culture of cost consciousness.
- Educate developers when they are onboarded. Start with the basic principles. Make explicit what is expected of them regarding cost optimization. Do not assume they know anything about cost optimisation.
- Also educate the wider workforce about cloud cost optimisation, pricing models, and savings opportunities. Offer FinOps training programs to all levels of the organisation. This builds a common understanding of cloud pricing, optimisation techniques, and cost-saving strategies.
- Communicate cloud spending facts to the workforce. Provide easy-to-understand reports and dashboards for all teams.
- Establish a feedback loop between development and FinOps teams. Share cost insights with developers. Offer constructive suggestions and collaborative problem-solving.
- Recognise and celebrate teams who achieve cost-saving goals. Public recognition reinforces positive behaviours and motivates other teams. Consider incentive programs that reward teams for achieving cost-saving goals.
10. Make business-first decisions
Make cloud financial decisions from the perspective of the business or the end customer.
- Measure the impact of cloud spending on application performance and user experience. Examples of such metrics include cost per user or transaction.
- Define key performance indicators that track cost optimisation progress. Focus on value-based metrics that explicitly explain how cloud investments translate to business value. Traditional aggregate spending metrics do not capture the impact on the business. Share these metrics with the rank-and-file to build awareness and accountability.
- Commit to cloud spending only if it delivers business growth, customer satisfaction, or fulfils any other key objectives.
FinOps is a continuous effort and not a one-off project. Success depends on a disciplined and sustained approach. For best results, start small, with a single optimization activity across the business at a time, and set up a recurring campaign.