The goal is to compare Quarkus, Micronaut and Spring Boot by measuring start-up times and memory footprint.
$ pip install docker
$ pip install pandas
$ pip install pyaml
$ pip install kubernetes
- Enable Kubernetes
- Setup Kubernetes Metrics Server
- Download the latest components.yaml
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
- Open components.yaml and add the –kubelet-insecure-tls argument into the existing args section.
args: - --cert-dir=/tmp - --secure-port=4443 - --kubelet-insecure-tls
- Run the following command
kubectl apply -f components.yaml
- Download the latest components.yaml
To compare all kind of Todo apps in docker just execute
./build_and_monitor.py
You can specify the app-type and/or build-type to build and run only a set of application
- app-type: type of the application (spring or quarkus or all)
- build-type: type of the build (jvm or native or all)
./build_and_monitor.py -t {app-type} {build-type}
The applications can also be run on Docker or Kubernetes. The default platform is the Docker, but you can switch to Kubernetes with the -p flag.
./build_and_monitor.py -t {app-type} -p {platform} {build-type}
- infra.py - sets up the environment and starts/stops postgres-db, prometheus and grafana services
./infra.py -p {platform} start|stop
- builder.py - builds and creates docker image for the specified Todo app(s)
./builder.py -t {app-type} {build-type}
- monitor.py - starts and monitors the Todo app(s) on the specified platform
./monitor.py -t {app-type} -b {build-type} -p {platform} start|stop