FinOps is a cloud financial management discipline that enables organizations to maximize the value of their cloud investments. FinOps achieves this objective by helping finance, engineering, business, and technology teams effectively collaborate on cloud cost decisions to drive business outcomes.
FinOps is first and foremost a cultural practice—a way to manage cloud costs with one set of policies and best practices, while ensuring all collaborators take ownership of their cloud usage. It facilitates collaboration between cross-functional teams to enable quicker product delivery, while obtaining cost predictability and financial control.
Managing cloud technology infrastructure requires a different approach from managing on-premises infrastructure. The traditional financial model involves buying resources and then depreciating and amortizing them over a certain period of time.
Organizations replacing the traditional model with cloud-based FinOps model requires a shift to focus on actual operational expenses according to by-the-minute usage. The cloud offers new dynamics, including elastic scalability, but it also means that financial resources may be rapidly exhausted. With FinOps software engineers should consider cost as a first-class performance indicator in their projects.
FinOps is quickly becoming an industry-wide practice. It helps organizations get the most value out of cloud investments.
The FinOps Foundation created six core principles that guide FinOps practices. The foundation re-examines and adjusts these core FinOps principles as needed.
FinOps uses cost as an efficiency metric for all teams, driving collaboration between interconnected finance, IT, and engineering teams. Organizations implementing FinOps need to define governance and controls for cloud costs and usage and improve practices to increase efficiency and innovation across these teams and the organization as a whole.
Visibility is a critical component to delivering on the benefits of FinOps. Organizations can use reporting tools that provide trending and variance analysis to inform all stakeholders about usage and expenses, tying cloud spend directly to business objectives. With this visibility and using internal benchmarks helps encourage teams to adhere to best practices and improve cloud financial management. Additionally, industry peer-level benchmarks can provide a broader view of progress.
A successful implementation of FinOps practices enables teams to manage their own cloud usage and see whether that cost fits the planned budget. These practices help ensure that everyone has ownership and visibility into cloud spending and can adjust as needed. Team level objectives help ensure members are held accountable for their cloud costs.
FinOps requires teams to have access to efficient reporting tools. Real-time feedback is key to managing costs efficiently and increasing business value. Visibility of resource usage enables fast adjustments and can reduce over- or under-provisioning. Organizations can also deploy automation to drive continuous improvement across FinOps processes.
FinOps takes a distributed approach to cloud financial operations. However, a centralized team must own, govern and control FinOps. Centralization ensures you can efficiently use committed-use discounts, and volume discounts including reserved instances (RIs) and Saving Plans from cloud providers.
A centralized buying process ensures teams not equipped for rate negotiations do not perform this task. Additionally, a centralized team helps provide a granular allocation of costs to the responsible teams.
FinOps enables organizations to fully leverage the appropriate cloud cost model to prevent unanticipated cost spikes. It involves right-sizing instances and services to ensure all teams gain the appropriate resources at the lowest cost.
According to the FinOps Foundation, FinOps is a crawl, walk, run process which should be iterative. It involves continuously circling through phases to refine FinOps and drive it forward.
The FinOps Foundation defines three major FinOps lifecycle phases:
A FinOps team must have visibility into cloud utilization and costs. The first step in implementing FinOps is assessing the organization’s efforts on cloud resources and services’ allocation, current costs, benchmarks, budgeting, and forecasts. A FinOps team will use this visibility and analysis to develop appropriate purchasing strategies for their organization.
Detailed allocation information enables the FinOps team to tie cloud utilization and costs to relevant cost centers and stakeholders. This visibility helps assign accountability. avoid unexpected costs, identify opportunities to improve, and show stakeholders the business value of the cloud.
A FinOps team uses analysis information to optimize cloud utilization. The team employs various automation techniques to optimize cloud costs and resources. They can use committed-usage discounts such as reserved instances to reduce costs, evaluate a cloud environment and right-size resources accordingly, and utilize tools to automatically scale down or shut off unnecessary resources.
FinOps teams continuously track cloud operations, evaluating them against business objectives and metrics. The team monitors and works to ensure cloud utilization and performance align with business needs. Additionally, the team shares this information with the relevant stakeholders to demonstrate the cloud’s operational and financial effects on the business.
Organizations can cycle through several or all phases of the FinOps lifecycle simultaneously, according to the workload or department involved.
DevOps is a paradigm that unifies development (Dev) and operations (Ops). It involves using practices, principles, and tools that facilitate collaboration and rapid development to help deliver software at a high velocity with as few disruptions as possible. DevOps requires a high level of automation and tools that help break down silos and facilitate collaboration.
FinOps and DevOps both require teams to undergo a cultural change, usually supported by new tools. The implementation starts with breaking down silos and setting up collaboration between teams, and the outcome is improved communication and collaboration. However, this is where the similarities end.
The responsibilities associated with FinOps are different from those associated with DevOps. DevOps focuses on software development, while FinOps focuses on cost optimization and management. But FinOps requires engineering and finance teams to collaborate to deliver on the cost optimization necessary to to drive better financial decisions without impacting DevOps performance.
Larger organizations typically have a dedicated FinOps individuals or an entire team. Other companies distribute these responsibilities across several roles, such as finance personnel like financial planning and analysis (FP&A), procurement, engineering and operations, cloud infrastructure architects, product owners, and DevOps leaders.
If your workload is fault-tolerant, use Spot instances to reduce costs by up to 90%. Typical workload examples include big data, containerized workloads, CI/CD, web servers, high-performance computing (HPC), and other test & development workloads. Using EC2 Auto Scaling you can launch both On-Demand and Spot instances to meet a target capacity. Auto Scaling automatically takes care of requesting for Spot instances and attempts to maintain the target capacity even if your Spot instances are interrupted.
Learn more in our detailed guide to AWS spot instances
For certain services like Amazon EC2 and Amazon RDS, you can invest in reserved capacity. With Reserved Instances, you can save up to 72% over equivalent on-demand capacity. Reserved Instances are available in 3 options – All up-front (AURI), partial up-front (PURI) or no upfront payments (NURI). Use the recommendations provided in AWS Cost Explorer RI purchase recommendations, which is based on your RDS, Redshift, ElastiCache and Elasticsearch usage.
Learn more in our detailed guide to AWS reserved instances
Savings Plans is a flexible pricing model that provides savings of up to 72% on your AWS compute usage. This pricing model offers lower prices on Amazon EC2 instances usage, regardless of instance family, size, OS, tenancy or AWS Region, and also applies to AWS Fargate and AWS Lambda usage. Use the recommendations provided in AWS Cost Explorer, and ensure that you have chosen compute, one year, no upfront options. Once you sign up for Savings Plans, your compute usage is automatically charged at the discounted Savings Plans prices.
Learn more in our detailed guide to AWS Savings Plans
Use AWS Cost Explorer Resource Optimization to get a report of EC2 instances that are either idle or have low utilization. You can reduce costs by either stopping or downsizing these instances. Use AWS Instance Scheduler to automatically stop instances. Use AWS Operations Conductor to automatically resize the EC2 instances (based on the recommendations report from Cost Explorer).
Use AWS Compute Optimizer to look at instance type recommendations beyond downsizing within an instance family. It gives downsizing recommendations within or across instance families, upsizing recommendations to remove performance bottlenecks, and recommendations for EC2 instances that are parts of an Auto Scaling group.
When returning to elastic block storage (EBS), and launching an EC2 instance, the volume of EBS is attached to the instance that is acting for the local block storage. When there is a termination in EC2, the EBS volume is only deleted and that also it can be viewed when you check the “delete on termination” box and that also when the instance was launched. If the box wasn’t checked, there is the way that the EBS volume still exists and is having a contribution of the value towards the monthly AWS bill.
Moving further depending on the business tenurity and the time it's being operated in the cloud, there would be a number of instances being launched and that too without the delete box being checked, there would be thousands of unattached EBS volumes in AWS cloud.
When we terminate an EC2 instance, by default, all attached EBS volumes are deleted as well. But it’s very easy to forget that your snapshots still remain on S3 and continue racking up monthly charges.
Those charges may also be more than you imagine. Although backups are mostly incremental, the initial snapshot is of the entire volume. Moreover, regular subsequent snapshots over a longer retention period may require as much capacity as the initial snapshot taken.
So, even though S3 is cheaper than general-purpose SSD, you should consider deleting the original EBS volume snapshot that was associated with the volume. This way, the monthly savings can be as much as those made by deleting all the orphan snapshots. Another option is to define an automated lifecycle policy to clean up snapshots after a certain number of days.
Learn more about these and other best practices in our guide to AWS cost optimization
AWS Auto Scaling monitors applications and adjusts capacity automatically to maintain consistent, predictable performance. It helps ensure applications always have the required resources at all times, while also optimizing cost, because when applications scale down according to actual demand, they also conserve costs.
The service offers a simple user interface (UI) for building scaling plans for various resources. Teams can use it to quickly set up application scaling for several resources across different services.
AWS Auto Scaling offers recommendations to help optimize costs and performance or balance the two. Teams using Amazon EC2 Auto Scaling to scale EC2 instances dynamically can combine this feature with AWS Auto Scaling to scale resources across other AWS services.
Learn more in the detailed guide to AWS auto scaling
Highly available systems ensure reliability by continuing to operate even as critical components fail. They achieve resiliency by handling failure without disrupting service or losing data and can seamlessly recover from failures with minimal costs and downtime.
High availability on the cloud usually comes at a cost - for example, cloud resources with more redundancy can have a higher cost. FinOps can help manage and optimize these costs, balancing them with the savings generated from reduced downtime.
AWS provides high availability for cloud workloads across the following areas:
Learn more in the detailed guides to:
You can use spot VMs to take advantage of unused capacity on Azure at a significant cost savings. At any point when Azure needs the capacity back, the Azure infrastructure will evict spot VMs. Spot VMs are great for workloads that can handle interruptions like batch processing jobs, development/test environments, and large compute workloads.
Learn more in our detailed guide to Azure spot instances
Azure Reservations help you save money by committing to one-year or three-year plans for multiple products. Committing allows you to get a discount on the resources you use. Reservations can significantly reduce your resource costs by up to 72% from pay-as-you-go prices. Reservations provide a billing discount and don't affect the runtime state of your resources. After you purchase a reservation, the discount automatically applies to matching resources.
You can pay for a reservation up front or monthly. The total cost of up-front and monthly reservations is the same and you don't pay any extra fees when you choose to pay monthly.
Learn more in our detailed guide to Azure reserved instances
Azure provides a wide range of VMs with different hardware and performance capabilities. Try using different VMs for the same workload to see which provides the best throughput or performance at the lowest cost. Stick with the VM that works best and use auto-scaling to automatically adjust the number of VMs to actual workloads.
Remember that you achieve optimal cost when all VMs are utilized at 100%. Try to get as close as possible to this goal by monitoring your metrics using Azure Monitor, and use auto-scaling or other methods to add and remove machines according to utilization.
Tags help you manage costs associated with the different groups of Azure products and resources. You can apply tags to groups of Azure resources to organize billing data.
For example, if you run several VMs for different teams, you can use tags to categorize costs by department, such as Human Resources, Marketing, or Finance, or by environment, such as Test or Production.
Tags make it easier to identify groups that generate the biggest Azure costs, which can help you adjust your spending accordingly.
Whenever possible, take advantage of combining lower resource costs and lower operational costs by using managed services. These services come with lower operational costs because you don't need to patch and manage the underlying infrastructure and services. Deploying applications on VMs comes with the administration and maintenance of the operating system, as well as any layered software.
Azure SQL Database is a great example of a managed service. You can deploy a single or pooled database, or a managed instance, and each of these is fully managed. You don't need to patch the underlying database software, and operational items like backup are built in and provided for you.
Since storage is often among the largest portions of ongoing Azure costs, optimizing this aspect of Azure deployment can bring significant reductions in overheads.
Azure Blob Storage model offers Premium, Hot, Cool and Archive storage tiers, each with appropriate pricing per GB a month. Using the right storage tier for the right type of data can be very cost-effective.
For example, storing the data you access less frequently on a lower-cost tier is a good automation practice as it decreases monthly costs and allows a substantial cost reduction in the long run.
Azure does not delete virtual disks when you delete a virtual machine. Disks continue living and incurring costs until you identify them and delete them. The Azure portal Disks screen shows all the active managed virtual disks in the current storage account. Look at the Owner for each disk—if this is empty, it means the disk is not used by any VM, and can potentially be deleted.
B-series VMs, or burstable VMs, can provide significant savings for workloads that mostly demand moderate CPU utilization but encounter occasional usage peaks. It can help save between 15-55% in costs, depending on the operating system.
Learn more in our detailed guide to Azure pricing
Azure Autoscaling can save costs in the Azure cloud by automatically monitoring a system’s performance and adding or removing resources as needed. Azure provides this feature for various computing options, including:
Learn more in the detailed guide to Azure high availability
Azure High Availability refers to the ability of a system or service to remain operational and accessible to users during planned or unplanned outages or disruptions. It ensures that services continue to run and can automatically failover to another instance or location in the event of an issue.
Like in AWS, the Azure cloud provides multiple high availability options that have a price attached. FinOps can help manage and optimize these costs, to achieve positive return on investment by reducing risk of service interruption, loss and damage.
There are several ways to achieve high availability in Azure:
Learn more in the detailed guide to Azure high availability
Google Cloud provides a billing reports page displaying a view at a glance of cloud usage costs and features to help discover and analyze trends. It displays a chart that visualizes usage costs for all projects connected to a Cloud Billing account. Users can select the date, define a time range, set up chart filters, and group by service, project, location, or SKU.
These reports can help learn about current Google Cloud spending trends for the current month, identify the most costly Google Cloud project during the last month, and the most expensive Google Cloud service overall. It can show the amount of spending per region and the cost of resources with a certain label and forecast future costs according to historical trends.
Idle resources like disks and VMs can accumulate costs. Google Cloud provides recommendations to help optimize these resources, such as an idle VM recommender that can identify inactive VMs and persistent disks according to usage metrics. It can help locate proof-of-concept projects that have been deprioritized and zombie instances that were not deleted.
Storage classes can help optimize costs by associating resources with the right class. Lifecycle policies automate this process using object lifecycle management. Configuring a lifecycle policy enables programmatically setting an object to adjust its storage class according to a set of conditions or deleting it entirely when it is no longer in use. Another option is to use Google’s tools for automatically cleaning up snapshots after a certain period of time.
A preemptible VM is a compute instance that exists for a maximum of 24 hours and is offered at up to 80% off the on-demand price. Preemptible VMs are ideal for fault-tolerant workloads, including big data, media transcoding, genomics, simulation, and financial modeling.
Azure allows using a combination of regular and preemptible instances by creating a specialized managed instance group. This configuration can help finish compute-intensive workloads quickly and cost-effectively.
Learn more in the detailed guide to Google Cloud pricing
With most organizations utilizing at least 2 cloud vendors, having a multi-cloud strategy is key to organization's FinOps success. With a multi-cloud approach, organizations can combine, compare and contrast the costs and features of different cloud providers, and can make informed decisions about which provider is the best fit for each workload or service. This can help organizations optimize their cloud costs and avoid overspending on unnecessary services.
However, implementing a multi-cloud strategy can also create additional complexity for FinOps teams. They will need to monitor and track costs across multiple cloud providers, which is far more challenging than monitoring costs for a single provider. Additionally, the cost structures of different cloud providers can vary significantly, which make it difficult to compare costs and make informed decisions.
To address these challenges, FinOps teams can use tools and automation to monitor, synthesize and track cloud costs across multiple providers. They can also establish processes for comparing costs and evaluating the best provider for each workload or service. Additionally, FinOps teams can work with other departments within the organization to establish governance and compliance processes that ensure all cloud spending aligns with the organization's overall financial objectives.
Learn more in the detailed guide to multi cloud and hybrid IT
Organizations use various tools to support FinOps. FinOps tools help assess cloud consumption and understand complex billing and invoices. These tools can also correlate cloud usage and cost against projects and users, push alerts, and provide reports.
FinOps tools provide the information needed to make data-driven financial decisions and capabilities for optimizing cloud usage and costs. FinOps tools are often native to specific providers, but some third-party options exist.
FinOps tools are designed to serve cross-discipline teams, providing analysis and reporting tailored to engineering, finance, and other disciplines. They also offer actionable optimizations and recommendations. These tools enable FinOps collaborators to see how recommendations can help improve cloud spend and performance.
Here are common FinOps tool features and functionality:
Learn more in the detailed guides to:
DevOps automation can play a significant role in improving the effectiveness of FinOps practices. By incorporating cost-related processes into various aspects of the software development and delivery process, DevOps teams can help to reduce costs and improve the efficiency of cloud infrastructure usage.
Here are a few ways DevOps automation can help with FinOps:
By leveraging DevOps automation, FinOps teams while optimizing the usage and costs of cloud infrastructure without impacting the speed, quality and reliability of the software delivery process.
Learn more in the detailed guide to DevOps automation
Adopting a FinOps culture in the workplace can help organizations to save cloud costs in several ways:
Learn more in the detailed guide to talent management
If possible, plan your FinOps strategy before migrating to the cloud. This strategy can help you plan future cost optimization scaling, and leverage opportunities like commitment based purchasing user pricing. It also gives you the time to learn the difference between on-premises financial planning and cloud financial planning.
Keep in mind that cost optimization can help save money but that should not be your only goal. Successful FinOps implementation sets maximizing business value as much as possible, while optimizing costs. The goal is to get as much business value as possible from your cloud investment by balancing savings with functional trade-offs.
Financial accountability is a core FinOps principle. It requires you to understand cloud spendings on an ongoing basis as well as upfront expenses. However, this can prove difficult for large organizations in which siloed teams do not communicate their spending granularly.
As a result, it takes time to calculate return on investment (ROI) and total cost of ownership (TCO). This is why FinOps collaborators should not only calculate current ROI and TCO, but also forecast future costs and conduct regular audits.
FinOps is not a one-time task, and successful FinOps implementations do not stop at the planning stage. Rather, FinOps involves setting clear, ongoing roles and responsibilities and processes to keep costs under control. You can achieve this by ensuring FinOps collaborators are involved in major product development and cloud infrastructure decision-making processes and by conducting regular audits and forecasting.
When planning a FinOps implementation, you must set clear roles and responsibilities. It involves determining who is responsible for FinOps in the organization and whether you want to hire a dedicated professional or someone from your existing cloud or finance teams. Define their exact responsibilities and designate a role among other teams tasked with providing the FinOps role with the resources needed to perform their responsibilities.
Open-source and proprietary software plays a significant role in cloud computing, both as infrastructure components and as tools and platforms for building, deploying, and managing cloud-based applications and services.
Open source software is often perceived as being "free," however, the reality is that there are costs associated with using and deploying open-source systems in the cloud. These costs can be significant and include:
Learn more in the detailed guide to open source licenses
In addition, proprietary software has both direct and indirect costs including:
A robust FinOps program must take into account all the costs of software, whether open source or proprietary, direct or indirect, to arrive at a true total cost of ownership of a cloud computing environment.
While public cloud providers offer native tools for some cloud optimization, and even provide recommendations for potential cost reduction, they stop short of actually implementing any of those optimizations for you. In addition, each cloud provider is also siloed to its own cloud. Most organizations have at least two clouds and therefore need a solution that can provide a multi-cloud perspective.
This is where Spot by NetApp’s portfolio can help. Spot not only provides comprehensive visibility into what is being spent on your cloud compute and by whom and on what resources, but also:
Learn more about Cloud Optimization from Spot by NetApp
Authored by Spot
AWS Cost Optimization
Authored by Spot
Authored by Spot
Authored by Spot
AWS High Availability
Authored by NetApp
AWS Availability Zones, Regions, & Placement Groups Explained
Making the Most of AWS High Availability Architecture for Enterprise Workloads
Azure High Availability
Authored by NetApp
Google Cloud Pricing
Authored by NetApp
Authored by NetApp
Hybrid and Multi Cloud
Authored by Cloudian
Authored by Cloudian
Authored by Mend
Open Source Licenses
Authored by Mend
Authored by Stoke
Additional FinOps Resources
for up to 20 instances