ResilienceBench is a language-agnostic benchmark environment to support the experimental evaluation of microservice resiliency patterns, such as Retry and Circuit Breaker. Consider a microservices-based application, where the connectors represent communication between the different services. Each service is subject to various failure possibilities and workload variations, and for each of these situations, there is an appropriate configuration of resilience patterns. In this context, the tool's purpose is to automate the creation of test scenarios, exhaustively evaluating all possible scenarios under different load levels and failure conditions with minimal configuration.
Before you begin development, ensure you have the following prerequisites installed and configured on your system:
- Java JDK 17: Required for developing Java applications. Ensure JAVA_HOME is set to the JDK's installation directory.
- Maven: Used for project build and dependency management. Verify its installation by running
mvn -v
in your terminal. - Docker: Necessary for building and pushing container images.
- kubectl: The Kubernetes command-line tool, used to interact with your Kubernetes cluster.
- A Kubernetes Cluster: You need an accessible Kubernetes cluster where the operator will be deployed.
- Istio: Ensure Istio is installed and properly configured in your Kubernetes cluster to manage network traffic.
Before starting development, install the k6-Operator and Istio into your Kubernetes cluster by following their respective installation guides:
- k6-Operator Installation Guide: k6 Operator
- Istio Installation Guide: Istio Installation Documentation
Please replace the URLs with the actual links to the installation guides for k6-Operator and Istio.
-
Clone the repository to your local machine and install it:
git clone https://github.com/ppgia-unifor/resilience-bench-operator.git cd resilience-bench-operator/resilience-bench mvn clean install make deploy
We welcome contributions! Please read our Contributing Guide for details on how to submit pull requests to the project.
This project is licensed under the MIT License - see the LICENSE file for details.