- Microservices framework: go-kratos
- Api Gateway: grpc-gateway
- OpenAPI descriptions with protoc-gen-openapi
- PostgreSQL database
- Unit tests with testify
- Tracing: Jaeger
- Metrics: Prometheus & Grafana dashboards
- Messages Broker: Kafka
- Orchestration: K8s
- File storage
- Deploying to GKE
- Integration tests
Build docker images of all services:
make all-imgs
Deploy services locally with docker:
docker compose up -d
Deploy services on minikube using helm
minikube start --feature-gates=GRPCContainerProbe=true
kubectl create namespace tiny-chat
kubectl config set-context --current --namespace=tiny-chat
kubectl create secret generic grafana-auth \
--from-literal=admin-user=admin \
--from-literal=admin-password=admin
make load-imgs
helm dependency update
helm install tiny-chat tiny-chat-chart
To forward pod's port to localhost:
kubectl port-forward POD_NAME LOCALHOST_PORT:POD_PORT