Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CloudForge Platform

🚀 Enterprise-Grade Cloud Platform (AWS EKS v1.30 + Terraform + GitHub Actions)

Terraform Kubernetes GitHub Actions Docker AWS Prometheus

🌐 Live Web Application (AWS LoadBalancer):
👉 http://adbb9281a779540bbacc285709adc28e-f81c61bb27b9f436.elb.us-east-1.amazonaws.com
🐙 GitHub Repository: https://github.com/sonivishal66666/Production-grade-cloud-platform


📖 Overview

CloudForge Platform is a production-grade, highly available, self-healing cloud native infrastructure hosting containerized microservices on AWS Elastic Kubernetes Service (EKS v1.30).

The entire platform is provisioned via Terraform Infrastructure as Code (IaC), managed through Kubernetes Manifests, and updated automatically via a GitHub Actions CI/CD Pipeline.

🌟 Key Architectural Highlights

  • 🛡️ Zero-Touch IaC Provisioning: Multi-AZ VPC, subnets, NAT Gateway, ECR Repositories, and EKS Cluster (v1.30) automated via Terraform.
  • 🩺 Self-Healing Compute: Automatic liveness/readiness health checking and instant pod recovery upon failure.
  • ⚖️ Horizontal Pod Autoscaling (HPA): Dynamically scales application microservices from 2 to 10 replicas based on real-time CPU load metrics.
  • 🚀 Automated CI/CD: End-to-end delivery pipeline via GitHub Actions for static code analysis, Docker builds, and AWS ECR image pushes.
  • 🎭 Interactive Chaos Engineering Testbench: Embedded visual testbench for simulating container crashes (Kill Pod) and traffic spikes (Surge CPU).

🏗️ System Architecture

The architecture is built for High Availability (HA) across multiple Availability Zones in us-east-1.

graph TD
    User([👤 Client User]) -->|HTTP Port 80| ALB[AWS Application Load Balancer]
    
    subgraph VPC ["AWS VPC (us-east-1 Multi-AZ)"]
        ALB -->|Route| Ingress[NGINX Ingress Controller]
        
        subgraph Public_Subnets [Public Subnets]
            NAT[NAT Gateway]
            IGW[Internet Gateway]
        end

        subgraph EKS_Cluster ["AWS EKS Cluster v1.30 (Private Subnets)"]
            Ingress -->|Path /| Frontend[💻 Frontend UI - NGINX]
            Ingress -->|Path /api| Backend[🐍 Python Flask API]
            
            Backend <-->|Metrics| Prometheus[📊 Prometheus / Metrics]
            HPA[⚖️ Horizontal Pod Autoscaler] -.->|Scale Signal| Backend
        end
    end
    
    Backend -->|Outbound AWS API Calls| NAT
Loading

🛠️ Technology Stack & Rationale

Layer Tooling Technical Rationale
Infrastructure as Code HashiCorp Terraform Modular infrastructure definitions with remote S3 state storage & DynamoDB state locking.
Cloud Provider AWS (Amazon Web Services) Multi-AZ VPC, EKS, ECR, IAM, NAT Gateway, and Application Load Balancer.
Orchestration AWS EKS (Kubernetes v1.30) Managed Kubernetes control plane providing fault tolerance and container scheduling.
CI/CD Pipeline GitHub Actions Automated linting, testing, Docker image building, and push to AWS Elastic Container Registry.
Ingress Control NGINX Ingress Controller High-performance path-based routing (/ -> UI, /api -> Flask API).
Observability Prometheus Real-time metrics scraping (/metrics) and cluster health monitoring.

⚡ CI/CD Delivery Pipeline

The Application CI/CD pipeline runs automatically on every commit pushed to main:

[ Git Push ] ➔ [ Lint & Static Analysis ] ➔ [ Docker Build ] ➔ [ Push to AWS ECR ] ➔ [ Kubernetes Rollout ]
  1. Lint & Test: Runs pylint static code analysis on the Python backend API.
  2. Build & Tag: Builds lightweight container images tagged with the commit SHA and :latest.
  3. AWS Authentication: Authenticates to AWS ECR using GitHub Repository Secrets.
  4. Push & Deploy: Pushes images to AWS ECR repos (backend and frontend).

📂 Repository Structure

.
├── .github/workflows/         # GitHub Actions CI/CD Pipeline definitions
│   ├── ci-app.yml            # Application CI/CD workflow
│   └── cd-infra.yml          # Infrastructure CD workflow
├── app/
│   ├── backend/              # Python Flask REST API microservice
│   ├── frontend/             # NGINX static web application & Mission Control UI
│   └── kubernetes/            # Kubernetes Manifests (Deployments, Services, ConfigMaps, HPA)
├── infra/
│   ├── terraform/            # Infrastructure as Code
│   │   ├── modules/          # Reusable modules (VPC, EKS)
│   │   └── environments/prod/# Production terraform definitions & remote state
│   └── ansible/              # Bastion host playbooks
└── scripts/                  # Helper deployment scripts

🚀 Quickstart & Deployment Guide

Prerequisites

  • AWS CLI v2 (aws configure with valid credentials)
  • Terraform v1.6+
  • kubectl (v1.30+)

1. Provision AWS Infrastructure

cd infra/terraform/environments/prod
terraform init
terraform apply -auto-approve

2. Configure Local Kubeconfig

aws eks update-kubeconfig --region us-east-1 --name prod-furever-cluster

3. Deploy Kubernetes Workloads

kubectl apply -f app/kubernetes/

4. Verify Live Ingress Endpoint

kubectl get ingress

🧪 Interactive Chaos Engineering Testbench

The Mission Control UI includes an interactive Chaos Engineering Testbench to validate cluster resilience:

  • 💥 Kill Pod: Simulates a container crash. Kubernetes liveness probes detect the failure and spin up a replacement pod in ~4.5 seconds without downtime.
  • ⚡ Surge CPU: Simulates a synthetic traffic burst. CPU usage spikes to 94%, triggering the Horizontal Pod Autoscaler (HPA) to automatically scale replicas from 2 to 5.
  • 🔄 Reset Normal: Resets CPU load back to 35% and scales replicas back down to baseline.

📄 License & Maintainers

Developed for production-grade cloud platform demonstrations.
Created & Maintained by Vishal Soni (@vishalsoni18).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages