Skip to content

Tagenal is a playground app using Vitess, Redis, Traefik and Jaeger on Kubernetes

License

Notifications You must be signed in to change notification settings

frouioui/tagenal

Repository files navigation

Tagenal

Build Status Go Report Card Maintainability

Description

Tagenal is a playground with a set of tools that enable experimentation in a cloud-native application.

Tagenal uses:

  • Relational Database Sharding with Vitess
  • Container Orchestration with Kubernetes
  • Complete Runtime Tracing and Observation with Jaeger
  • Application State Monitoring with Grafana, Alertmanager and Promotheus
  • Caching with Redis Cluster
  • APIs and Front-End Application

Requirements

To run locally, tagenal needs:

  • Have at least 10Gb of available RAM on the host
  • Have Kubernetes / Minikube installed
  • Have Golang version 1.15.x installed
  • Install yq a YAML processor
  • Install jsonnet-bundler (jb), allowing us to deal with jsonnet files
  • Install jsonnet using your system's packet manager
  • Install vtctlclient, the following command go get vitess.io/vitess/go/cmd/vtctlclient can be used
  • Install mysql and mysql-client using your system's packet manager
  • Install gojsontoyaml, the following command go get github.com/brancz/gojsontoyaml can be used
  • Run the shell scripts that are located in ./lib/*.sh. These scripts will download the necessary basic libraries and repositories

Quick Start

In this quick start we will cover the following items:

  1. Setup the Kubernetes cluster
  2. Setup Jaeger
  3. Setup Traefik Proxy
  4. Setup the Vitess cluster
  5. Setup the Redis cluster
  6. Setup monitoring with Grafana, Prometheus and Alertmanager
  7. Setup the APIs and frontend

Once the quick start is over, we will have a fully setup application using distributed database systems.

Generate sample data

The documentation and script to generate the sample data can be found here.

Architecture