A production-grade, cloud-native DevOps platform on AWS — fully automated from infrastructure provisioning to deployment and observability.
Author: Amitabh Das · DevOps Engineer II, Capgemini Engineering · linkedin.com/in/amitabhdas-devops
| Metric | Result |
|---|---|
| MTTD reduction | ~35% via burn-rate alerting |
| Provisioning effort | 40% reduction via modular Terraform |
| Deployment speed | 30% faster via GitOps automation |
| Uptime SLA target | 99.95% (multi-AZ HA) |
Developer → GitHub → Jenkins/GitHub Actions → ECR (container registry)
↓
ArgoCD (GitOps)
↓
┌─────── AWS EKS Cluster (multi-AZ) ───────┐
│ ns:production │ ns:staging │
│ app pods │ canary pods │
│ StatefulSets │ HPA │
│ RBAC policies │ Secrets Manager │
└───────────────────────────────────────────┘
↓
AWS Managed Services: S3 · RDS · IAM · Route53 · CloudWatch
↓
Observability: Prometheus → Grafana → Alertmanager → PagerDuty
Jaeger (tracing) · Loki (logs) · SLO dashboards
cloud-native-devops-platform/
├── terraform/ # Infrastructure as Code
│ ├── modules/
│ │ ├── vpc/ # VPC, subnets, route tables, IGW
│ │ ├── eks/ # EKS cluster, node groups, OIDC
│ │ ├── iam/ # Roles, policies, least-privilege
│ │ ├── rds/ # Multi-AZ RDS instances
│ │ └── security/ # Security groups, NACLs
│ ├── environments/
│ │ ├── dev/
│ │ ├── staging/
│ │ └── prod/
│ └── backend.tf # S3 + DynamoDB state locking
│
├── .github/workflows/ # GitHub Actions CI
│ ├── ci-pipeline.yml # build → test → scan → push ECR
│ └── tf-plan-apply.yml # Terraform plan on PR, apply on merge
│
├── k8s/ # Kubernetes manifests
│ ├── base/ # Deployments, Services, Ingress
│ ├── overlays/ # Kustomize env patches
│ └── helm-charts/ # App Helm charts
│
├── argocd/ # GitOps config
│ ├── application.yaml # ArgoCD Application CRD
│ └── app-of-apps.yaml # App-of-apps pattern
│
├── observability/ # Monitoring stack
│ ├── prometheus/
│ │ ├── alerting-rules.yml # Burn-rate SLO alerts
│ │ └── recording-rules.yml
│ ├── grafana/dashboards/ # JSON dashboard definitions
│ └── runbooks/ # One-page incident runbooks
│
└── scripts/ # Python + Bash automation
├── bootstrap.sh # Full platform setup
└── drift-check.py # Terraform drift detection
| Layer | Technology | Purpose |
|---|---|---|
| Cloud | AWS (EKS, EC2, S3, IAM, RDS, Route53, CloudWatch) | Core infrastructure |
| IaC | Terraform + Ansible | Provision & configure everything |
| CI | Jenkins + GitHub Actions | Build, test, scan, push |
| CD | ArgoCD (GitOps) | Declarative, drift-free deployments |
| Orchestration | Kubernetes (EKS) + Helm + Istio | Container platform |
| Observability | Prometheus, Grafana, Alertmanager, Loki, Jaeger | SLI/SLO/SLA monitoring |
| Security | RBAC, IAM least-privilege, Trivy, Secrets Manager | DevSecOps pipeline |
| Scripting | Python, Bash, Groovy | Automation & toil elimination |
# 1. Clone the repo
git clone https://github.com/iamitabh07/cloud-native-devops-platform
cd cloud-native-devops-platform
# 2. Configure AWS credentials
export AWS_PROFILE=devops-platform
# 3. Bootstrap infrastructure (dev environment)
cd terraform/environments/dev
terraform init
terraform plan -out=tfplan
terraform apply tfplan
# 4. Configure kubectl
aws eks update-kubeconfig --region ap-south-1 --name devops-platform-dev
# 5. Deploy ArgoCD + bootstrap app-of-apps
kubectl apply -f argocd/application.yaml
kubectl apply -f argocd/app-of-apps.yaml
# 6. Access Grafana dashboards
kubectl port-forward svc/grafana 3000:80 -n monitoringgroups:
- name: slo_burn_rate_alerts
rules:
- alert: HighErrorBurnRate_Critical
expr: |
sum(rate(http_requests_total{status=~"5.."}[5m]))
/ sum(rate(http_requests_total[5m])) > 0.14
for: 2m
labels:
severity: critical
annotations:
summary: "CRITICAL — Error rate burning SLO budget fast"
runbook_url: "https://runbooks.internal/high-error-rate"
first_steps: |
kubectl rollout history deploy/{{ $labels.service }}
kubectl logs -l app={{ $labels.service }} --tail=50MIT — feel free to use, modify, and learn from this.
If this repo helped you, give it a ⭐ — it helps other engineers find it.