turbonomic / demoapp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Microservices Application Testbed

testbed

Overview

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.

Components

Twitter App :

  • The simplified Twitter-like application in scalable microservice architecture.
  • See here for the architecture.

Cassandra Cluster and Exporter :

Istio and Prometheus :

  • Istio is used to gather metrics for HTTP and GRPC traffic in the application.
  • Prometheus pulls metrics from Istio and Cassandra exporters.

Turbo Server, Kubeturbo and Prometurbo :

  • Turbo Server performs analysis to the kubernetes cluster and control it to the desired state.
  • Kubeturbo gathers metrics from the k8s cluster, send them to Turbo server, and perform actions from Turbo server.
  • Prometurbo pulls 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. Locust cluster is used here.

Prerequisites

  • Turbonomic 8.2+
  • Kubernetes 1.7.3+
  • Istio 1.0+

Testbed Deployment

About


Languages

Language:Python 77.4%Language:HTML 16.6%Language:Shell 2.9%Language:Mustache 2.8%Language:Dockerfile 0.4%