A cloud-native microservices application inspired by Netflix architecture, built using:
- 🐳 Docker (Containerization)
- ☸️ Kubernetes (AWS EKS)
- 🎯 Helm (K8s Package Manager)
- 🚀 ArgoCD (GitOps-based Deployment)
- 🔁 GitHub Actions (CI/CD)
- ☁️ AWS (EKS, S3, IAM, VPC)
- 📦 Terraform (Infrastructure as Code)
| Service | Description | Port |
|---|---|---|
user-service |
Manages user accounts & profiles | 8001 |
auth-service |
Handles authentication & JWT | 8002 |
video-service |
Streams video content | 8003 |
watch-history-service |
Tracks user viewing history | 8004 |
Each service:
- Is Dockerized
- Has its own Helm chart
- Deployed independently to EKS via GitOps
netflix-microservices-clone/ ├── infrastructure/ # Terraform for AWS EKS ├── charts/ # Helm charts for each microservice ├── services/ # Microservice source code (Dockerized) ├── argocd/ # ArgoCD app configs ├── .github/workflows/ # GitHub Actions CI/CD pipelines ├── README.md └── LICENSE
cd infrastructure/eks terraform init terraform apply Creates:
AWS VPC
EKS Cluster
IAM roles
Kubeconfig context
- 🐳 Docker & GitHub Actions Each service is:
Built using Docker
Pushed to DockerHub or ECR via GitHub Actions
Automatically deployed using Helm via ArgoCD
✅ Update in services/* triggers GitHub Actions → image build → Helm upgrade via ArgoCD.
- ☸️ Helm Charts Each service has its own Helm chart:
cd charts/user-service helm upgrade --install user-service . -f values.yaml 4. 🎯 ArgoCD (GitOps) Install ArgoCD:
kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml Apply ArgoCD Application:
kubectl apply -f argocd/app.yaml Access ArgoCD UI and sync applications.
🧪 Local Development
cd services/user-service docker build -t user-service:dev . docker run -p 8001:8001 user-service:dev
.png)