Skip to main content

Lab

Cluster​

We'll use a k3s cluster with three nodes (each with 4 vCPUs and 8GB RAM) on Hetzner Cloud. Additionally, we've set up a CSI (Container Storage Interface) to automatically provision network-based persistent volumes.

Cluster Nodes

Application​

Our application consists of multiple services that communicate with each other and their respective databases.

To deploy these applications in your cluster, run the following commands:

Add the Coroot Helm Chart Repository:

helm repo add coroot https://coroot.github.io/helm-charts
helm repo update

Install the Application:

helm install odb coroot/oopsdb

In Coroot, the service map looks like this:

Service Map

The application consists of several services written in different languages and backed by multiple databases:

Services:​

  • Go apps: frontend, order, cart, catalog
  • Python app: user
  • Java app: recommendations

Databases & Caches:​

  • PostgreSQL: odb-postgres (Zalando Kubernetes operator)
  • MySQL: odb-mysql (Bitnami Helm chart, replicated setup)
  • Redis: odb-redis (Bitnami Helm chart)
  • Memcached: odb-memcached (Bitnami Helm chart)
  • MongoDB: odb-mongodb (Bitnami Helm chart, clustered setup)

Additionally, there's a service called load-test, which generates requests to the frontend service. The frontend service distributes these requests across other relevant services.

Under normal conditions, the load is ~40 requests/second, with a p99 latency of 200ms, and all requests are processed without errors.

Load Test

Pretty boring, huh? Let's break something! 😈πŸ”₯

Ready to go beyond alerts and actually understand what’s happening in your system with Coroot Enterprise?Try for free