From FinOps to proven cloud cost management & optimization strategies
This ebook covers the implementation of basic FinOps principles to shed light on alternative ways of conducting cloud cost optimization. It will help you build a solid financial management strategy and understand the importance of real-time optimization and explore cost saving opportunities.
- What is FinOps?
- Why FinOps is gaining momentum
- What the main FinOps principles are
- What the main cloud cost management and optimization challenges are
- What a cloud bill consists of
- How to reduce your cloud bill
- Success stories of FinOps adopters
And much more deep insights on FinOps enablement in your company.
Thank you for your request!
Your download will start in a few seconds
FinOps enthusiast & CEO at Hystax
About the author
Nick Smirnov is a FinOps and digital transformation enthusiast with more than 10 years of expertise working with public clouds and in enterprise software development. Nick is passionate about cloud adoption and is helping companies navigate cloud cost management more effectively.
Today’s companies are continuing to engage with cloud computing to optimize key performance metrics and making greater investments in the cloud. As a result, they’re seeing not only scalable, reliable and always-available IT infrastructure, but providing better services for end customers. A variety of industries benefit from cloud adoption, including healthcare, retail, finance, education and government.
Yet when an initial cloud migration is completed, issues likely arise. One challenge which often rears its head is the implementation of cloud financial management and cost optimization. Over the last several years, there has been a consistent problem – a lack of real FinOps practitioners who can fuel best practices, implement fresh ideas and set up smooth and efficient cloud cost management processes.
As cloud vendors offer more services, and cloud infrastructure continues to be dynamically developing, FinOps is not a one-day task. It is an ongoing process of improvement and optimization.
This ebook will cover the main principles of FinOps, practical tips and best practices in order to make FinOps more available for everyone involved in the process, from engineering, finance, operations, product management and leadership.
1. What is FinOps
FinOps is a relatively new concept in a cloud computing area. It’s actively developing and being implemented to help companies adopt a cloud environment in a smart, secure and transparent way.
FinOps brings together the ideas of engineering teams and financial departments to establish a transparent and defined process, when private or public clouds of different cloud providers in multiple locations are used optimally and consider cost, performance, capacity and company perspectives. It helps to build a process of constant optimization, improve cloud usage experience, control cloud resources and their expenses.
FinOps is not about saving some money on your cloud IT infrastructure. This methodology aims to build an effective cloud environment to ensure the quickest and most profitable business growth, enable more productivity, new features releases and higher ROI. FinOps is all about profitable, flexible and agile management, as well as successful and meaningful collaboration among departments, such as engineering, financial and management. It is a continuous process of improvement on all IT processes in order to identify and remove bottlenecks and blockers, enable engineering teams to update products faster, implement cloud migration strategies in a timely manner and fully identify when you’re in the red or when it’s time to invest more.
2. Why FinOps is gaining momentum
Consequences of a legacy IT infrastructure
The problems of legacy IT infrastructure aren’t just aging servers and outdated software. Some companies have a significant number of combinations of software infrastructure stacks, doubling the complexity and price of maintaining the environment. This problem takes significant time, effort and budget of an IT staff. For instance, labor costs scale as the number of configurations increases. Different teams are required to operate, integrate and maintain disparate infrastructures and configurations.
Implementing an agile, modern infrastructure opens new opportunities by decreasing labor, maintenance and other operating costs. It also frees your team up to deliver new products or services. The key to success is a proper cloud migration strategy, followed by FinOps methodology.
Public cloud consumption growth
There is no better time than now to start implementing cloud technologies and FinOps principles for your business.
Cloud integration is on the rise and businesses are quickly discovering the tremendous benefits that come with it. In fact, 92% of companies have at least a portion of their IT department in the cloud. Compared to 2020, revenue from public cloud will grow by 16% in 2021, and another 15% in 2022. Global cloud spending will grow seven times faster than overall IT spending through this period. There are forecasts that worldwide spending on public cloud services and infrastructure will nearly double, to around $500 billion, by 2023.
It’s not a surprise that well-established public cloud platforms — Amazon Web Services, Microsoft Azure and Google Cloud Platform — will reinforce their leadership in the cloud market in 2021. AWS will confidently stay on top, while MS Azure, GCP, and Alibaba will continue their growth to try to minimize the gap.
Unpredicted cloud bills
When investing thousands of dollars into cloud infrastructure, it is obligatory to be sure that you do so in a proper way. An interesting lesson emerged from 2020 to help one understand the importance of setting up FinOps practice and to avoid budget overruns in future. It was a free trial experiment which ended with a whopping $72,000 bill overnight.
It sounds impossible, but this is the real case of an unpredicted GCP bill. In such circumstances, it’s fair to say that FinOps is a necessity nowadays.
This year, wasted cloud spend is expected to exceed $17.6 billion. More than $11 billion of this wastage is expected from idle resources, while the additional $6.6 billion is attributed to oversized resources. These numbers are often the result of a lack of access to actual data.
Gartner predicts that enterprises that lack cost optimization processes will average 40% overspend in public cloud this year.
With a focus not only on budgets, but also on overall cloud usage and cloud health, any FinOps team can identify patterns in cloud usage, provide real-time optimization insights and prevent significant overspends. Regular cloud cost optimization and management help to constantly analyze your cloud usage and advise how you can get better performance with less cost.
That’s why FinOps has been becoming a mainstream as a foundation of cost-efficient cloud management for several years. Daily usage of FinOps methodology helps to overcome a set of evergreen problems: inaccurate forecasting of evolving bills, overspending for unused cloud resources, non-transparent shared cost, etc. Thus, cloud cost management is important for reasons beyond simple cost control. In particular, good cloud cost management gives businesses the ability to plan for the future, reduce waste, and forecast both their costs and their resource needs.
Managing cloud costs is like creating a solid foundation. Get it right and all kinds of perfect, long lasting business processes can be built on top. Get it wrong and, in the long run, it will cost more and cause a whole heap of trouble. The benefits of a FinOps strategy is clear.
3. What are the main FinOps principles?
Bare metal, private and public clouds offer not only different ways to provision and maintain resources, but offer different opportunities in how procurement and financial departments should treat and deal with them.
Bare metal and private clouds in the majority of the cases are about CapEx, when companies purchase and upgrade hardware and software licenses in some cycles, lease space and power, and pay salaries to personnel. Public clouds are based on OpEx with monthly or annual bills and a mindset of leasing but not owning. If you are a small company, it’s not a big deal to adjust your processes, but for a huge company it’s a real pain. Think Private clouds with CapEx, public with OpEx, engineering teams provisioning resources in multiple locations and without any limits in public clouds transforming into enormous bills, financial departments having on-premise and public resources and different accounting categories. These realities present obstacles to cloud adoption across big companies and showcase why they often still prefer not to go hybrid cloud.
To eliminate the barrier, FinOps methodology was created and is actively developing today with thousands of practitioners and enterprise companies as members and sponsors.
FinOps is a process and a set of best practices to bring the following aspects to companies and stakeholders:
- Visibility – cloud spending transparency and forecasting
- Optimization – cloud expense optimization
- Control – an established process of monitoring and controlling cloud resources and their expenses
- Collaboration – FinOps is not about one person at a company but a constant collaboration between engineers and their managers, between R&D, Operations and Financial departments, CTO, CIO and VPs offices.
Here is a list of people (but not limited to just these positions) engaged in the FinOps process: CTO, CIO, VPs and Directors of engineering / Ops / DevOps, CFO, financial controllers and analysts, engineering managers, project managers and, of course, engineers who work directly with clouds.
Before jumping into the steps to adopting FinOps, it’s important to define the end goal — to build a transparent and defined process, when clouds are used in an optimal way from cost, performance, R&D and company goals perspective and money waste are set to minimum.
3.1 FinOps principles: Visibility
Private clouds have regions, tenants, clusters, etc. Public clouds have linked accounts, regions, IAM users and so on. Usually, it is a complex task to figure out how much is spent on each application, or by any team, but this is crucial to understand bottlenecks, budget & forecast and avoid wastage.
Visibility, in case of FinOps, means identifying organizational units and mapping them onto cloud resources with preserving historical data for further trend analysis. Units refer to items like business units, teams, individual engineers, applications, cloud services and asset pools. As cloud resources are constantly changing, it’s important not only to capture the current state, but also to develop a process of getting visibility in dynamics.
What practices to get the visibility are:
- Identify the units (mentioned above) to be tracked.
Don’t spread at the beginning trying to control everything, focus on what’s most important. Start with business units, teams and individual engineers, as it’s a good way to begin the FinOps education process.
- Define a policy how to identify resources belonging to a specific unit.
It can be either tagging or a resource naming convention. What’s important is that when you define it, you should follow it to succeed.
- Define a policy to identify resource creators.
It’s tricky to figure out resource creators in public clouds, so it is extremely helpful to have a policy for that, even if it is just a Jenkins job. Later, you may need to figure out who or what created an unassigned resource, and this approach will help.
- Create budgets and charts to track units.
Use cost management tools to properly track budgets.
- Set TTL rules and create clean-up jobs.
Don’t allow any resources without TTL. TLL can be set with tags or as a part of a name and it helps to avoid wastage and understand the purpose of the resources better.
- Review your budgets in dynamics.
Unmanaged cloud expenses have a tendency to grow. You need to keep an eye on them to prioritize what budgets need immediate action.
- Avoid unassigned resources.
You should build a habit of zero tolerance to orphaned or unassigned resources. The more such resources you have, the less transparency you get.
- Don’t forget about ‘hidden costs’, cloud accounts and regions.
A cloud is not just about VMs or containers; there are dozens of other services and items that cost money, but are not so obvious. One of the most important aspects is network traffic, which can be a significant chunk of your cloud bill.
- Don’t forget that your resources can be spread between multiple cloud accounts and regions.
Taking those principles to action can immediately shed light on your current cloud expenses and opens the door to optimization, which will be discussed in the next chapter.
3.2 FinOps principles: Cloud optimization
Cloud optimization appears to be low-hanging fruit, but there’s good and bad news. The good news – in the majority of cases, you can quickly see instant results from FinOps. The bad news – you have to work on it constantly. One-time optimization gives results, however in a few months you can get back to your previous cloud bill.
There are a few practices you can use to optimize cloud resources and reduce your cloud bill. The most important factor is to establish a process of smart and conscious resource consumption and provisioning so you would deal not just with the results, but make optimization an integral part of all your internal processes.
Here are a few ways to optimize your current expenses, followed by how to make it a part of the entire cloud provisioning process.
There are hundreds of cloud resource optimization tools. Some are really advanced, some just look at machine monitoring metrics and offer cheaper solutions. Focus on what you can do yourself with your team and without any tools. It’s important to analyze the market and identify a solution that conforms with FinOps standards and can help you with all the four FinOps principles.
You may want to consciously focus on IaaS services, as they are the most common. All items should work for all public clouds.
Start with unused resources you can clean up:
- List all the volumes and snapshots not being attached to any VMs or used to create images. Review and remove them. When you remove images, don’t forget to revise snapshots as they are tied to images.
- List all the stopped VMs and check if they are needed. If they don’t cost you anything as a VM, they still have volumes attached.
Moving on to VM re-flavouring: review performance metrics from your VMs and see whether you need to choose less expensive flavours. It would be nice to start with recurring resources like CI/CD jobs as you’ll get a measurable result quicker.
Reserved instances and saving plans
Consider reserved instances and saving plans. Be cautious: reserved instances and saving plans which aren’t properly calculated can increase your expenses instead of reducing. You can find more articles online.
Consider spot instances. They are 2–4x cheaper than on-demand and are ideal for CI/CD jobs and short-term tasks.
Storage and networking optimization
- Review your cross-region and outbound traffic. Both are not free and can astonish you when you dig deeper.
- Turn on and configure retention settings for partial objects in all your object storage buckets. In object storage you pay for allocated space and sometimes you have partially loaded objects there which consume storage but are useless as they are not integral.
- Find duplicates and buckets/folders belonging to inactive users and projects. Proper orders in any object storage are rare if at all to occur.
- Consider using cold storage for some of your buckets and folders and this type of storage is way cheaper.
- Consider using CDN services instead of just object storage. You can improve your user experience and save on costs of storage and outbound traffic.
Let’s also consider building the process that should help you bring more order and use clouds in an optimal way.
- Tag all resources. You can use multiple tags to identify owners of the resources, TTL, project, team, whatever. Resources without a tag should be removed.
- Create a clean up script that will use a TTL tag and remove expired resources. Don’t rely on your engineers to clean up resources manually, or Jenkins jobs to do it automatically. CI/CD jobs can fail and engineers can forget and go for a PTO.
- Create a FinOps team to review the steps above and implement them. You need to do so regularly or it won’t work properly.
- Consider other clouds and regions. Not all regions have the same instance price and performance. You should actively monitor those metrics to provision in the best performing and cost-efficient cloud, region and availability zone.
- Find a software solution to assist you. Focus not just on a tool with the best marketing but on the one that really adopts and sets FinOps standards. Cloud optimization tools are not enough.
You should think about FinOps not only when you are a company with $1B revenue and 1,000s employees, but from the first day of your company as clouds can either boost growth or be a real pain – up to almost ruining your business (here is one of the examples). FinOps is dedicated to help you get the best out of the clouds paying only what you should.
3.3 FinOps principles: Control
Being able to see historical data of your cloud spending and optimize it is important, but it’s crucial to have an opportunity to build a process when funds are allocated and used only for what they should and with an option to manage and forecast the expenses.
- The benefits of the control are clear, but let’s summarize them:
It’s the main driver of constant optimization when there are no hidden costs, orphaned or unused resources.
- No budget overspending — you know your budget and can forecast the spending projecting it on the current month, quarter, or in some cases even, year.
- No destruction to your team when the team periodically has to review the expenses and figure out a way to optimize to stay under budget.
Here is some practical advice for FinOps teams on how to build a proper control process.
Building this process:
- Create a separate budget for every granular item
Create a separate budget for every granular item you would like to track. It can be (but not limited to) either a CI/CD job, or an application cluster, a R&D team, a PoC project, etc.
- Assign an owner to every specific budget
Don’t expect that one person can properly track more than seven budgets. This can be a DevOps engineer or a team member of your FinOps team.
- Identify a rule on how resources should fall under a specific budget and an owner
It can be a tag or a resource name prefix/postfix or some other rules used at your company. Ideally, if the resources can fall under budgets automatically (CI/CD job resources created with a tag, engineers use their name in prefix etc.).
- Set TTL rules
It can be another tag or, for example, a rule to remove resources older than 24 hours if they don’t contain some specific ‘do-not-delete’ tag.
- Create a cleanup script
Create a cleanup script to be periodically launched and to remove resources with expired TTL. Don’t forget about volumes, snapshots and images, they are costly resources, but at your company, you should have other categories.
- Compose a script or use third-party cloud cost management tools
Compose a script or use third-party cloud cost management tools to calculate and track budget forecasts and give up-to-date cloud expense data to every resource owner. Cloud-native tools are very limited in a way you can track expenses — keep in mind that the main idea of the cloud for you is to spend more, not to save. Consider sending the data to the budget and resource owners every Friday morning so that they have time to review and fix the issues before the weekend.
- Send instant alerts
The script from p.6 should be able to send instant alerts if there is an actual budget overspend or the forecast is 1.5 bigger than your budget. It gives more room for some corrective actions.
- Control reserved instances and saving plans usage
It is alarming how many companies take those options, but still use them.
- Control spot instance usage for CI/CD jobs
For the majority of the recurring jobs, your team can use spot instances but the team may not be familiar with the functionality.
- Educate your team
This is the most important step. Educate your team about the steps and explain why they are important. Running all the steps above is a process, but not a one time action. The majority of the companies fail exactly because of forgetting to execute the steps recurrently.
Keep also in mind that there are cloud cost management tools that can help with the principle and take care of the majority, but not all, of the steps. If your team doesn’t take it seriously or isn’t educated, you won’t get the best out of FinOps.