A complete microservices architecture for learning EKS deployments with 10 interlinked services.
- Frontend Service (React) - Customer-facing web application
- API Gateway (Node.js) - Routes and authenticates requests
- User Service (Node.js) - User management and authentication
- Product Service (Python/Flask) - Product catalog management
- Order Service (Node.js) - Order processing and management
- Payment Service (Node.js) - Payment processing integration
- Inventory Service (Python/Flask) - Stock and inventory management
- Notification Service (Node.js) - Email/SMS notifications
- Review Service (Node.js) - Product reviews and ratings
- Analytics Service (Python/Flask) - User behavior analytics
- PostgreSQL - User, Product, Order data
- MongoDB - Reviews and Analytics data
- Redis - Caching and session management
Frontend → API Gateway → {
User Service → PostgreSQL
Product Service → PostgreSQL + Redis
Order Service → PostgreSQL + Inventory Service + Payment Service
Payment Service → External API
Inventory Service → PostgreSQL
Notification Service → Message Queue
Review Service → MongoDB
Analytics Service → MongoDB + Redis
}
- AWS CLI configured
- eksctl installed
- kubectl installed
- Docker installed
- AWS account with appropriate permissions
eksctl create cluster \
--name ecommerce-cluster \
--region us-west-2 \
--nodegroup-name standard-workers \
--node-type t3.medium \
--nodes 3 \
--nodes-min 1 \
--nodes-max 4 \
--managed./scripts/build-all.sh./scripts/push-to-ecr.shkubectl apply -f k8s/namespaces/
kubectl apply -f k8s/databases/
kubectl apply -f k8s/services/
kubectl apply -f k8s/ingress/├── services/ # Microservices source code
├── k8s/ # Kubernetes manifests
├── scripts/ # Deployment scripts
└── docs/ # Additional documentation
Access monitoring dashboard:
kubectl port-forward -n monitoring svc/grafana 3000:3000kubectl delete -f k8s/
eksctl delete cluster --name ecommerce-cluster