Skip to content

Vibhore-7190/cloud-native-devops-platform

Repository files navigation

Cloud-Native DevOps Platform

Build Terraform Kubernetes ArgoCD License

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


Key Outcomes

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)

Architecture

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

Project Structure

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

Stack

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

Quick Start

# 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 monitoring

Observability: Prometheus Alerting (Burn-Rate)

groups:
  - 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=50

License

MIT — feel free to use, modify, and learn from this.


If this repo helped you, give it a ⭐ — it helps other engineers find it.

About

Production-grade DevOps platform — AWS · Terraform · EKS · ArgoCD · Prometheus

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors