We don't believe in summaries written in the mess of the last moments of a year. To analyze everything properly—you have to invest time and concentrate on documents and memories...
Meet PredictKube, an AI-based autoscaler, in the Dysnix family
As we've mentioned in the previous article, for the last few months our developers have been working on products for Kubernetes-based projects. Today, we want to tell you more about one of them, "the elder son" of our team, the PredictKube.
What is a PredictKube?
A PredictKube is a tool for auto-scaling and optimizing Kubernetes infrastructures based on the AI model predictions created based on both historical data of the project’s load and any additional metrics—business, public, custom.
We created this tool to make dynamic proactive scaling possible, as we know that practically adding resources during the traffic spike might not help the situation. We see that a lot of our customers need to know what will happen in the future and scale accordingly. To make this possible, we created an AI model with a group of machine learning scientists directed by Yurij Khoma, Head of Data Science at Dysnix, and trained the model to react to traffic fluctuations.
Later on, we packed this model into a product, so you can use it for your own project. Also, we offer you to test PredictKube in an open-source edition and try the basic functionality applying it as a KEDA scaler.
To try it for free, you should:
- Visit the official PredictKube website;
- Follow the installation instructions;
- Use our free API key to turn on AI model prediction for your project.
Reasons why we created this product
The market for autoscaling solutions for Kubernetes projects is still developing. With the better performing automatic scaling tools for Kubernetes projects, projects will spend less time on setting up and tuning the infrastructure. Now, everybody uses existing solutions restrictively with a lot of manual setups.
Business is biased against autoscaling, as it’s something new and may lead to overspending on infrastructure and a loss of traffic. Currently, any project may solve this problem through overprovisioning, spending in some cases 10 times more (paying for the level of Actual nodes as seen in the image below) than they may need.
There’s no solution for automatic migration to become more ecological, cost-optimized, and with modern instances of zero downtime. The migration of the projects from old, but working, hardware is risky for projects, and they stay outdated but slow and inefficient.
There’s no way to react proactively to atypical traffic. Load fluctuations because of global events, unexpected outcomes of marketing campaigns, errors, and failures of the system—all these factors affect the load of clusters, and it takes time to get help from engineers.
How PredictKube works (a perfect scenario)
PredictKube is installed into the projects' Kubernetes environment with access to historical data on traffic load. Also, it absorbs any number of additional data sources with metrics data of any kind.
Using this data, it learns the patterns of traffic and finds what events affect it, then builds its own predictions, finds errors in the existing structure, and offers recommendations with action points through a chatbot interface.
Any responsible DevOps picks up a decision based on offered variants, and PredictKube implements them and continues to learn. The fewer questions coming from a chatbot, the better and more automated the supervision of a project is from PredictKube’s side.
Also, it simplifies the migration to better hardware by selecting the instances with the best-fitting characteristics and optimal price and automatically migrates the current project to new instances with zero downtime.
PredictKube results in:
- A decrease in costs on infrastructure and complementing services,
- An error-free and surprise-ready state of infrastructure with stable zero downtime and zero traffic loss.
Problems you can solve with PredictKube
SLA breakdowns because of instability of cloud infrastructure. Reputation damage, clients loss, constant cloud bill increase. There’s always a chance to waste money for resources you don’t need or miss valuable traffic because some resources weren’t allocated. Also, memory leaks might appear, the disk space may be overused, and what’s most horrible—your beloved client may not get the service level that was expected.
Each project wants to avoid "a painful growth". To make informed decisions about how your project will grow and what volumes of resources you will need in the future—you need a tool for planning your infrastructure. The selection of types of instances, the number, and quality of new disks, allocating resources for certain traffic patterns should be planned in order to protect your project from traffic loss when it will be too late to scale and not overpay because of overprovisioning.
Costs for infrastructure are hard to predict, and CTO just has to pay for each month’s cloud bill. Too many hazards should be taken into account to make the right assumption if we’re talking about a person who’s in charge of it. Moreover, the human factor in infrastructure management is risky, and the power of tools will decide how successful the prediction of the costs will be.
Working on old non-optimized instances is not eco-friendly, but companies can’t allow any downtime for the migration period and other risks in order to get optimized by moving to better instances. So, that’s why a lot of companies do not stay eco-friendly and can’t meet sustainability standards.
Benefits in comparison to traditional methods of scaling
- PredictKube can work in “Forecast only” mode for any time period, which allows you to prepare for changes; due to the complexity of modern technologies, you need to prepare for their deployment in advance, the forecast provides such an opportunity.
- This tool can provide you the dynamic step of increasing instances (proactive action that the situation really requires in answer to a traffic pattern, not following the rules and restrictions of the provider).
- Tracking any (including custom) metrics and their combinations and generating scaling recommendations based on their changes.
- PredictKube supports vertical scaling, multi-node groups, optimization of instance types—it can generate complex recommendations and optimal solutions for Kubernetes projects.
- It has the ability to simulate changes (simulating parameter changes and getting a response based on AI model logic).
- PredictKube softens the difficulties of the growth for the entire project (planning for the rollout of new features, forecasting the real cost of a launch).
The phases of PredictKube implementation
A project with PredictKube will receive value from the installation at every stage of implementation. The following two stages may be installed anytime later after the first one.
|Phase 1: Recommendation Mode||Phase 2 (in development): Human in Cycle||Phase 3 (in development): Full Automation|
Analysis of the state of infrastructure
Synthesis of complex recommendations on instances and infrastructure improvements
Real-time monitoring and alerting with the prediction of load
Everything from Phase 1
Сhatbot recommendations of auto-scaling actions and performing it after specialist’s approval
Deeper education of the neural network based on making decisions for standalone mode
The PredictKube is fully in charge: it forecasts and solves any case with traffic with optimal resource allocation and without human interference.
Still, you may have lots and lots of questions to ask, and we’re ready to satisfy your interest. Contact us with any of your ideas or challenges, and we’ll show how PredictKube (or maybe some of our other tools) can help you.