Pepperdata Capacity Optimizer automatically solves the problem of workload resource overprovisioning by giving the system scheduler real-time visibility into actual CPU, GPU, and memory utilization levels. This allows the scheduler to launch more containers per node—whether in Kubernetes or YARN—without requiring additional nodes.
Capacity Optimizer enables YARN or Kubernetes scheduler to see the actual physical resource utilization instead of the total resource allocations requested by workloads, so that the scheduler can launch more pods without launching new nodes. As a result:
Once Capacity Optimizer is enabled:
A multi-tenant cluster running many concurrent apps is an ideal candidate for Pepperdata Capacity Optimizer.
For Kubernetes: Apache Spark apps, Apache Flink apps, Apache Airflow apps, Jobs, JobController, CronJobs, custom labeled apps
For YARN: Apache Spark apps, MapReduce apps, Apache Tez apps
Yes, Capacity Optimizer is complementary to all other solutions in the marketplace. Continue to do what you’re doing to optimize your cloud operations, using your existing tooling and processes. Then implement Capacity Optimizer on top of it to achieve an additional cloud cost reduction.
If you use a handful of instances in the cloud, an engineer might help you optimize that workload. However, with larger-scale operations, it is impossible to do what Capacity Optimizer does. Capacity Optimizer works directly with the native Kubernetes or YARN scheduler to make hundreds and thousands of decisions in real time, around the clock. Capacity Optimizer operates in the background, autonomously and continuously, optimizing your cloud or on-premises environment in a way that far exceeds what even the most diligent engineer would be able to accomplish.
Yes, cloud providers do provide services that achieve a certain level of resource and cost optimization, such as autoscaling. However, these vendor-provided solutions only go so far. Pepperdata’s IP allows Capacity Optimizer to take advantage of the volumes of data that are involved in the scheduler’s real-time decision making. Capacity Optimizer takes resource and cost optimization to the next level by providing the scheduler with this granular data to ensure pods/executors are continuously operating at maximum utilization. Pepperdata is also an AWS partner, and AWS regularly invites Pepperdata into opportunities where Pepperdata can solve customer problems that the managed service alone cannot.
As new releases of technologies are introduced, Capacity Optimizer goes through a certification process that takes approximately 30 days, depending on how much change there has been from the previous version. Pepperdata’s Customer Success team is happy to work with you on delivering you maximum value from your engagement with Pepperdata, including ensuring the smoothest possible rollout of new technologies.
Supported Environments |
|
Supported Schedulers |
|
Supporter Autoscalers |
|
No, Capacity Optimizer does not replace any of the cluster autoscaler’s standard components. Capacity Optimizer simply provides those components with better information with which to operate.
Capacity Optimizer makes your current cloud autoscaler work better. Cloud autoscaling is implemented based on resource allocation. Cloud autoscalers add more instances when the scheduler cannot add more containers to the cluster because all the existing resources are already allocated. Capacity Optimizer ensures that the new instances are added only when the existing instances are fully utilized.
Although Karpenter is a better autoscaler than the default cluster autoscaler, it still makes decisions based on resource allocations and not actual, physical, hardware utilization.
Capacity Optimizer makes Karpenter work better. Cloud autoscaling is implemented based on resource allocation. Cloud autoscalers add more instances when the scheduler cannot add more containers to the cluster because all the existing resources are already allocated. Capacity Optimizer ensures that the new instances are added only when the existing instances are fully utilized.
Horizontal Pod Autoscaling (HPA) is best suited for long-running microservices while Capacity Optimizer is suited for batch workloads that start and stop.
Capacity Optimizer prohibits the Cluster Autoscaler from launching new nodes until Capacity Optimizer has fully optimized all existing nodes. In this way, new nodes are launched only when existing nodes are fully utilized. In fact, customers have noticed up to a 71% decrease in the use of autoscaling once Capacity Optimizer is enabled. Capacity Optimizer makes no changes to the Cluster Autoscaler’s downscaling behavior.
Vertical Pod Autoscaling (VPA) is a component within Kubernetes designed to resize the CPU and memory requests of pods based on their observed, historical usage patterns.
It might seem that Capacity Optimizer acts like VPA, since both Capacity Optimizer and VPA change the resource requests of pods in response to changing workload resource requirements. However, there are key differences:
Kubernetes In-Place Pod Resizing is a new feature (recently graduated to beta as of Kubernetes 1.33) for changing the requests and limits for CPU and memory in a pod’s specification.
It might seem that Capacity Optimizer is similar to Kubernetes In-Place Pod Resizing, since both Capacity Optimizer and Kubernetes In-Place Pod Resizing change the resource requests of pods in response to changing workload resource requirements.
However, there’s a key difference: Kubernetes In-Place Pod Resizing is simply one mechanism to allow dynamic pod resource requests updates without needing pods to be restarted. Any product that is designed to update the pod requests could theoretically use Kubernetes In-Place Pod Resizing. VPA could use Kubernetes In-Place Pod Resizing. Even Capacity Optimizer could use Kubernetes In-Place Pod Resizing.
But that’s all there is to Kubernetes In-Place Pod Resizing. Kubernetes In-Place Pod Resizing does NOT monitor the pods and figure out what to change the requests to. Kubernetes In-Place Pod Resizing has no intelligence; it just updates the pods. You could imagine Kubernetes In-Place Pod Resizing as a knob that’s just sitting there and waiting for some intelligence to adjust it.
Capacity Optimizer, by contrast, is the intelligence that decides how the pod resource requests should be adjusted in response to changing workload resource requirements. Capacity Optimizer uses actual utilization to determine how many resources are available in real time and informs the scheduler so that more pending pods can be launched on the same node.
Pepperdata’s pricing is based on your usage. Book a meeting with us to get up and running with a free trial.
Capacity Optimizer typically installs within an hour on most enterprise environments. As soon as optimization is enabled in your cluster, you will start to see waste and cost savings on your Pepperdata-provided dashboard.
Pepperdata Capacity Optimizer operates automatically and autonomously and should require very little ongoing management as it works in the background to improve utilization and reduce costs in your cluster. It’s designed to reduce operational burden, not add to it.
Yes! We welcome the opportunity to bring the same cost savings we see with leading enterprises into your environment. Book a meeting with us to get up and running with a free trial.
Capacity Optimizer typically pays for itself in hard cloud cost savings within a few months of installing. One of the largest companies in the world recently installed Pepperdata on a single cluster and shaved 28% off their cloud cost. In the case of this customer, that cost savings translates to over $400,000 in reduced cloud costs per year—for a single cluster.
In addition, with Capacity Optimizer, you will also enjoy the soft cost savings of reduced personnel costs. You won’t need dedicated engineers constantly monitoring your systems. In addition, your finance personnel will no longer need to corral your engineering teams to implement configuration recommendations with the goal of saving costs. Instead, your development teams can be freed from the tedium of tweaking and tuning code to focus on high-value, innovative activities to grow your business.
You should see your clusters operating at a higher level of utilization of physical hardware resources once Capacity Optimizer is enabled. This can be evaluated through Pepperdata’s dashboard and possibly through existing observability tools you may have. You should also expect to see savings on your next cloud bill.
Reserved Instances/Savings Plans are financial optimizations that can help reduce your cloud bill, but do not address the fundamental problem of overprovisioning waste that exists inside your workloads, like Capacity Optimizer does. Capacity Optimizer is complementary to Reserved Instances/Savings Plans and will save money in addition to the reductions provided by Reserved Instances/Savings Plans.
For critical apps which cannot handle any preemptions, or which have strict SLAs, it is a best practice to set conservative optimization settings or to choose to exclude the app or namespace from optimization.
Yes, Capacity Optimizer respects these limits, even down to the individual Apache Spark application.
Consider a workload that requests 100 cores of CPU and 1 TB of memory, but this workload only requires these resources on Thursdays. With Capacity Optimizer, other pods/executors from other workloads would be able to use that workload’s resources the other six days of the week, without anyone having to make any changes to the original workload.
In addition, Capacity Optimizer also makes no changes to that workload, because it does not know that the workload only needs the resources on Thursdays. On idle days, Capacity Optimizer simply informs (and reinforms) the scheduler and autoscaler every few seconds that this workload is not using the resources it requested, so no resources are wasted. Capacity Optimizer does this same thing for every pod/executor on every node.
Looking for a safe, proven method to reduce resource waste and cost by up to 75% and maximize value for your cloud environment? Sign up now for a free Capacity Optimizer demo to see how you can start saving immediately.