MasterCloudApps-Projects / your-race

Apache License 2.0
4 stars 1 forks source link

Your Race

Rafael Gómez Olmedo, Raquel Toscano Marchena. https://github.com/MasterCloudApps-Projects/your-race

Overview

Your Race is a DevOps PoC (Proof of concept) for building an scalable platform for managing entry assignment in highly demanded races, like the New York City Marathon or 101 Km de Ronda (Spain).

In this repository you will find:

Workflow

"Your Race DevOps workflow"

Setup

System requirements

Java 17, Maven, npm, Artillery, Docker, Docker compose, kubectl, Minikube, Helm, PostgreSQL cli.

Check out information in Local Dev Setup for local development setup.

K8s Setup + prometheus helm

minikube start \
--cpus 4 --memory 16g \

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add stable https://charts.helm.sh/stable
helm repo update
helm install prometheus prometheus-community/prometheus

Reference: [1]

Install your-race services

kubectl apply -f k8s/manifests-operator/

Install Istio:

minikube addons enable metrics-server
minikube addons enable istio-provisioner
minikube addons enable istio

cd k8s
curl -L https://istio.io/downloadIstio | sh -
cd istio-1.15.3
export PATH=$PWD/bin:$PATH
istioctl install --set profile=demo -y
kubectl label namespace default istio-injection=enabled

Istio gateway deployment

kubectl apply -f k8s/istio/

Find out Istio gateway

export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
export INGRESS_HOST=$(minikube ip)
echo "http://$INGRESS_HOST:$INGRESS_PORT"

Artillery

cd performance
artillery run artillery{XXX}Test.yml

JMeter

jmeter > Test Plan.jmx

Grafana

Import Dashboard:

Feature Toggle

Console:

http://localhost/togglz-console/index

Feature toggle list:

Postman Collection

Postman Collection.

How to run a performance test with Artillery

Checkout step-by-step walkthrough in How to run a test.

In How to generate data for Testing you can find out how to generate test data.

References

Memoria

https://docs.google.com/document/d/17cHzdHlvV2ujh2DzF1rlHlmz_qfKArxPLsnF-EycibQ/edit?usp=sharing

Presentación

https://docs.google.com/presentation/d/1F3jRpaACY1rKTt9T7lfJ5u6ywyYn1eU1fU61MXd-buE/edit?usp=sharing