Проектная работа "Торговая площадка на основе потоковой обработки данных"

Работа выполнена для курса "Microservice architecture"

Описание проекта

  1. Требования к системе
  2. Проектирование микросервисной архитектуры на основе Event storming
  3. Проектирование микросервиса сделок
  4. Спецификация OpenAPI
  5. Спецификация AsyncAPI
  6. Презентация по проекту

Запуск приложения

# запуск minikube
# версия k8s v1.19, на более поздних есть проблемы с установкой ambassador
minikube start --cpus=8 --memory=24g --disk-size='80000mb' --vm-driver=virtualbox --cni=flannel --kubernetes-version="v1.19.0"

kubectl create namespace otus
kubectl config set-context --current --namespace=otus

# установка Ambassador
helm install --wait aes datawire/ambassador -f deploy/ambassador-values.yaml

# установка Apache Kafka
helm install --wait kafka bitnami/kafka -f deploy/kafka-values.yaml

# установка prometheus
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add stable https://charts.helm.sh/stable
helm install --wait prom prometheus-community/kube-prometheus-stack -f deploy/prometheus.yaml --atomic

# запуск микросервисов
helm install --wait -f deploy/identity-values.yaml identity-service ./services/identity-service/deployments/identity-service --atomic
helm install --wait -f deploy/billing-values.yaml billing-service ./services/billing-service/deployments/billing-service --atomic
helm install --wait -f deploy/trading-values.yaml trading-service ./services/trading-service/deployments/trading-service --atomic
helm install --wait -f deploy/history-values.yaml history-service ./services/history-service/deployments/history-service --atomic
helm install --wait -f deploy/statistics-values.yaml statistics-service ./services/statistics-service/deployments/statistics-service --atomic
helm install --wait -f deploy/notification-values.yaml notification-service ./services/notification-service/deployments/notification-service --atomic

# применение настроек ambassador
kubectl apply -f services/ambassador/

Мониторинг

# отладка prometheus
kubectl port-forward service/prom-kube-prometheus-stack-prometheus 9090

# отладка grafana
kubectl port-forward service/prom-grafana 9000:80

Тестирование

Тесты Postman расположены в директории test/postman. Запуск тестов.

newman run ./test/postman/test.postman_collection.json

Или с использованием Docker.

docker run -v $PWD/test/postman/:/etc/newman --network host -t postman/newman:alpine run test.postman_collection.json