Tagenal
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:
- Setup the Kubernetes cluster
- Setup Jaeger
- Setup Traefik Proxy
- Setup the Vitess cluster
- Setup the Redis cluster
- Setup monitoring with Grafana, Prometheus and Alertmanager
- 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