Comment on page
Akamas is based on a microservices architecture where each service is deployed as a container and communicates with other services via REST APIs. Akamas can be deployed on a dedicated machine (Akamas Server) or on a Kubernetes cluster.
The following figure represents the high-level Akamas architecture.
Akamas high-level architecture
Users can interact with Akamas via either the Graphical User Interface (GUI), Command-Line Interface (CLI), or Application Programmatic Interface (API).
Both the GUI and CLI leverage HTTP/S APIs which pass through an API gateway (based on Kong), which also takes care of authenticating users by interacting with Akamas access management and routing requests to the different services.
The Akamas CLI can be invoked on either the Akamas Server itself or on a different machine (e.g. a laptop or another server) where the Akamas CLI has been installed.
Akamas data is securely stored in different databases:
- time series data gathered from telemetry providers are stored in Elasticsearch;
- application logs are also stored in Elasticsearch;
- data related to systems, studies, workflows, and other user-provided data are stored in a Postgres database.
Notice: both Postgres and Elasticsearch and any other service included within Akamas are provided by Akamas as part of the Akamas installation package.
The following Spring-based microservices represent Akamas core services:
- System Service: holds information about metrics, parameters, and systems that are being optimized
- Campaign Service: holds information about optimization studies, including configurations and experiments
- Metrics Service: stores raw performance metrics (in Elasticsearch)
- Analyzer Service: automates the analysis of load tests and provides related functionalities such as smart windowing
- Telemetry Service: takes care of integrating different data sources by supporting multiple Telemetry Providers
- Optimizer Service: combines different optimization engines to generate optimized configurations using ML techniques
- Orchestrator Service: manages the execution of user-defined workflows to drive load tests
- User Service: takes care of user management activities such as user creation or password changes
- License Service: takes care of license management activities, optimization pack, and study export.
Akamas also provides advanced management features like logging, self-monitoring, licensing, user management, and more.