A highly configurable microservices benchmark application generator. Hexagon can configure each microservice in the benchmark application to expose APIs and invoke APIs exposed by other services.
Hexagon is a microservices benchmark application generation tool with configurablity in mind. It aims to solve the limited benchmarking possibilites for researchers studying microservices. Using Hexagon, researchers can easily construct a benchmark microservices application with highly configured compositions.
see terminologies.
Hexagon allows configuration of following features for generated application
Hexagon can configure APIs that each service expose and invoke using yaml. The types of APIs include:
Synchronous protocols such as:
- HTTP REST
- gRPC
Asynchrounous protocols such as:
- Kafka
Database connections such as:
- MongoDB
- Redis
Hexagon supports the configuration of internal workload for each service. Using this feature, Hexagon can simulate resources intensive tasks performed by each service. Currently CPU intesive workload is supported.
Using the cli Hexagon can generate kubernetes manifests files from the configuration of each service. The generated manifests include resources such as:
- Deployment
- Service
- ConfigMap
Deployment can also configured with number of replicas for the service, resource limits and requests, and extra environmental variables.
- service unit: service unit is the primary container image that can be used by the stateless services.
- hexctl: hexctl is the cli program that can validate the configuration files and generate kubernetes deployment manifests for the configured application.
see internals.