Page 13 of Umbrella Blog

Blog
multicloud management
Blog Post 6 min read

Multicloud Cost Management

More enterprises are adopting cloud computing to ensure that they can accelerate innovation, stay competitive, and enjoy cost savings. This trend has only increased in the last two years with the rise of remote work necessitated by the COVID-19 pandemic. With the rise of cloud adoption, multi-cloud and hybrid cloud deployments are increasing in popularity as well. According to a Gartner survey, 81% of survey respondents are using two or more cloud providers. Another survey by Microsoft revealed 86% of respondents were planning to increase their investment in either multicloud or hybrid cloud environments. Benefits of multi-cloud Multi-cloud refers to a configuration where an organization is using two or more cloud vendors, and possibly their own private cloud, as part of their computing operations. The different fee structures and operating models of these disparate cloud resources make it extremely challenging to quantify costs and implement proper cloud cost management measures. The following benefits are driving many organizations to move from single public or private to multi-cloud environments:  Combining the strengths of each provider By selecting multiple cloud providers, a business can take advantage of the strengths of each provider's offerings. No matter the quality of each cloud vendor, some may not be able to provide all of the features and capabilities your organization needs.  Organizations often mix and match cloud services to suit the requirements of their business, workloads, and applications. Reducing outage risk  A cloud service outage can have a significant impact on organizations that fully rely on cloud operations. For example, a recent AWS outage affected Netflix, Ring, Disney, Slack, and McDonalds, among others. Leveraging multiple cloud vendors lowers the exposure that a system can be taken out by a single public cloud outage.  Meeting compliance requirements A multi-cloud approach allows businesses to use a mix of cloud providers to comply with statutory regulations such as the GDPR and the CCPA, which require companies to store customer data in specific geographic locations. Achieving greater cost and performance optimization Using a multi-cloud approach allows businesses to select the cloud provider that offers the best cost or performance benefits in a particular geography. Complexities of multi-cloud environments While using a multi-cloud environment offers definite benefits over a single cloud environment, there are certain complexities you should be aware of if your business is looking at a multi-cloud approach. These include: Security Businesses may find it challenging to secure and monitor all the different systems in a multi-cloud environment as there is no single control point to monitor security issues. Integration With applications spread across more than a single cloud, there should be a way to ensure that the multi-cloud architecture allows the transformation and delivery of enterprise data across silos.  Challenges in Optimizing Costs A multi-cloud environment is inherently complex. As a result, being able to monitor costs, identify waste, and put an appropriate optimization strategy in place can be challenging. This is due to low visibility into operations, especially considering the complexity of tracking multi-cloud costs across cloud service providers. Thankfully, there are automated management solutions that can simplify multi-cloud visibility and cloud cost monitoring complexities. Managing the costs of multi-cloud environments Businesses looking to operate in a multi-cloud environment need to practice effective multi-cloud cost management to take into account the costs of several cloud providers. A business can effectively enforce accountability with a better understanding of usage and costs. These capabilities can improve your multi-cloud cost management: Visibility  With different cloud providers having disparate reporting interfaces, at times, it may be challenging to get a holistic view of the costs you are incurring in a multi-cloud environment. You should choose a tool that lets you get full visibility of your cloud spend, across all cloud environments.  Unified view  Each cloud provider has its own billing rules and tools, most of which are complex. Many organizations find it challenging to proactively understand and control cloud costs across multiple vendors. Having a single dashboard and a unified view of all cloud activities will help your business manage cloud costs in an efficient manner. Focus on cost efficiencies Many cloud cost monitoring services let businesses get visibility into where and how they spend their cloud resources. As a result, businesses can forecast and plan alternate scenarios that may result in greater cost efficiencies. A key technology to consider is Kubernetes which can help drive multi-cloud cost management as it lets organizations achieve full redundancy by running containers in multiple clouds. Use agnostic AI and machine learning driven monitoring Payment companies that use agnostic AI and ML-driven business monitoring can detect outages well before they actually occur. As a result, IT teams can take appropriate actions in real-time to mitigate damages or even migrate to a different cloud without any downtime. Furthermore, since the analytics and monitoring are agnostic, the IT teams don’t need to change the monitoring platform while moving between clouds. Assess your multi-cloud visibility A clear understanding of your cloud and Kubernetes usage and costs is critical to getting the most value out of your multi-cloud investment. To understand if you have complete visibility, start with these questions: Can you see all of your multi-cloud and Kubernetes data in one screen? Is your organization successfully executing your tagging strategy and can you tag untagged resources? Can you accurately tie spending data to relevant business dimensions? Does each stakeholder in your organization have the views and dashboards they need? Can you detect anomalies across cloud providers and teams? What to look for in a multi-cloud cost management solution? AI-powered An AI-powered multi-cloud management solution is a flexible and scalable solution that helps mitigate many of the challenges businesses face in a multi-cloud environment. Specifically, advanced AI monitoring solutions will help you get valuable insights into the metrics of the entire operation. Such a solution will give you an actual picture of all cloud costs by analyzing relevant data. You can also accurately correlate metrics with costs with the help of specialized algorithms. Anomaly detection  Real-time anomaly detection is another essential feature to look out for in a multi-cloud management solution. System administrators will get real-time alerts when there are unusual cost spikes or patterns. AI-powered anomaly detection autonomously works across cloud infrastructures. This allows organizations to resolve negative cost issues before a shocking bill arrives.  Complete visibility into end-to-end cloud operations A multi-cloud management solution should provide administrators with complete visibility of all cloud operation data. With the help of this information, administrators can decide on how to best optimize cloud resources by balancing budgetary constraints against business requirements. Multi-cloud cost management with Umbrella Umbrella seamlessly combines all of your business's cloud spend into a single platform. With Umbrella's cloud cost management solution, you can monitor and optimize your cloud costs and resource utilization across Azure, GCP, and AWS.  Umbrella includes a single view of cost and usage metrics across multiple clouds. Users have the ability to filter costs in multiple ways including payer accounts and linked accounts to gain an itemized view by developer or line of business.  With Umbrella, you can easily visualize and report costs with unlimited views and ML-powered savings recommendations, budgeting, forecasting, and anomaly detection to help you continuously control costs.
Blog Post 7 min read

Accurately Forecasting Cloud Costs

Most companies today have a “cloud first” computing strategy. According to Foundry’s April 2022 report outlining their 2022 Cloud Computing research, 92% of businesses globally have moved to the cloud. What’s more, the percentage of companies with most or all of their IT infrastructure in the cloud is expected to leap from 41% today to 63% in the next 18 months. As companies move more workloads onto various cloud platforms, cloud budgets continue to increase. Foundry reveals that, on average, organizations will spend $78 million on cloud computing over the next 12 months, up from $73 million in 2020.  With burgeoning growth of cloud computing, it should be no surprise that IT decision makers say one of the biggest obstacles to implementing their cloud strategy is controlling cloud costs. Long gone are the days of highly predictable and stable costs and change management processes that were the hallmark of legacy computing architectures.  The Challenge of Controlling Cloud Costs The very nature of cloud computing – and indeed, a reason that companies flock to it – is that compute capabilities can change rapidly to accommodate current business demands. Capacity can grow or shrink automatically by turning (billable) resources up or down. Each time the overall IT environment expands with new VMs here and additional storage there, increases in complexity drive the total cost of cloud usage higher. It’s easy to spin up cloud instances without oversight from IT or Finance. Developers do it every day as they create, modify and test applications. There is no formal change management process where a committee oversees the turnup of a dozen new VMs; this would take too long in a time-sensitive work culture. As a result, invoices for cloud resources can be a shock at the end of the month. Unfortunately, many companies don’t have total visibility of their cloud assets—some of which are created and forgotten as time goes on. Developers can login to the cloud platform at any time and add, delete, or modify operations. Individual teams or departments may have different methods for managing cloud resources and costs. All of this takes place under the demand for speed in operations to get to market first. Another challenge is the complexity of cloud providers’ billing processes. The pay-as-you-go services tend to offer many confusing options that are billed as separate components, making it difficult to understand what components tie back to which applications. The Rise of FinOps Cloud billing complexity has spawned the creation of an entirely new financial management role known as FinOps, defined by the FinOps Foundation as “an evolving cloud financial management discipline and cultural practice that enables organizations to get maximum business value by helping engineering, finance, technology, and business teams to collaborate on data-driven spending decisions.”  Other names for the practice include cloud financial management, cloud financial engineering, cloud cost management, cloud optimization, and cloud financial optimization. Regardless of the moniker, companies are finding it necessary to have specially trained people who can cross the barriers between the usage of cloud infrastructure and cloud cost management. Check out these tips for maximizing cloud ROI Predicting Cloud Costs is Difficult  Most cost forecasting tools base their numbers on what has been used and spent in the previous month. However, the very nature of the cloud is that it can automatically expand and contract according to work demands. Thus, cloud spend is variable and inherently difficult to predict. Furthermore, there can be seasonality in those work demands. For example, an online store is likely to see increased activity in the pre-holiday months of November and December. If November’s spend forecast is based on October’s activity, that forecast could be greatly underestimated and very inaccurate. Forecasts should be done frequently to know when the company is deviating from the budget. Even small deviations can result in big cost overruns. If a forecast is only done monthly, by the time a month passes, it can be too late to make adjustments that can help control costs. Many companies are multicloud, meaning they have two or more cloud platform providers. The tools necessary to make cost forecasts may be platform-specific and only work on one cloud, increasing the complexity of generating an overall forecast. Cloud technology is evolving quickly—from VMs, to containers, to serverless and whatever’s next. Some forecasting tools can’t delve into all the technologies, leaving a gap in forecasts where there is no visibility. Benefits of Forecasting Cloud Costs Despite the challenges of getting a truly accurate forecast of cloud expenditures, the benefits of doing so are valuable. In a recent 451 Research study, respondents indicated they saved 56% on cloud costs as the result of applying Cloud Financial Management (CFM) practices in their organization.  Controlling spend and knowing when a budget is about to be busted gives the organization an opportunity to make a fix to prevent excessive cost overruns. Real-time forecasts are most helpful in detecting when spending is going off the rails. Getting an Accurate Forecast into Cloud Costs The first step in getting an accurate cost forecast is to gain complete visibility into cloud costs, meaning, understanding what is being spent on cloud services in real time and having the ability to correlate cloud spend with business KPIs. The three major cloud platforms – Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure – all have native tools to help estimate costs. The tools are, respectively, AWS Cost Explorer, Google Cloud Billing, and Microsoft Azure’s online pricing calculator.   These native tools only work for their own cloud platforms, so in this approach, a multi-cloud organization would have to use multiple solutions. What’s more, the tools may not get to the level of visibility, detail, and frequency that an organization needs. They may not deliver information in real time, which is necessary to effictively control  spending.  Cost forecasting is a good use case for artificial intelligence (AI) analytics. In this approach, real-time continuous data feeds let the organization analyze cost changes as they are happening, not long after the fact. The underlying machine learning (ML) models can account for seasonality and other factors that could have a legitimate (i.e., expected) impact on spend. Moreover, the data feed can come from various sources, including multiple cloud platforms. When unexpected changes in costs take place, AI analytics can alert on a deviation as it is happening. This gives the organization an opportunity to investigate the root cause and make adjustments if necessary to prevent excessive cost overruns. Cloud Cost Forecasting with Umbrella Umbrella’s Cloud Cost Management solution helps organizations get a handle on their true cloud costs by focusing on FinOps to drive better revenue and profitability. From a single platform, Umbrella provides complete, end-to-end visibility into an organization’s entire cloud infrastructure and related billing costs. By monitoring cloud metrics together with revenue and business metrics, Umbrella enables cloud teams to understand the true cost of their cloud resources, with benefits such as:  AI-based analysis for identifying inefficiencies and anomalies – With the help of machine learning and artificial intelligence, Umbrella’s cloud cost solution analyzes data to find gaps and inefficiencies in the system. It can also catch anomalies in various parameters such as usage, cost, performance, etc., thus solving the inefficiency challenge.  Real-time cost monitoring – Monitoring cloud spend is quite different from other organizational costs in that it can be difficult to detect anomalies in real time. Cloud activity that isn’t tracked in real-time opens the door to potentially preventable runaway costs. Umbrella enables companies to detect cost incidents in real time and get engineers to take immediate action.  Cost and usage forecasting – Umbrella’s AI-driven solution analyzes historical data in order to accurately forecast cloud spend and usage by unit of choice, anticipate changing conditions, and get a better read on related costs. This helps organizations to make more informed budgeting decisions and find the right balance between CapEx and OpEx.  Savings recommendations – Umbrella helps organization to continuously eliminate waste and optimize their cloud infrastructure with personalized recommendations for unknown saving opportunities that can be implemented in a few steps. The dashboard below illustrates how Umbrella reports on cloud infrastructure costs. As cloud adoption and cloud spending grow, so does complexity and waste. Forecasting cloud spend is becoming more important for Finance and FinOps teams. Learn how Umbrella can help - request a demo today.
Blog Post 5 min read

Umbrella Supports the FinOps Foundation Mission

As a member of the FinOps organization, Umbrella is excited to sponsor the upcoming FinOps X event in Austin, TX.  Umbrella's mission has always been to help organizations solve one of the most recognized challenges associated with public cloud adoption — cost control and optimization. Every feature of our Umbrella cloud cost management platform has been built by taking a core FinOps market concern and working backward to deliver a capability that fills that need. We develop solutions that directly address our customers’ needs and provide significant value. Examples include the development of features such as K8s container costs, unit economics, anomaly detection, budgeting, forecasting, and more. These enhancements are  the result of listening and working with our customers to solve their most pressing issues. The FinOps Foundation We’re proud to announce that Umbrella is sponsoring the FinOps Foundation’s premier event, FinOps X. The FinOps Foundation is a program of The Linux Foundation ,dedicated to advancing people who practice the discipline of cloud financial management through best practices, education, and standards. The foundation has developed the FinOps framework, an evolving cloud financial management discipline and cultural practice designed to bring accountability to cloud spend and enable organizations to get maximum value by helping engineering, finance and business teams to collaborate on data-driven spending decisions.  The framework also outlines six guiding principles needed for a successful FinOps journey: Establish a culture of collaboration across IT, product, operations, and finance teams.  Accountability for cloud costs at the feature and product team level A centralized team responsible for purchasing commitments and negotiating vendor agreements.  All teams using cloud infrastructure should have access to timely reports.  Make decisions based on business KPIs.  Take advantage of the cloud's variable cost model. The FinOps journey consists of three iterative phases — Inform, Optimize, and Operate. The Inform phase provides visibility into cloud costs, allocation, budgeting, forecasting, and helps develop shared accountability by showing teams what they spend and why. In the Optimize phase, teams are empowered to take the right optimization actions based on their goals. During  the Operate phase, objectives shared by IT, Finance, and business leadership  are refined to focus and scale operational efforts through continuous improvement by breaking down the silos between teams. To succeed in this journey, an organization must create a culture of FinOps which involves building a Cloud Cost Center of Excellence built around business, financial, and operational stakeholders and defining appropriate governance policies and models. FinOps phases by FinOps Foundation Umbrella has developed a next generation Cloud Cost Management solution that is well aligned with the FinOps Framework and our customers' needs. Let's take a closer look at how Umbrella supports the successful FinOps journey through the inform, optimize and operate phases, as well as aligns with the FinOps Foundation principles.   Inform — Visibility & Allocation Umbrella provides full visibility into AWS, Azure, and GCP costs and usage data. Our dashboards and reporting are easy-to-use and accessible to anyone in the organization, and we process the data every few hours so it’s always up to date.  Using a robust data collection mechanism, we can support complex customer organization structures with multiple organizations, thousands of accounts, and millions of records. Additionally, we've developed advanced reporting capabilities to address some of the most complex challenges organizations face, such as Kubernetes cost monitoring, allocation, and optimization.  With Umbrella, you can analyze Kubernetes clusters usage reports, drill down on node and pod utilization, and breakdown costs by namespaces, deployments and more. Umbrella provides cross-organizational visibility into costs and usage data, tracks business KPIs, and is used by Finance teams for financial reporting, chargebacks, and cost allocation.   Optimize — Rates & Usage Umbrella has developed the most advanced recommendation engine available on the market today. The engine tracks your usage data, utilization metrics, and pricing options across AWS, Azure, and GCP to support your FinOps journey, and pin-point and prioritize optimization efforts.  Umbrella provides immediate (day 0) savings opportunities that go beyond compute and storage rightsizing with personalized cost optimization recommendations, waste trends, and exclusions for over 40 types of waste. Umbrella’s recommendation engine allows our customers to take continuous action to avoid waste, overprovisioning, and save millions of dollars every day. “Umbrella gives us visibility and control on cloud billing at a granularity that we have never seen before. The recommendations that they generate save us a huge amount in our cloud bill.” Rubi Cohen - Cloud Manager, Amdocs Operate — Continuous Improvement & Operations Umbrella for Cloud Cost was developed with design partners which run large scale Enterprise-grade cloud operations, such as Amdocs and Nice. As part of this process, we partnered with leading CCoE teams to learn about their needs and developed the tools to enable cross-team collaboration, continuous improvements in KPIs, and organization accountability for cloud costs. With advanced budgeting, forecasting, and anomaly detection capabilities, we help operations better control cloud spend and respond to usage spikes immediately. ”Umbrella gives me visibility into how much each of my SaaS customers costs within a dynamic microservice architecture . This information is key for our pricing strategy.” Mark Serdze - Director of Cloud Infrastructure, Trax Take your FinOps to the next level with Umbrella Umbrella’s alignment with the vision of the FinOps Foundation strengthens our ability to continue innovating for our customers and developing the best Cloud Cost Management  platform.  By seamlessly combining all cloud spend into a single platform our customers can optimize their cloud architecture across AWS, GCP, and Azure; make data-driven trade-offs; and get a handle on true cloud costs by focusing on FinOps to drive better revenue and profitability.  Getting started is easy! Book a demo with our Cloud Optimization experts.
Blog Post 10 min read

Best Practices for Maximizing Your Kubernetes ROI

96% of companies now use or are in the process of evaluating Kubernetes. As the maturity and complexity of Kubernetes environments grow, costs quickly spiral out of control when an effective strategy for visibility and optimization is not in place. Managing Kubernetes (K8s) Costs is Critical to Realizing Cloud-Driven Revenue Growth The COVID-19 pandemic accelerated digital transformation, driving businesses to double down on the cloud to scale up services and support ‘never-seen-before’ load and demand (e.g., Zoom), and in some cases, efficiently scale down applications in response to changing user patterns (e.g., Uber). As a result, organizations have scrambled to modernize application development processes and re-architect static, on-premises monoliths as agile, microservice-powered cloud apps, fueling the adoption of containers and container orchestration tools like Kubernetes. All major public cloud providers now offer managed K8s services, and according to CNCF’s Annual Survey for 2021, 96% of organizations are already using or evaluating Kubernetes. The promises of Kubernetes are shorter software development and release cycles, easier application upgrades and maintenance, better utilization of cloud resources, on-demand scale, and portability between clouds — all potential drivers of corporate revenue growth. However, in practice, Kubernetes has introduced potent risks to revenue growth, primarily due to the complexity it drives: Lack of internal experience and expertise with K8s architecture and management have forced businesses to invest in training, outside services, and expensive consultant engagements High-profile attacks have heightened concerns about security, driving additional budget and investment against vulnerability testing, hardening, and policy enforcement Engineers and architects, who historically did not have to worry about operational costs, are now on the hook for the financial impact of their code’s resource utilization, their node selections, and pod/container configurations This guide is designed to help your cross-functional Kubernetes value realization team — whether you call it cloud FinOps, your Cloud Center of Excellence, or it is a simple partnering of DevOps and Finance — come together and remove barriers to maximizing the revenue return on your business’ investment in Kubernetes. Inform: Empower Kubernetes Stakeholders with Visibility Relevant to Their Role Stakeholders in managing your Kubernetes deployment costs extend far beyond your end users. Typical K8s cost stakeholder parties include: Application end-users Business unit leaders App users within each line-of-business Your application engineering team Your DevOps team and practitioners Kubernetes admins, engineers, and architects Your Finance or IT Finance team Any formalized FinOps organization with your business or Cloud Center of Excellence Delivering transparency and a single-source-of-truth system for Kubernetes usage data is table stakes for each of these personas, and is required to align business, operations, and DevOps teams. Dashboard, reports, and alerts are all common methodologies of providing visibility, and leading tools will enable customization of views per persona so that each user sees only the data that impacts their role. Specific visibility requirements will vary per persona and per team. Typical requirements include varying levels of granular visibility (from your clusters to their containers) and analytics across all your public clouds, including non-container resources and workloads. From a reporting and dashboards perspective, users demand instant data on current K8s cost trends and forecasted costs. Sophisticated multicloud cost management platforms like Umbrella enable the per-role visibility business stakeholders need by: Visualizing and tracking Kubernetes spending and usage across clusters, namespaces, nodes, and pods Correlating cloud spending with business KPIs Enabling the deepest visibility, analysis, and breakdowns for the costs of non-K8s and Kubernetes cloud components as individual and shared costs, by cost center, and by other levels of categorization and virtual tagging Enabling you to unify Kubernetes label keys and traditional resource tag keys to build a combined allocation model   Optimize: Leverage Intelligent Recommendations to Continuously Optimize Kubernetes Costs and Usage After enabling appropriate visibility across all your stakeholders, you and your FinOps team can finally take on the task of optimizing and reducing Kubernetes spending. With comprehensive K8s visibility, you can fine-tune Kubernetes resource allocation — allocating the exact amount of resources required per cluster, namespace/label, node, pod, and container.  Monitoring and configuring your Kubernetes deployments properly will improve infrastructure utilization, reduce instances of overprovisioning, and reduce application infrastructure costs. Actually implementing continuous optimization procedures proves challenging for many organizations, even with enough visibility. Prioritizing optimizations is a challenge, and in many organizations, getting the engineering buy-in and cycles to actually implement the infrastructure changes that have been identified as cost-saving measures is difficult (as evidenced by multiple FinOps Foundation studies that have identified “Getting Engineers to Take Action” as the recurring primary priority of FinOps teams). Umbrella  provides a shared source of cost visibility and cost optimization recommendations, making continuous improvement a scalable task for multi-stakeholder teams by: Making next-step actions to implement optimizations blatantly evident (with explicit management console instructions or CLI commands) Specifically outlining the cost impact of each optimization change Helping your team to identify anomalies and underutilization at the node and pod level in an ongoing way Check out these tips for maximizing cloud ROI Operate: Formalize Accountability and Allocation for Kubernetes Costs As a FinOps strategy leader, you must gain consensus and instill proper financial control structures for Kubernetes within your organization. FinOps strategies without accountability and alignment are doomed to failure. Financial governance controls further reduce the risk of overspending and improve predictability. This operating phase is where the rubber meets the road as far as what results you will gain from your Kubernetes FinOps efforts. If you have put the right controls in place and have an effective formalized cost management process, your team will be enabled to: Effectively and fully transition from the slow, on-premises CapEx model to the elastic, real-time OpEx model enabled by the cloud Move from the old-world paradigm of Engineering as requestors/Finance as approvers to Engineering and Finance acting as one Rully replace predictable, static hardware spend (with long procurement processes) with predictable budgets for on-demand (instant procurement) container resources All of which helps your organization transition from the antiquated physical infrastructure world with high cost of failure to a paradigm that enables affordable “fast failing” and agile experimentation. But, how do you ensure formalized accountability practices and procedures are in place? We have established that cost efficiency is a shared responsibility, with the FinOps team in charge of standards. Your FinOps stakeholders must stand up the proper guidelines, cost monitoring, alerting, and optimization processes. Within these constructs, Engineering is tasked with making sure their investments are cost-minded and efficient. There are additional specific actions you can take to enforce and enhance accountability and cost allocation practices, through: Organizing resources by application and, when possible, using dedicated clusters for each app Flexibly and strategically defining and assigning namespaces and labels to align usage with cost centers (application, team, or business unit), and unify this approach with traditional resource tagging so you can allocate costs, analyze by cost centers, and perform full allocation across K8s and non-Kubernetes workloads. Making sure that the teams that are driving costs (in DevOps/Engineering) have cost and usage information at hand, in addition to providing these same details to your product, project, and system owners and managers Delivering visibility into which committed-use strategies are in place: this can help incentivize Engineers to leverage Savings-Plan-ready instances over incumbent choices Regularly hosting review sessions with stakeholders to review high level dashboards and socialize the cost impact of optimizations Have a solid and comprehensive Kubernetes showback model in place, and leverage the aforementioned visibility and reporting capabilities (like those enabled by Umbrella) to help your teams understand how they are doing in terms of costs. Chargeback approaches (where stakeholders are directly invoiced for their cloud spend impact) are appropriate for teams that have required visibility and education, but avoid creating a culture of Kubernetes cost shameback — which emphasizes inefficiencies and weaknesses rather than building communication, mentorship, and shared education efforts that enable cross-organizational wins. Above all, create a fluid flow of communication about what efforts are being made,  and what savings results are being achieved. Loudly champion any and all wins and successes. Cloud and Kubernetes cost management tools like Umbrella help automate and centralize much of this work: Automated alerting and reporting can appear within the tools and interfaces your teams already use to show them usage and savings impact without forcing them to regularly open and consult another solution Calculate Kubernetes unit costs and answer the question, “for each dollar spent in K8s, how many dollars of revenue did we generate?” Help Engineers to take ownership of the cost impact of their choices by showing the results of cost-conscious resource provisioning and utilization Building Your Strategy for Operationally Maximizing K8s ROI A successful financial management strategy for Kubernetes infrastructures in the public cloud — whether on AWS, Azure, or GCP — requires educating and uniting stakeholders from parties as diverse as Finance and DevOps around shared goals and processes. Step 1: Understand Kubernetes Cost Drivers First, stakeholders from each line of business that consumes Kubernetes services and the FinOps governing team must develop at least a basic awareness and understanding of each K8s cost driver’s function and importance (both direct and indirect). Step 2: Align on K8s Optimization Strategy and Tools Next, these same stakeholders can evaluate different strategies for controlling and optimizing costs against each cost driver and identify those that make sense in accordance with the business’ specific focus and goals and objectives. At this time, it also makes sense to evaluate the Umbrella Cloud Cost Management  tool that provides comprehensive, cross-cloud (multicloud) and cross-technology (AWS, Azure, GCP + Kubernetes) visibility, optimization, and forecasting capabilities. Umbrella is often selected at this stage by organizations that are focused specifically on financial management of cloud and Kubernetes, and who prefer to have a single, focused tool that drives cloud and K8s ROI. Step 3: Implement a Continuous Kubernetes Optimization Practice Finally, a FinOps plan for operationalizing the selected strategies in an ongoing manner can be created by leveraging the Inform > Optimize > Operate cyclical framework. Detecting Kubernetes Cost Anomalies “Bill shock” is too common an occurrence for businesses that have invested in Kubernetes. Anomaly detection intelligence will continuously monitor your usage and cost data and automatically and immediately alert relevant stakeholders on your team so they can take corrective action. Anomalies can occur due to a wide variety of factors and in many situations. Common anomaly causes include: A new deployment consuming more resources than a previous one A new pod being added to your cluster Suboptimal scaling rules causing inefficient scale-up Misconfigured (or not configured) pod resource request specifications (for example, specifying GiB instead of MiB) Affinity rules causing unneeded nodes to be added Save your team the pain of end-of-month invoice shock. Any organization running Kubernetes clusters should have mechanisms for K8s anomaly detection and anomaly alerting in place. Umbrella for Kubernetes Cost Management  Umbrella’s cloud cost management solution gives organizations visibility into their Kubernetes costs, down to the node and pod level. By combining Kubernetes costs with non-containerized costs and business metrics, businesses get an accurate view of how much it costs to run a microservice, feature, or application. Umbrella provides granular insights about your Kubernetes deployment that no other cloud cost optimization platform offers, with the ability to easily connect to AWS, Azure and GCP.  Umbrella helps your FinOps and DevOps teams work together to identify and eliminate waste, so you can maximize the value you get from your cloud environments.
Kubernetes cloud costs
Blog Post 19 min read

Kubernetes Cost Optimization: 10 Best Practices + 5 Advanced Tools

As the complexity of Kubernetes environments grow, costs can quickly spiral out of control if an effective strategy for optimization is not in place. We've compiled expert recommendations and best practices for running cost-optimized Kubernetes workloads on AWS, Microsoft Azure, and Google Cloud (GCP). [embed]https://youtu.be/YH6ydkRVKEo[/embed]   What Is Kubernetes Cost Optimization?   Kubernetes cost optimization is the practice of maintaining Kubernetes infrastructure and workload performance while optimizing cost-efficiency to the max. In other words, it’s a way of improving your Kubernetes performance while maintaining reliability. This entails identifying areas of the Kubernetes environment that are less cost-efficient than others.  Cost optimization strategies include: Minimizing your number of servers and reducing environment services. Autoscaling your application or cluster to meet demands and saving costs by shutting down when demands decrease. Sharing resources across multiple servers.  Optimizing network usage.  Improving node configurations.  Optimizing storage space.  Regularly using sleep more.  Which Factors Contribute to Kubernetes Costs?   Something important to note is that there is no one thing that leads to your Kubernetes bill breaking your budget. The tricky part of Kubernetes cost optimization is that often a lot of very small costs can pile up, unnoticed, in the background. The following are all factors that are likely contributing to your Kubernetes bill:  Compute costs. Since Kubernetes requires compute resources to power workloads and operate the control panel, it can be tricky to keep track of how much you're spending. Monitor how many applications you're running and keep an eye on the number of servers that you join to your clusters – because that's all going on your bill! Storage costs. Kubernetes storage costs vary depending on your chosen storage class and the amount of data you want to store. For example, costs vary enormously depending on if you use HDD or SSD storage.  Network costs. If you're using a public cloud to run Kubernetes, you need to pay networking costs. This includes degrees fees, fees which cloud provides require when you move data from their cloud to another infrastructure.  External cloud service costs. Depending on how many third-party services and APIs you use in your Kubernetes clusters, your external cloud services costs might be quite high. Your bill will increase depending on the type of service, the amount of data or calls exchanged, and the service-specific pricing model.  Best Practices for Kubernetes Cost Optimization Here are a few basic things you can do to optimize Kubernetes costs. Below we discuss Kubernetes cost optimization solutions that can help you execute more complex strategies.   1. Right-Sizing Pods Right-sizing pods involves allocating the appropriate amount of CPU and memory to your pods to prevent both over-provisioning and under-provisioning. Over-provisioning wastes resources by reserving more capacity than the workload actually needs, while under-provisioning can lead to performance issues and crashes if the workload exceeds available resources.  Start by profiling your workloads to understand their actual resource usage patterns. Then, use Kubernetes' resource requests and limits to specify the minimum and maximum resources that each pod can utilize. Continuously monitor your pods' resource consumption using tools like Prometheus or Kubernetes Metrics Server, and adjust the configurations over time.  2. Use Horizontal Pod Autoscaling (HPA) Horizontal Pod Autoscaling (HPA) is a dynamic scaling mechanism that automatically adjusts the number of running pods based on current demand. This feature allows you to scale out (increase the number of pods) during high traffic periods and scale in (reduce the number of pods) when traffic decreases, ensuring that you're only paying for necessary resources.  HPA works by monitoring key metrics like CPU or memory utilization and adjusting the replica count accordingly. To maximize the effectiveness of HPA, it’s crucial to set appropriate threshold values for the metrics you are monitoring. For example, you might want to trigger scaling when CPU usage exceeds 70% or when memory usage exceeds a certain threshold.  3. Leverage Spot Instances Spot instances provide a cost-effective way to run Kubernetes workloads by allowing you to take advantage of unused cloud resources at significantly discounted rates—up to 90% cheaper than on-demand instances. The trade-off is that spot instances can be interrupted by the cloud provider with little notice when demand for on-demand capacity increases.  These instances are suitable for fault-tolerant, stateless, or batch processing workloads where interruptions are acceptable. To use spot instances effectively in Kubernetes, configure node pools to include both spot and on-demand instances, using on-demand nodes for critical workloads and spot instances for less critical ones.  4. Use Cluster Autoscaler Wisely Cluster Autoscaler aids in Kubernetes cost optimization by adjusting the number of nodes in a cluster according to the resource demands of workloads. It automatically scales the cluster up by adding nodes when there aren't enough resources to schedule new pods, and it scales the cluster down by removing underutilized nodes when they are no longer needed.  To use Cluster Autoscaler efficiently, configure it to avoid unnecessary scaling during temporary spikes by adjusting its parameters, such as the scale-up and scale-down delay times. This prevents the system from adding more nodes than necessary during brief traffic surges, which can lead to wasted resources. Additionally, use taints and tolerations to control which workloads are allowed to run on node pools. 5. Set Resource Quotas and Limits Setting resource quotas and limits at the namespace level is crucial for preventing resource overconsumption and ensuring fair resource allocation across teams and applications. By defining resource quotas, you can set limits on the total amount of CPU, memory, and storage that a namespace can consume, preventing a single team or application from monopolizing cluster resources.  Resource limits define the maximum amount of resources that an individual container or pod can consume. Setting these limits prevents rogue processes or runaway workloads from exhausting cluster resources, which can lead to performance degradation or outages. You should regularly review and adjust quotas and limits based on resource consumption trends. 6. Node Pool Optimization Node pool optimization involves creating multiple node pools optimized for different types of workloads. For example, you can create node pools with high-memory instances for memory-intensive workloads, high-CPU instances for compute-heavy tasks, or GPU-enabled nodes for machine learning workloads.  By aligning the node pool configurations with the requirements of workloads, you can avoid over-provisioning and ensure that each workload is running on the most suitable instance type. You can further optimize node pools by enabling autoscaling for each pool, allowing Kubernetes to dynamically add or remove nodes based on the needs of the workloads assigned to that pool.  7. Implement Lifecycle Policies Lifecycle policies help manage how and when pods are created, terminated, or rescheduled, enabling you to optimize resource usage over the lifecycle of a workload. For example, you can use PodDisruptionBudgets (PDBs) to ensure that a minimum number of critical pods are always available, preventing downtime during maintenance or scaling operations.  Preemption policies can be used to terminate lower-priority pods when higher-priority workloads need resources, ensuring that critical services maintain uptime while reducing the cost of running non-essential workloads. Additionally, pod termination grace periods allow time for processes to shut down gracefully, which can help avoid resource leaks and rework.  8. Efficient Persistent Storage Usage Storage costs in Kubernetes can quickly spiral out of control, especially if you are using high-performance storage classes (such as SSDs) for workloads that don’t need them. To optimize persistent storage usage, carefully select storage classes based on workload needs—use long-term data storage and SSDs only for workloads that require fast I/O.  Regularly review and clean up unused or orphaned persistent volumes that may continue accruing charges even when they are not actively being used by any pods. Backup and replication strategies should also be evaluated to avoid unnecessary duplication of data, which can lead to inflated storage costs.  9. Use Optimized Container Images Large, bloated images consume more storage, take longer to pull, and increase the overhead on nodes. To optimize container images, start by using lightweight base images such as Alpine or distroless, which are minimalistic and remove unnecessary binaries and libraries. Remove unused dependencies, binaries, and files from container images to further reduce their size.  Implement multi-stage builds in Dockerfiles to separate the build environment from the runtime environment, ensuring that only the necessary files are included in the final image. By optimizing container images, you reduce both the storage footprint and the network bandwidth required to pull the images, which can lead to lower overall costs. 10. Optimize Load Balancers and Network Costs Network costs, especially in cloud environments, can become a significant part of your Kubernetes bill if not properly managed. To reduce network expenses, design your Kubernetes topology to minimize cross-region or cross-availability zone (AZ) communication, as these types of transfers often incur additional charges.  Where possible, keep traffic within the same region or AZ to avoid unnecessary data transfer fees. Limit the use of external load balancers, which are often billed based on the amount of traffic they handle. Instead, consider using internal load balancers for services that only need to communicate within the cluster or with other internal services.    What Are Kubernetes Cost Optimization Tools?   If you're looking for the best way to improve your Kubernetes spend without spending hours of your time combing through data, you need a Kubernetes optimization tool. Kubernetes optimization tools provide a real-time view into your cloud usage. Expect granular levels of detail about cost and resource allocation, as well as spending anomaly detection and budget forecasting.  A Kubernetes optimization tool can improve anything from organizational visibility into the cloud, task automation for scaling and cost management, deployment scalability, to regular updates and support.  Considering adding a Kubernetes cost improvement tool to your digital suite? Umbrella provides visbility to help you optimize your cloud spend so you can put your dollars to work elsewhere.   Notable Kubernetes Cost Optimization Tools 1. Umbrella  Umbrella is an AI-based cost management platform that detects waste, tracks savings, and brings transparency to your current and future cloud costs. As an all-in-one FinOps solution, Umbrella offers detailed visibility into your Kubernetes spend, down to the node and pod level. It seamlessly combines K8s costs with non-containerized resources and business metrics, giving you a clear, accurate view of what it truly costs to run a specific microservice, feature, or application. See how Umbrella delivers 100% visibility into your Kubernetes environment.   [caption id="attachment_17261" align="aligncenter" width="540"] Source: Umbrella[/caption] 2. CloudZero CloudZero is a Kubernetes cost optimization tool to provide detailed insights into your cloud spend. It offers visibility into Kubernetes environments by breaking down costs at various levels, such as clusters, namespaces, labels, and pods.  Users can filter and zoom in on costs for tracking and management at an hourly level. CloudZero aims to unify cloud spends by consolidating Kubernetes costs with other cloud expenses and connecting Kubernetes costs to business outcomes.   [caption id="attachment_17661" align="aligncenter" width="408"] Source: CloudZero[/caption]   3. Cloudability Cloudability is a Kubernetes cost optimization tool to bring visibility and accountability to containerized cloud environments. It automatically maps the costs of cloud resources backing Kubernetes clusters, enabling cost allocation and tracking across various Kubernetes constructs like namespaces and labels.  The platform uses algorithms to allocate costs based on resource utilization (CPU, memory, network, disk) and pod-level settings, to help users ensure fair cost distribution. It provides cost insights across cloud providers, including AWS, Azure, GCP, and OCI, giving users visibility into key infrastructure layers. [caption id="attachment_17662" align="aligncenter" width="540"] Source: Apptio[/caption]   4. Densify Densify is an AI-driven Kubernetes optimization tool that helps ensure optimal resource allocation for containers, pods, and nodes. It provides analytics and automated recommendations related to the performance and reliability of Kubernetes environments.  The tool automatically analyzes containers to determine optimal CPU and memory settings for applications. It can set container resource requests and limits to prevent over-provisioning, leading to fewer nodes and lower cloud bills. It also uses workload simulations to recommend instance types and scaling parameters. [caption id="attachment_17663" align="aligncenter" width="540"] Source: Densify[/caption]   5. Kubecost Kubecost is a Kubernetes cost management tool that provides real-time visibility into cloud spend, helping teams monitor and reduce costs across Kubernetes environments. By offering cost breakdowns and dynamic optimization insights, it enables users to continuously improve resource efficiency. For example, Kubecost breaks down costs by Kubernetes concepts such as deployments, services, namespaces, and labels. It also integrates Kubernetes costs with external cloud services and infrastructure spend to get a broader picture of cloud expenses.  [caption id="attachment_17665" align="aligncenter" width="540"] Source: Kubecost[/caption]   Gaining Complete Kubernetes Cost Visibility   Gaining visibility into your container cost and usage data is the first step to controlling and optimizing Kubernetes costs. Visibility is critical at each level of your Kubernetes deployment: Clusters Nodes Pods (Namespaces,  Labels, and Deployments) Containers You will also want visibility within each business transaction. Having deep visibility will help you: Avoid cloud “bill shock” (a common compelling incident where stakeholders find out after-the-fact that they have overspent their cloud budget) Detect anomalies Identify ways to further optimize your Kubernetes costs For example, when using Kubernetes for development purposes, visibility helps you identify Dev clusters running during off-business hours so you can pause them. In a production environment, visibility helps you identify cost spikes originating from a deployment of a new release, see the overall costs of an application, and identify cost per customer or line of business. Detecting Kubernetes Cost Anomalies   “Bill shock” is too common an occurrence for businesses that have invested in Kubernetes. Anomaly detection intelligence will continuously monitor your usage and cost data and automatically and immediately alert relevant stakeholders on your team so they can take corrective action. Anomalies can occur due to a wide variety of factors and in many situations. Common anomaly causes include: A new deployment consuming more resources than a previous one A new pod being added to your cluster Suboptimal scaling rules causing inefficient scale-up Misconfigured (or not configured) pod resource request specifications (for example, specifying GiB instead of MiB) Affinity rules causing unneeded nodes to be added Save your team the pain of end-of-month invoice shock. Any organization running Kubernetes clusters should have mechanisms for K8s anomaly detection and anomaly alerting in place — full stop. Optimizing Pod Resource Requests   Have organizational policies in place for setting pod CPU and memory requests and limits in your YAML definition files. Once your containers are running, you gain visibility into the utilization and costs of each portion of your cluster: namespaces, labels, nodes, and pods. This is the time to tune your resource request and limit values based on actual utilization metrics. Kubernetes allows you to fine-tune resource requests with granularity up to the MiB (RAM) and a fraction of a CPU, so there is no reason to overprovision and end up with low utilization of the allocated resources. Node Configuration    Node cost is driven by various factors, many of which can be addressed at the configuration level. These include the CPU and memory resources powering each node, OS choice, processor type and vendor, disk space and type, network cards, and more.  When configuring your nodes: Use open-source OSes to avoid costly licenses like those required for Windows, RHEL, and SUSE Favor cost-effective processors to benefit from the best price-performance processor option: On AWS, use Graviton-powered instances (Arm64 processor architecture) In GCP, favor Tau instances powered by the latest AMD EPYC processors Pick nodes that best fit your pods' needs. This includes picking nodes with the right amount of vCPU and memory resources, and a ratio of the two that best fits your pod’s requirements. For example, if your containers require resources with a vCPU to memory ratio of 8, you should favor nodes with such a ratio, like: AWS R instances Azure Edv5 VMs GCP n2d-highmem-2 machine types In such a case, you will have specific nodes options per pod with the vCPU and memory ratio needed. Processor Selection   For many years, all three leading cloud vendors offered only Intel-powered compute resources. But, recently, all three cloud providers have enabled various levels of processor choice, each with meaningful cost impacts. We have benefited from the entry of AMD-powered (AWS, Azure, and GCP) and Arm architecture Graviton-powered instances (AWS). These new processors introduce ways to gain better performance while reducing costs. In the AWS case, AMD-powered instances cost 10% less than Intel-powered instances, and Graviton instances cost 20% less than Intel-powered instances. To run on Graviton instances, you should build multi-architecture containers that comply with running on Intel, AMD, and Graviton instance types. You will be able to take advantage of reduced instance prices while also empowering your application with better performance.  Purchasing Options   Take advantage of cloud provider purchasing options. All three leading cloud providers (AWS, GCP, Azure) offer multiple purchasing strategies, such as: On-Demand: Basic, list pricing Commitment-Based: Savings Plans (SPs), Reserved Instances (RIs), and Commitment Use Discounts (CUDs), which deliver discounts for pre-purchasing capacity Spot: Spare cloud service provider (CSP) capacity (when it is available) that offers up to a 90% discount over On-Demand pricing Define your purchasing strategy choice per node, and prioritize using Spot instances when possible to leverage the steep discount this purchasing option provides. If for any reason Spot isn't a fit for your workload — for example, in the case that your container runs a database — purchase the steady availability of a node that comes with commitment-based pricing. In any case, you should strive to minimize the use of On-Demand resources that aren't covered by commitments.  Autoscaling Rules   Set up scaling rules using a combination of horizontal pod autoscaling (HPA), vertical pod autoscaling (VPA), the cluster autoscaler (CA), and cloud provider tools such as the Cluster Autoscaler on AWS or Karpenter to meet changes in demand for applications. Scaling rules can be set per metric, and you should regularly fine-tune these rules to ensure they fit your application's real-life scaling needs and patterns. Kubernetes Scheduler (Kube-Scheduler) Configuration   Use scheduler rules wisely to achieve high utilization of node resources and avoid node overprovisioning. As described earlier, these rules impact how pods are deployed.  In cases such as where affinity rules are set, the number of nodes may scale up quickly (e.g., setting a rule for having one pod per node).  Overprovisioning can also occur when you forget to specify the requested resources (CPU or memory) and instead, only specify the limits. In such a case, the scheduler will seek nodes with resource availability to fit the pod’s limits. Once the pod is deployed, it will gain access to resources up to the limit, causing node resources to be fully-allocated quickly, and causing additional, unneeded nodes to be spun up.  Managing Unattached Persistent Storage   Persistent storage volumes have an independent lifecycle from your pods, and will remain running even if the pods and containers they are attached to cease to exist. Set a mechanism to identify unattached EBS volumes and delete them after a specific period has elapsed. Optimizing Network Usage to Minimize Data Transfer Charges   Consider designing your network topology so that it will account for the communication needs of pods across availability zones (AZs) and can avoid  added data transfer fees. Data transfer charges may also happen when pods communicate across AZs with each other, with the control plan, load balancers, and with other services.  Another approach for minimizing data transfer costs is to deploy namespaces per availability zone (one per AZ), to get a set of single AZ namespace deployments. With such an architecture, pod communication remains within each availability zone, preventing data transfer costs, while allowing you to maintain application resiliency with a cross-AZ, high-availability setup. Minimizing Cluster Counts   When running Kubernetes clusters on public cloud infrastructure such as AWS, Azure, or GCP, you should be aware that you are charged per cluster. In AWS, you are charged $73 per month per cluster you run with Amazon Elastic Kubernetes Service (EKS). Consider minimizing the number of discreet clusters in your deployment to eliminate this additional cost. Mastering Kubernetes Cost Optimization   Now that you have a better understanding of Kubernetes cost optimization strategies, it’s time to implement best practices for maximizing your Kubernetes ROI.  Optimize: Leverage intelligent recommendations to continuously optimize Kubernetes costs and usage After enabling appropriate visibility across all your stakeholders, you and your FinOps team can finally take on the task of optimizing and reducing Kubernetes spending. With comprehensive K8s visibility, you can fine-tune Kubernetes resource allocation — allocating the exact amount of resources required per cluster, namespace/label, node, pod, and container.  Operate: Formalize accountability and allocation for Kubernetes costs  As a FinOps strategy leader, you must gain consensus and instill proper financial control structures for Kubernetes within your organization. FinOps strategies without accountability and alignment are doomed to failure. Financial governance controls further reduce the risk of overspending and improve predictability. This operating phase is where the rubber meets the road as far as what results you will gain from your Kubernetes FinOps efforts. Learn details on these strategies to maximize K8s ROI here Umbrella for Kubernetes Cost Optimization    Umbrella provides granular insights about your Kubernetes deployment that no other cloud optimization platform offers. Easily track your spending and usage across your clusters with detailed reports and dashboards. Umbrella’s powerful algorithms and multi-dimensional filters enable you to deep dive into your performance and identify under-utilization at the node level.  With Umbrella’s continuous monitoring and deep visibility, engineers gain the power to eliminate unpredictable spending. Umbrella automatically learns each service usage pattern and alerts relevant teams to irregular cloud spend and usage anomalies, providing the full context of what is happening for the fastest time to resolution. Umbrella seamlessly combines all of your cloud spend into a single platform so you can optimize your cloud cost and resource utilization across AWS, GCP, and Azure. Transform your FinOps, take control of cloud spend and reduce waste with Umbrella's cloud cost management solution. Getting started is easy! Book a demo to learn more. 
Blog Post 9 min read

Understanding Kubernetes Cost Drivers

Understanding Kubernetes Cost Drivers Optimizing Kubernetes costs isn’t an easy task. Kubernetes is as deep a topic as cloud (and even more complex), containing subtopics like: Scheduler and kernel processes Resource allocation and monitoring of utilization (at each level of K8s infrastructure architecture) Node configuration (vCPU, RAM, and the ratio between those) Differences between architectures (like x86 and Arm64) Scaling configuration (up and down) Associating billable components with business key performance indicators (KPIs) and much more! That’s a lot for a busy DevOps team to understand and manage, and doesn’t even consider that line-of-business stakeholders and finance team members should have some understanding of each cost driver’s function and importance to contribute to a successful FinOps Strategy. Following is a description of the seven major drivers of Kubernetes costs, the importance and function of each, and how each contributes to your cloud bill. These descriptions should be suitable for the consumption of all business stakeholders, and can be used to drive cross-functional understanding of the importance of each cost driver to Kubernetes FinOps. The Underlying Nodes Most likely, the cost of the nodes you select will drive a large portion of your Kubernetes costs. A node is the actual server, instance, or VM your Kubernetes cluster uses to run your pods and their containers. The resources (compute, memory, etc.) that you make available to each node drive the price you pay when it is running. For example, in Amazon Web Services (AWS), a set of three c6i.large instances running across three availability zones (AZs) in the US East (Northern Virginia) region can serve as a cluster of nodes. In this case, you will pay $62.05 per node, per month ($0.085 per hour). Selecting larger instance sizes, such as c6i.xlarge, will double your costs to $124.1 per node per month. Parameters that impact a node's price include the operating system (OS), processor vendor (Intel, AMD, or AWS), processor architecture (x86, Arm64), instance generation, CPU and memory capacity and ratio, and the pricing model (On-Demand, Reserved Instances, Savings Plans, or Spot Instances). You pay for the compute capacity of the node you have purchased whether your pods and their containers fully utilize it or not. Maximizing utilization without negatively impacting workload performance can be quite challenging, and as a result, most organizations find that they are heavily overprovisioned with generally low utilization across their Kubernetes nodes. Request and Limit Specifications for Pod CPU and Memory Resources Your pods are not a billable component, but their configurations and resource specifications drive the number of nodes required to run your applications, and the performance of the workloads within. Assume you are using a c6i.large instance (powered with 2 vCPUs and 4 GiB RAM) as a cluster node, and that 2 GiB of RAM and 0.2 vCPUs are used by the OS, Kubernetes agents, and eviction threshold. In such a case, the remaining 1.8 vCPU and 2 GiB of RAM are available for running your pods. If you request 0.5 GiB of memory per pod, you will be able to run up to four pods on this node. Once a fifth pod is required, a new node will be added to the cluster, adding to your costs. If you request 0.25 GiB of memory per pod, you will be able to run eight pods on each node instance.  Another example of how resource requests impact the number of nodes within a cluster is a case where you specify a container memory limit, but do not specify a memory request. Kubernetes automatically assigns a memory request that matches the limit. Similarly, if you specify a CPU limit, but do not specify a CPU request, Kubernetes will automatically assign a CPU request that matches the limit. As a result, more resources will be assigned to each container than necessarily required, consuming node resources and increasing the number of nodes. In practice, many request and limit values are not properly configured, are set to defaults, or are even totally unspecified, resulting in significant costs for organizations. Persistent Volumes Kubernetes volumes are directories (possibly containing data), which are accessible to the containers within a pod, providing a mechanism to connect ephemeral containers with persistent external data stores. You can configure volumes as ephemeral or persistent. Unlike ephemeral volumes, which are destroyed when a pod ceases to exist, persistent volumes are not affected by the shutdown of pods. Both ephemeral nor persistent are preserved across individual container restarts. Volumes are a billable component (similar to nodes). Each volume attached to a pod has costs that are driven by the size (in GB) and the type of the storage volume attached — solid-state drive (SSD) or hard disk drive (HDD). For example, a 200 GB gp3 AWS EBS SSD volume will cost $16 per month. Affinity and The K8s Scheduler The Kubernetes scheduler is not a billable component, but it is the primary authority for how pods are placed on each node, and as a result, has a great impact on the number of nodes needed to run your pods. Within Kubernetes, you can define node and pod affinity (and pod anti-affinity), which constrains where pods can be placed. You can define affinities to precisely control pod placement, for use cases such as: Dictating the maximum number of pods per node Controlling which pods can be placed on nodes within a specific availability zone or on a particular instance type Defining which types of pods can be placed together and powering countless other scenarios Such rules impact the number of nodes attached to your cluster, and as a result, impact your Kubernetes costs.  Consider a scenario where an affinity is set to limit pods to one per node and you suddenly need to scale to ten pods. Such a rule would force-increase the number of nodes to ten, even if all ten pods could performantly run within a single node.  Data Transfer Costs Your Kubernetes clusters are deployed across availability zones (AZs) and regions to strengthen application resiliency for disaster recovery (DR) purposes, however data transfer costs are incurred anytime pods deployed across availability zones communicate in the following ways: When pods communicate with each other across AZs When pods communicate with the control plane When pods communicate with load balancers, in addition to regular load balancer charges When pods communicate with external services, such as databases When data is replicated across regions to support disaster recovery Network Costs When running on cloud infrastructure, the number of IP addresses that can be attached to an instance or a VM is driven by the size of the instance. For example, an AWS c6i.large instance can be associated with up to three network interfaces, each with up to ten private IPv4 addresses (for a total of 30). A c6i.xlarge instance can be associated with up to four network interfaces, each with up to 15 private IPv4 addresses (for a total of 60).  Now, imagine using a c6i.large instance as your cluster node, while you require over 30 private IPv4 addresses. In such cases, many Kubernetes admins will pick the c6i.xlarge instance to gain the additional IP addresses, but it will cost them double, and the node’s CPU and memory resources will likely go underutilized. Application Architecture Applications are another example of non-billable drivers that have a major impact on your realized Kubernetes costs. Often, engineering and DevOps teams will not thoroughly model and tune the resource usage of their applications. In these cases, developers may specify the amount of resources needed to run each container, but pay less attention to optimizations that can take place at the code and application level to improve performance and reduce resource requirements.  Examples of application-level optimizations include using multithreading versus single-threading or vice versa, upgrading to newer, more efficient versions of Java, selecting the right OS (Windows, which requires licenses, versus Linux), and building containers to take advantage of multiprocessor architectures like x86 and Arm64. Optimizing Kubernetes Costs As the complexity of Kubernetes environments grow, costs can quickly spiral out of control if an effective strategy for optimization is not in place. The key components to running cost-optimized workloads in Kubernetes include: Gaining complete visibility - Visibility is critical at each level of your Kubernetes deployment, including the cluster, node, pod and container levels. Detecting Kubernetes cost anomalies - Intelligent anomaly detection solutions continuously monitor your usage and cost data and immediately alert relevant stakeholders on your team so they can take corrective action. Optimizing pod resource requests - Once your containers are running, you gain visibility into the utilization and cost of each portion of your cluster. This is the time to tune your resource requests and limit values based on actual utilization metrics. Node configuration - Node cost is driven by various factors which can be addressed at the configuration level. These include the CPU and memory resources powering each node, OS choice, processor type and vendor, disk space and type, network cards, and more. Autoscaling rules - Set up scaling rules using a combination of horizontal pod autoscaling (HPA), vertical pod autoscaling (VPA), the cluster autoscaler (CA), and cloud provider tools such as the Cluster Autoscaler on AWS or Karpenter to meet changes in demand for applications. Kubernetes scheduler configuration - Use scheduler rules to achieve high utilization of node resources and avoid node over provisioning. In cases such as where affinity rules are set, the number of nodes may scale up quickly. Umbrella for Kubernetes Cost Management Umbrella’s cloud cost management solution gives organizations visibility into their Kubernetes costs, down to the node and pod level. Easily track your spending and usage across your clusters with detailed reports and dashboards. Umbrella provides granular insights about your Kubernetes deployment that no other cloud cost optimization platform offers.  By combining Kubernetes costs with non-containerized costs and business metrics, businesses get an accurate view of how much it costs to run a microservice, feature, or application. Umbrella’s powerful algorithms and multi-dimensional filters also enable you to deep dive into your performance and identify under-utilization at the node level.  To keep things simple, the solution seamlessly combines all of your cloud spend into a single platform so you can optimize your cloud cost and resource utilization across AWS, GCP, and Azure.
Blog Post 9 min read

What is Cloud Financial Management?

Few organizations remain today without some of their business operating in the cloud. According to a study from 451 Research, part of S&P Global Market Intelligence, 96 percent reported enterprises using or planning to use at least two cloud application providers (Software-as-a-Service), with 45 percent using cloud applications from five or more providers. In 2024, global spending on public cloud services is expected to reach $679 billion, surpassing $1 trillion by 2027. With AWS leading the market share among cloud providers, it is often the first place enterprises look when scaling workloads. Most companies move to the cloud to take advantage of cloud computing solutions' speed, innovation, and flexibility. Cloud operations can also provide cost savings and improved productivity.  However, controlling cloud costs has become increasingly difficult and complex as cloud adoption grows. That is why cloud cost management has become a priority for CIOs to understand the true ROI for cloud operations.  When cloud assets are fragmented across multiple teams, vendors, and containerized environments like AWS, Azure, and Google Cloud, it is easy to lose sight of the budget. As a result, cloud financial management is a must-have for understanding cloud cost and usage data and making more informed cloud-related decisions.  Plus, it's an opportunity for more savings! According to McKinsey, businesses using CFM can reduce their cloud costs by 20% to 30%. But what exactly is Cloud Financial Management (CFM)? Is it merely about cutting costs? What kind of tools are best for multiple cloud environments? If you have these and other questions, we have the answers. Let’s jump in!   Table of Contents: What’s Cloud Financial Management? Cloud Financial Management Benefits  Cloud Financial Management Challenges Building a Cloud Center of Excellence Umbrella for Cloud Financial Management  Umbrella’s 7 Core Features for Cloud Success   What is Cloud Financial Management(CFM)? Cloud Financial Management is a system that enables companies to identify, measure, monitor, and optimize finances to maximize return on their cloud computing investments.  CFM also enhances staff productivity, workflow efficiency, and other aspects of cloud management. However, it is important to remember that while cost is a major focus, it’s not the only one.  A subset of CFM is FinOps, which is essentially a combination of Finance and DevOps. The idea behind FinOps is to foster collaboration and communication between the engineering and business teams to align the cost and budget to their technical, business, and financial goals.   Cloud Financial Management Benefits  Better Track Cloud Spend  Cloud Financial Management helps companies oversee operations, tasks, and resources that drive usage billing. This insight can be used to identify projects, apps, or teams that are driving your cloud costs, whether on AWS or other cloud providers. Real-world example: One of the biggest questions finance teams ask is “How do we track cost per customer or feature?” Without CFM, the data is often siloed, and engineering teams can’t answer where specific usage spikes are coming from. By mapping spend to business units or customer segments, companies get the clarity they need to measure ROI accurately. Optimize Cloud Costs With visibility into cloud resources and spend, your organization can identify and remove unutilized resources, redundant integrations, and wasteful processes. Real-world example: Many companies discover entire clusters or instances running idle in AWS because no one shut them down after testing. Eliminating these “zombie resources” can cut thousands off the monthly bill. Financial Accountability   Instead of reacting to unexpected cost spend and spikes, cloud financial management allows businesses to plan and predict budgets by making delivery teams financially accountable. By aligning cloud financial data to business metrics, organizations can establish common goals and outcomes.  Operational best practice: Mature FinOps teams often track unit economics, such as cost per transaction or cost per API call. This helps product owners understand whether revenue is actually outpacing cloud spend. Cloud Financial Management Challenges Companies that lack full visibility into cloud spend find it difficult to identify where there are inefficiencies, waste, or overuse of resources. The result is that decisions can’t be made regarding the efficient allocation of resources, and companies are in the dark regarding questions such as whether an increase in spend results from business growth or from sheer inefficiencies. Best practices and actions: Monitor key cost factors like storage growth, compute hours, and data transfer in AWS to spot the drivers behind spend spikes. Set budget alerts at both the account and service level so finance teams are notified before monthly bills climb out of range. Review anomalies weekly with engineering and finance stakeholders to separate valid business demand from inefficiencies. Automate idle resource detection so unused instances, databases, or containers are flagged before they pile up costs. Budgeting Migrating from on-premise to the cloud often means transitioning from a CapEx to an OpEx model. On the surface, switching to a predictable OpEx-based strategy seems attractive. However, the change can create more issues than it solves.  Real-world challenge: Why Cloud Costs Spiral Without Visibility often comes down to teams overprovisioning resources in AWS or leaving test environments running without oversight. Visibility Into Cloud Assets and Usage Monitoring cloud assets makes or breaks FinOps. But employees often find it challenging to track asset performance, resource needs, and storage requirements. Tagging offers a simple solution, allowing easy categorization of cloud assets by department, performance, usage, costs, and more, particularly in AWS, where tagging can be automated at scale. Even when you look at the infrastructure, there are numerous departments in an organization, and there are different purposes for them to use the cloud. So, unless and until there is a proper tagging system for these departments, operations, and costs, it is very difficult to monitor cloud assets.  Real-world example: Finance leaders often ask, “What Causes Unexpected Cloud Bills?” Without proper tagging and reporting, there’s no quick way to identify the source of a spike. Calculating Unit Costs The unit cost calculation becomes a tedious job, considering the complexity of the cloud infrastructure and the sheer number of assets. In addition, calculating and comparing the investment and the revenue being generated becomes difficult when there are so many multiple interdependencies.  Operational best practice: Mature CFM teams benchmark against Top FinOps Metrics for Finance and Engineering Teams, such as cost per transaction, cost per user, or cost per API call. Identifying Inefficiencies Companies that lack full visibility into cloud spend find it difficult to identify where there are inefficiencies, waste, or overuse of resources. The result is that decisions can’t be made regarding the efficient allocation of resources, and companies are in the dark regarding questions such as whether an increase in spend results from business growth or from sheer inefficiencies. Best practice: Regular anomaly detection combined with budget alerts helps separate real business demand from waste. Engineering and finance teams should review anomalies weekly to determine whether spikes are legitimate. Building a Cloud Center of Excellence A Cloud Center of Excellence (CCoE), or FinOps practice, is an important next step for companies using ad hoc methods for cloud cost management. A CCoE provides a roadmap to execute the organization’s cloud strategy and governs cloud adoption across the enterprise. It is meant to establish repeatable standards and processes for all organizational stakeholders to follow in a cloud-first approach. The CCoE has three core pillars: Governance - The team creates policies with cross-functional business units and selects governance tools for financial and risk management. Brokerage - Members of the CCoE help users select cloud providers and architect the cloud solution, often beginning with AWS. Community - It's the responsibility of the CCoE to improve cloud knowledge in the organization and establish best practices through a knowledge base. With those pillars as a foundation, CCoEs are generally responsible for the following activities: Optimizing cloud costs - Managing and optimizing cloud spend is a key task of the CCoE. They are also accountable for tying the strategic goals of the company with the cost of delivery value in the cloud. Managing cloud transformation - In the initial phase of transformation, the CCoE should assess cloud readiness and be responsible for identifying cloud providers. During migration, the team should provide guidance and accurate reports on progress. Enforce cloud policies - Security and regulatory requirements can change frequently in complex and changing cloud ecosystems. It's important that CCoE members enforce security standards and provide operational support across the business. Umbrella for Cloud Financial Management  Umbrella’s Cloud Cost Management solution helps organizations get a handle on their true cloud costs by focusing on FinOps to drive better revenue and profitability. Best actions with Umbrella: Tie cloud spend to business outcomes. Umbrella tracks metrics like cost per feature or per customer so leaders see whether increased spend is driving revenue growth. Leverage anomaly detection. Umbrella automatically flags outliers so teams can investigate before the AWS invoice arrives. Adopt multi-cloud visibility. Umbrella consolidates AWS, Azure, and GCP costs in one dashboard to eliminate blind spots and silos. Build accountability into workflows. Umbrella’s reporting makes it easier to align finance and engineering teams around shared KPIs like unit cost or ROI. From a single platform, Umbrella provides complete, end-to-end visibility into your entire cloud infrastructure across AWS, Azure, Google Cloud, and Kubernetes. By tracking cloud metrics alongside revenue and business metrics, Umbrella helps cloud teams grasp the actual cost of their resources. Best practice in action: Umbrella supports Best Practices for CFM in Multi-Cloud Environments by unifying AWS, Azure, and GCP costs into one central dashboard. This prevents teams from wasting time reconciling multiple bills and improves decision-making speed. How Umbrella supports best practices in FinOps operations: Forecasting and budgeting with 98.5% accuracy. Using historical data and growth trends, Umbrella predicts future AWS and multi-cloud spend so teams can set realistic budgets and avoid bill shock. Multi-cloud cost visibility. Customizable dashboards and cost tagging unify AWS, Azure, and GCP costs, making it easier to see who owns what and tie spend back to customers or features. Real-time cost monitoring and alerts. Instead of discovering problems after the invoice arrives, Umbrella provides anomaly detection and targeted notifications so engineers can take immediate action. Automated savings recommendations. Umbrella surfaces more than 80 cloud cost optimization actions, helping companies reduce annual spend by up to 40% without manual auditing. Unit economics and accountability. Umbrella enables teams to track metrics like cost per API call, cost per transaction, or cost per customer, ensuring engineering and finance speak the same language. AI-powered CostGPT. Teams can ask questions in plain language — e.g., “What caused my AWS bill to spike this week?” — and get instant, actionable answers. Savings tracking. Automated reports show how much has actually been saved from implemented recommendations, closing the loop on optimization efforts.  
EC2 cloud optimization
Blog Post 5 min read

AWS EC2 Cost Optimization Best Practices

Amazon EC2 Explained Amazon Elastic Compute Cloud (EC2) is one of the core services of AWS, designed to help users reduce the cost of acquiring and reserving hardware.  EC2 represents the compute infrastructure of Amazon's cloud service offerings, providing organizations a customizable selection of processors, storage, networking, operating systems, and purchasing models.  It is known for assisting organizations to simplify and speed up their deployments for less cost and enabling them to increase or decrease capacity as requirements change quickly.  However, the costs associated with instances and features in EC2 can soon get out of control if not properly managed and optimized. The first cost consideration is usually selecting an instance type.  EC2 Instance Types Even for experienced cloud engineers and FinOps practitioners, EC2 pricing is extraordinarily complex. Many options impact cost, with instances optimized for workload categories like compute, memory, accelerated computing, and storage.  The default option for purchasing is on-demand instances, which bills based on seconds or hours of usage but require no long-term commitments. EC2 instances are grouped together into families. Each EC2 family is designed to meet a target application profile in one of these buckets: General Purpose Instances General-purpose instances provide a balance of computing power, memory, and networking resources and can be used for everyday workloads like web servers and code repositories.  Compute Optimized Compute-optimized instances are best suited for applications that benefit from high-performance processors. Memory-Optimized  Memory-Optimized instances deliver faster performance for workloads that process large data sets in memory.  Accelerated Computing Accelerated Computing instances leverage hardware acceleration and co-processors to perform complex calculations and graphics processing tasks. Storage Optimized Storage optimized instances are designed for workloads requiring high performance, sequential read and write access to large-scale datasets.  When considering the cost, each instance type above can vary by region or operating system selections. The Hidden Cost of EC2 While AWS documents the cost of each instance type by region in their EC2 Pricing, getting to the actual price of using these services requires much more consideration. The first thing to consider is the status of the EC2 instance. Customers pay for computing time, disk space, and data traffic if in a running state.  Customers may still incur charges for unattached IPs and any active (not deleted) storage when in a stopped state. Unfortunately, many users mistakenly believe that stopping their servers will stop further costs from accruing, and this is not the case.  Another potential hidden cost of using EC2 is data traffic. AWS calculates data traffic costs by tier, based on a pre-defined volume with traffic falling below the volume incurring less cost and anything above paying more.  Because AWS charges for data traffic at the account level, many manual monitoring processes fall short in projecting actual costs. Considering how many AWS services comprise the AWS account of a large-scale program or company, it's easy to imagine how difficult it would be to monitor and control cloud spending in AWS. How to reduce AWS EC2 Spending Here are some of the best practices to reduce EC2 spending in AWS: EC2 Right-Sizing Many developers fail to consider right-sizing when spinning up AWS resources, but it's a critical component of optimizing AWS costs. AWS also defaults to many flexible but pricey options like On-Demand instances. Choosing a suitable instance type and service tier can significantly reduce cost without impacting performance.  EC2 Generation Upgrade AWS offers different instances tuned specifically for various workloads, as discussed above. When selecting an instance type, look for the latest generation options because they often provide the best performance and pricing.  Unnecessary Data Transfers AWS charges for inter-Availability Zone data transfer between EC2 instances even if they are located in the same region. Whenever possible, co-locate all instances within a single Availability Zone to avoid unnecessary data transfer charges.  Stopped Instances Stopping EC2 instances does not eliminate the potential for charges. Resources attached to stopped instances like EBS volumes, S3 storage, and public IPs continue to accrue costs. Consider terminating attached resources or the instance if it is no longer in use. Optimize EC2 Cost with Umbrella Umbrella’s Cloud Cost Management solution makes optimization easy. It can easily connect to AWS, Azure and GCP to monitor and manage your spending. Even with multi-cloud environments, Umbrella seamlessly combines all cloud spending into a single platform allowing for a holistic approach to optimization measures.  What makes Umbrella for Cloud unique is how it learns each service usage pattern, considering essential factors like seasonality to establish a baseline of expected behavior. That allows it to identify irregular cloud spend and usage anomalies in real-time, providing contextualized alerts to relevant teams so they can resolve issues immediately.  Proprietary ML-based algorithms offer deep root cause analysis and clear guidance on the steps for remediation. Customers are already using Umbrella to align FinOps, DevOps, and finance teams' efforts to optimize cloud spending.  Accurate forecasting is one of the central pillars of FinOps and cloud cost optimization. Umbrella leverages AI-powered forecasting with deep learning to automatically optimize cloud cost forecasts and enable businesses to react to changing conditions before impacting cost. Rather than manually watching cloud resources and billing, your analysis teams will view cloud metrics with a business context in the same place as revenue and business metrics. That allows FinOps practitioners to optimize cloud investments to drive strategic business initiatives continually.
Blog Post 5 min read

Amazon S3 Cost Optimization Best Practices

Amazon S3 Explained Amazon Simple Storage Service (S3) is an essential cornerstone of AWS and among its most popular service offerings. S3 allows tenants to store, secure, and retrieve data from S3 buckets on demand. It is widely used for its high availability, scalability, and performance. It supports six storage classes and several use cases, including website hosting, backups, application data storage, and data lake storage. There are two primary components of Amazon S3: Buckets and Objects. Users create and configure S3 buckets according to their needs, and the buckets store the objects they upload in the cloud. The six storage classes of Amazon S3 and the price differentiation While S3 prides itself on its simplicity of use, choosing the correct storage class isn't always as easy and can have a tremendous impact on costs. The free tier limits storage to 5GB in the standard class, but it's only available for new customers. AWS has six S3 storage classes above the free tier: Standard, Intelligent Tiering, Infrequent Access, One-Zone Infrequent Access, Glacier, and Glacier Deep Archive. Each one offers different features, access availability, and performance. Here is an overview of each class: Standard S3 standard storage is best suited for frequently accessed data. It's elastic in that you only pay for what you use, and customers typically use it for data-intensive content that they want access to at all times, from anywhere. Infrequent Access Storage S3 Infrequent Access Storage is best suited for use cases where data access requirements are ad hoc or infrequent and available quickly when needed. An example could be backup and recovery images for a web or application server. The cost model for infrequent storage is cheaper than standard storage but scales more each time you access the data. One-Zone Infrequent Access The "regular" Infrequent Access Storage ensures the highest availability by distributing data between at least three availability zones within a region. For use cases where data access is infrequent, lower availability is acceptable, but that still need quick retrieval times, One-Zone Infrequent Access Storage is the best option. S3 will store the data in one availability zone, but the cost will be 20% less than Infrequent Access Storage. Intelligent Tiering Amazon offers a premium S3 service called Intelligent Tiering. It analyzes usage patterns and automatically transfers data between Standard and Infrequent tiers based on access requirements. The selling point of this tier is it saves operators the labor of monitoring and transferring the data themselves. That said, it comes with a charge of $.0025 for every thousand items monitored. Glacier Most customers use S3 Glacier for record retention and compliance purposes. Retrieval requests take hours to complete, making Glacier unsuitable for any use case requiring fast access. That said, the lower cost makes it ideal when access speed isn't a concern. Glacier Deep Archive S3 Glacier Deep Archive offers additional cost savings but carries further data access limitations. Deep archive is best suited for data that customers only need to access 1-2 times per year and when they can tolerate retrieval times upwards of 12 hours. How to Reduce AWS S3 Spending AWS S3 owes its popularity to its simplicity and versatility. It helps companies and customers across the globe store personal files, host websites and blogs, and empower data lakes for analytics. The only downside is the price tag, which can become pretty hefty in a hurry depending on how much data is stored and how frequently it's accessed. Here are some helpful tips for reducing AWS S3 Spend: Use Compression AWS bases so much S3 cost on the amount of data stored, so compressing data before uploading into S3 can reap significant savings. When users need to access the file, they can download it compressed and decompress it on their local machines. Continuously monitor S3 objects and access patterns to catch anomalies and right-size storage class selections Each storage class features different costs, strengths, and weaknesses. Active monitoring to ensure S3 buckets and objects are right-sized into the correct storage class can drastically reduce costs. Remember that you can leverage multiple tiers within the same bucket, so make sure all files have the right tier selected. Remove or downgrade unused or seldom-used S3 buckets One common mistake in managing S3 storage is users will delete the contents of an S3 bucket, leaving it empty and unused. It's best to remove these buckets entirely to reduce costs and eliminate unnecessary system vulnerabilities. Use a dedicated cloud cost optimization service rather than relying only on cloud provider tools The most important recommendation we can make to keep cloud costs under control is to use a dedicated, third-party cost optimization tool instead of relying strictly on the cloud provider. The native cost management tools cloud providers offer do not go far enough in helping customers understand and optimize their cloud cost decisions. - Disable versioning if not required. - Leverage endpoint technologies to reduce data transfer costs. Cloud Cost Management with Umbrella Organizations seeking to understand and control their cloud costs need a dedicated tool. Umbrella's Cloud Cost solutions easily connect to cloud providers like AWS to monitor and manage cloud spending in real-time and alert teams to critical cost-savings recommendations. Here are some of the key features: Umbrella makes lifecycle recommendations in real-time, based on actual usage patterns and data needs. Rather than teams manually monitoring S3 buckets and trying to figure out if and when to switch tiers, Umbrella provides a detailed, staged plan for each object considering patterns of seasonality. Versioning can significantly impact S3 costs because each new version is another file to maintain. Umbrella continuously monitors object versions and provides tailored, actionable recommendations on which versions to keep. Many customers don't realize how uploading files into S3 can significantly impact costs. In particular, large uploads that get interrupted reserve space until completed, resulting in higher charges. Umbrella provides comprehensive recommendations for uploading files and which files to delete in which bucket.