The Akamas methodology and solution were developed by veteran practitioners who had first-hand experience with the performance tuning, capacity planning, and performance optimization challenges described above. They realized that just trying to automate the process of running tests to verify whether a given configuration was providing better results (with respect to defined goals) was not enough. The need to explore thousands of configurations makes a brute-force approach simply unfeasible.
Akamas’ key ingredient is patented AI/ML techniques that make it possible to smartly explore the space of configurations, in a way that can rapidly converge to an optimal configuration. With Akamas, every optimization study is made by several experiments where a specific configuration of multiple parameters is tested: in each experiment, a configuration is applied and the results of the system under load are scored in order to identify the next most promising configuration to be tested in the next experiment, until an optimal result is reached.
Akamas AI is complemented by so-called “Optimization Packs.” Each Optimization Pack codes relevant parameters for optimizing a specific technology, as well as their internal relationships and key performance metrics. Akamas ships more than 40 Optimization Packs for key technologies such as Java, MongoDB, Kubernetes, AWS, Spark, Oracle, and more. Custom Optimization Packs can be easily created (no development required) based on the specific domain-knowledge of performance engineers.
The following figure describes the Akamas experimental approach, where full process of applying a configuration, loading the system, and measuring the results to score the experiment with respect to the defined goal is fully automated by Akamas workflows so that an entire optimization study of dozens or hundreds of experiments can be executed without any human intervention. What used to take weeks can be accomplished in hours — with the additional capability of exploring counterintuitive configurations that may provide higher service performance and resilience.
Figure: Akamas high-level architecture
The Akamas approach is completely technology-agnostic, as it does not depend on the specific technologies of the system to be optimized. Indeed, it has been successfully applied to both Java and .NET applications, both traditional/monolithic and modern/microservice applications on Kubernetes-orchestrated Docker containers, and on a variety of components such as application servers, databases, and middleware.
As illustrated by the previous figure, Akamas does not require any agents to be installed, as both performance and business KPIs can be collected from any monitoring tool that is already in place. Akamas provides out-of-the-box integrations with Tricentis NeoLoad, Micro Focus LoadRunner, Dynatrace, Prometheus, as well as influxDB repositories or simple CSV files.
An important Akamas feature is the ability to customize the scoring function with respect to any specific goal. For example, a goal could be maximizing utilization of a specific resource (e.g., memory heap) or minimizing service latency or minimizing cloud cost. In addition to goals, it is also possible to specify constraints that any optimal configuration needs to match.
For example, the optimization goal may be about reducing the resource usage while making sure that throughput is not negatively affected. This can be specified either as an absolute value or with respect to the baseline. In general, any formula on one or more technical and business metrics can be used to define a goal or a constraint so as to reflect any specific SLOs or other technical or business requirements. In order to compare the situation before and after Akamas, a very first experiment is typically run without changing the system. This is called the “baseline configuration,” as it represents the reference before any optimization is applied. The following figure illustrates how Akamas experimental approach works.
Figure: Example of Akamas experiments converging to an optimal configuration
The following figure summarizes the Akamas approach, where performance engineers only need to focus on defining their load testing scenarios and optimization goals and constraints and Akamas takes care of finding the optimal configuration automatically.
Figure: Akamas approach to performance optimization
The main outcome of an optimization study is the optimized configuration of your system. This enables better decision-making — for example, you can compare configurations and possibly also identify a better configuration (even if not optimal) that can be immediately applied (e.g., without having to restart servers). Akamas also makes it possible to apply optimal configurations automatically, to be sure that your application is always optimized. This can be done both in the context of a traditional change management process and in the case of a modern CI/CD pipeline, also thanks to Akamas API and CLI interfaces.
As a final note, it is important to clarify how Akamas approach compares to modeling approaches adopted by other solutions. In general, predefined or inference rules have been successfully applied to support root-cause analysis and other operational use cases. However, the complexity of real-world environments is very hard to be modeled in a way that is effective for application performance purposes, not just to improve the underlying infrastructure performance.