- EndβtoβEnd CI/CD Automation & Cloud Deployment (DevOpsβFocused Project)
- π Overview
β οΈ Important Note About Application Code- π― Project Goal
- π Repository Structure
- π DevOps Capabilities Demonstrated
- π HighβLevel Architecture Flow
- π₯ Technology Stack
- π§ Local Setup (DevOps Validation Only)
- π Jenkins CI/CD Pipeline
- β AWS ECS Fargate Deployment
- π Monitoring & Metrics
- π§ͺ Validation & Testing
- π¦ Key Outcomes
- π Future Improvements
- π€ Author
- π License | MIT
This repository is intentionally DevOpsβcentric.
It contains the complete CI/CD automation, containerization, cloud deployment, and monitoring setup built for the Gohel Tailors platform. The actual application source code is not published in this repository due to client/business requirements.
The primary purpose of this project is to showcase realβworld DevOps practices, not the application logic itself.
The pipeline demonstrates how a productionβgrade web application can be:
- Built
- Containerized
- Deployed
- Monitored
- Updated automatically
using modern DevOps tools and cloud services.
- The core web application code, UI/UX, and business logic are intentionally excluded from this repository.
- This decision was taken to protect client requirements and businessβspecific implementation.
- A lightweight demo structure is used only to validate CI/CD, containerization, and deployment flows.
π This repository should be evaluated purely as a DevOps automation and cloud deployment project.
You can check app demo here π.
And one more thing... Explanation video is coming soon...π
- Remove manual deployment steps
- Enforce repeatable and reliable releases
- Enable serverless container deployment on AWS
- Add observability using metrics and dashboards
- Represent how DevOps is applied in real client environments
|-- Dockerfile # Container build definition
|-- Jenkinsfile # CI/CD pipeline as code
|-- terraform/ # Infrastructure as Code (optional)
|-- prometheus/
| |-- prometheus.yml # Metrics scrape configuration
|-- grafana/ # Dashboards & visualization
|-- README.md
Application directories such as
/app,/templates, or/staticare not included as part of this repository.
- Endβtoβend CI/CD pipeline using Jenkins
- PipelineβasβCode via Jenkinsfile
- Dockerβbased containerization for environment consistency
- Docker Hub as container image registry
- AWS ECS Fargate for serverless container deployment
- Automated redeployment on every GitHub push
- CloudWatch for application and container logs
- Prometheus metrics collection
- Grafana dashboards for realβtime monitoring
- Secure and scalable cloud architecture
GitHub (Source Control)
β
βΌ
Jenkins (CI/CD on EC2)
β
βββ Pulls code via GitHub webhook
βββ Builds Docker image
βββ Authenticates with Docker Hub
βββ Pushes image to registry
βββ Triggers ECS deployment via AWS CLI
βΌ
Docker Hub (Image Registry)
β
βΌ
Amazon ECS (Fargate)
β
βββ Pulls latest image
βββ Runs container as ECS Service
β
βΌ
Application Container (ECS Task)
βββ Emits metrics via /metrics
βββ Sends logs to CloudWatch
βΌ
CloudWatch Logs
Monitoring (Local):
βββ Prometheus (Metrics collection)
βββ Grafana (Visualization & dashboards)
- Jenkins
- GitHub Webhooks
- Jenkinsfile (PipelineβasβCode)
- Docker
- Docker Hub
- AWS ECS (Fargate)
- IAM Roles
- VPC & Subnets
- CloudWatch Logs
- Prometheus
- Grafana
- Flask (used only as a demo workload for DevOps validation)
git clone https://github.com/prashantgohel321/DevOps-Project-Gohel-Tailors-Web-App.git
cd Gohel-Tailorsdocker build -t devops-demo-app .docker run -p 5000:5000 devops-demo-appNote: This container exists only to validate pipeline, deployment, and monitoring.
- Source code pull from GitHub
- Dependency installation
- Docker image build
- Docker Hub authentication
- Image push to registry
- ECS service update using AWS CLI
Each GitHub push triggers the pipeline automatically.
- ECS Cluster
- Task Definition linked with Docker image
- ECS Service running on Fargate
- Security group allowing application port
- IAM role for ECS task execution
aws ecs update-service \
--cluster <cluster-name> \
--service <service-name> \
--force-new-deployment- Scrapes
/metricsendpoint from ECS task - Validates application health and performance
scrape_configs:
- job_name: 'ecs-app'
static_configs:
- targets: ['<ecs-public-ip>:5000']- Visualizes request rate
- Error ratio
- Latency
- Uptime
- Custom application metrics
- Jenkins pipeline success
- Docker image integrity
- ECS redeployment verification
- Log availability in CloudWatch
- Prometheus target health
- Metric ingestion
- Grafana dashboard rendering
- Fully automated CI/CD workflow
- Serverless container deployment on AWS
- Zero manual release steps
- Realβtime observability
- Faster, safer, repeatable deployments
- Clear separation between DevOps infrastructure and application business logic
- Host Prometheus & Grafana on AWS (EC2 / EKS)
- Add automated test stages in pipeline
- Implement ECS autoβscaling
- Use AWS Secrets Manager
- Full Infrastructure as Code via Terraform
Prashant Gohel
- GitHub: https://github.com/prashantgohel321
- LinkedIn: https://linkedin.com/in/prashantgohel1706
This repository focuses on DevOps automation and cloud deployment workflows.
Application source code and business logic are excluded based on client requirements.
The DevOps implementation in this repository may be referenced for learning and evaluation purposes only.