microservices-demo-aws.mp4
This project deploys the Online Boutique microservices application to AWS. It is designed to showcase cloud-native architecture, infrastructure automation, CI/CD and platform engineering practices.
- Microservices architecture (multiple independent services)
- AWS infrastructure provisioned with Terraform
- EKS cluster + node groups
- ECR for container images
- Kubernetes deployment of all services
- CI/CD pipeline to:
- Build Docker images
- Push to ECR
- Deploy to EKS automatically
jenkinsfiles/— Pipelines that build each microservice image, push to ECR and retag Kubernetes manifests.k8s-manifest/— Declarative Kubernetes specs for all services, intended to be synced by Argo CD.src/— Application source code and Dockerfiles for every microservice (Go, Node.js, Python, .NET).terraform/— Infrastructure as code. Includes:s3-buckets/— Remote state storage (S3 + optional DynamoDB locks).ec2/— Jumphost/tooling EC2 box for kubectl/helm/Jenkins.platform/ecr/— ECR repositories for all service images.platform/eks/— EKS control plane and node groups.
- Infra: Terraform first provisions remote state buckets, then a tooling EC2, then ECR repos and the EKS cluster.
- Build & push: Jenkins pipelines build per-service images and push to the corresponding ECR repo; they also bump image tags in the Kubernetes manifests.
- Deploy: Argo CD watches
k8s-manifest/and syncs changes to the EKS cluster. You can alsokubectl apply -f k8s-manifest/manually if needed. - Observability: Install Kube Prometheus Stack (Prometheus + Grafana) on EKS for metrics and dashboards.
- In
terraform/s3-buckets: create remote state storage. - In
terraform/ec2: stand up the jumphost/tooling box; note SSH key and security group outputs. - In
terraform/platform/ecr: create ECR repos; record repo URLs for Jenkins. - In
terraform/platform/eks: create the EKS cluster and node groups; update kubeconfig. - Configure Jenkins with AWS creds, then run pipelines from
jenkinsfiles/to build/push images and retag manifests. - Install Argo CD on the cluster; point it to
k8s-manifest/and sync. - Install Kube Prometheus Stack for metrics and Grafana dashboards.
WIP
Homepage Frontend
Checkout Page
Terraform Flow
Jenkins Pipelines
Argo CD Application
Grafana Dashboard
- Support Multi-cloud deployments
- Use GitHub Action for CI
- removes Jenkins servers dependency
- Use multi-branch pipeline in Jenkins






