This project creates a microservices application in a Kubernetes cluster. The main application is a simplified Twitter-like app with Cassandra database to persist data. To monitor the app performance, Istio and Prometheus are used to gather the metrics from the underlying Kubernetes cluster. With the metrics, one critical step is to control the performance to a desired state. To acheive it, the technologies from Turbonomic, including Kubeturbo, Prometurbo, and Turbo server are used to further monitor and control the system.
Twitter App :
- The simplified Twitter-like application in scalable microservice architecture.
- See
herefor the architecture.
Cassandra Cluster and Exporter :
- The
Cassandra clusteris the backend databases for the Twitter app. - The
Cassandra exportergather metrics from Cassandra and allows other components to query.
Istio and Prometheus :
Istiois used to gather metrics for HTTP and GRPC traffic in the application.Prometheuspulls metrics from Istio and Cassandra exporters.
Turbo Server, Kubeturbo and Prometurbo :
Turbo Serverperforms analysis to the kubernetes cluster and control it to the desired state.Kubeturbogathers metrics from the k8s cluster, send them to Turbo server, and perform actions from Turbo server.Prometurbopulls metrics of the app and Cassandra cluster from Prometheus and send them to Turbo server.
User Simulator :
- Simulate the users' behavior to visit the app.
Locustcluster is used here.
- Turbonomic 8.2+
- Kubernetes 1.7.3+
- Istio 1.0+
- See
Testbed Deploymentsection.

