Skip to content

tanvirmulla11/RefineOps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ RefineOps – Automated CI/CD Pipeline on AWS

RefineOps is a fully automated, cloud-native CI/CD pipeline implemented using AWS EC2, Jenkins, Docker, DockerHub, Kubernetes (k3s), Prometheus, and Grafana. This project demonstrates real-world DevOps practices including continuous integration, continuous deployment, containerization, orchestration, and monitoring.


πŸ“Œ Project Overview

The goal of RefineOps is to automate application delivery through:

  • Automated CI/CD with Jenkins
  • GitHub Webhook triggered builds
  • Docker image creation and vulnerability scanning
  • Image push to DockerHub
  • Kubernetes deployment via k3s
  • Real-time monitoring with Prometheus & Grafana

This project was developed as part of an internship to demonstrate end-to-end DevOps implementation on cloud infrastructure.


πŸ— Architecture Diagram

GitHub β†’ Jenkins (EC2) β†’ Docker Build β†’ Trivy Scan β†’ DockerHub
                  ↓
             Kubernetes (k3s)
                  ↓
           Prometheus β†’ Grafana

🧩 Key Features

  • πŸ”„ Automated CI/CD Pipeline
  • 🐳 Docker-based Application Deployment
  • πŸ” Trivy Image Security Scanning
  • ☸️ Kubernetes (k3s) Orchestration
  • πŸ“‘ GitHub Webhook Integration
  • πŸ“Š Prometheus & Grafana Monitoring
  • πŸ” Rolling Updates on Kubernetes

πŸ›  Tools & Technologies Used

Category Tools
Cloud AWS EC2
CI/CD Jenkins
Version Control GitHub
Containerization Docker
Image Registry DockerHub
Orchestration Kubernetes (k3s)
Monitoring Prometheus, Grafana
Security Trivy

πŸ“¦ Project Structure

RefineOps/
│── Jenkinsfile
│── Dockerfile
│── sonar-project.properties
│── k8s/
β”‚     β”œβ”€β”€ deployment.yaml
β”‚     └── service.yaml
│── monitoring/
β”‚     β”œβ”€β”€ prometheus.yml
β”‚     └── datasources/
│── scripts/
β”‚     └── deploy.sh
│── README.md

πŸ”„ CI/CD Pipeline Flow

  1. Code Push to GitHub

  2. GitHub Webhook triggers Jenkins

  3. Jenkins Pipeline Stages:

    • Checkout source code
    • Build Docker image
    • Run Trivy security scan
    • Push image to DockerHub
    • Deploy to Kubernetes
    • Notify via email/Slack (optional)
  4. Kubernetes pulls latest image

  5. Application becomes live

  6. Prometheus collects metrics

  7. Grafana displays dashboards


βš™οΈ Jenkins Pipeline Summary

1. Checkout Stage

Pulls latest code from GitHub main branch.

2. Build Stage

Builds the Docker image using Dockerfile.

3. Scan Stage

Runs Trivy vulnerability scan on the Docker image.

4. Push Stage

Pushes secure image to DockerHub registry.

5. Deploy Stage

Applies Kubernetes manifests using:

kubectl apply -f k8s/

6. Completion Stage

Sends result notifications.


☸️ Kubernetes Deployment Overview

βœ” Deployment (deployment.yaml)

Defines replica sets, containers, and rolling updates.

βœ” Service (service.yaml)

Exposes app externally using NodePort 30080.

βœ” Commands to Verify

kubectl get pods
kubectl get svc
kubectl describe pod <pod-name>

βœ” Access Application

http://<EC2-Public-IP>:30080

πŸ“Š Monitoring Setup

βœ” Prometheus

  • Scrapes node & pod metrics
  • Runs on port 9090

βœ” Grafana

  • Visualization tool

  • Runs on port 3000

  • Datasource: Prometheus

  • Dashboards include:

    • Node Exporter Full
    • Cluster Metrics
    • Pod/Container Performance

πŸ“… Development Timeline (06 October – 16 November)

Week Work Summary
Week 1 AWS setup, EC2 configuration, dependency installation
Week 2 Jenkins installation, webhook setup
Week 3 Dockerization, Trivy scan, DockerHub integration
Week 4 Kubernetes (k3s) installation, first deployment
Week 5 Full pipeline automation to Kubernetes
Week 6 Monitoring setup with Prometheus and Grafana, documentation

πŸ“˜ How to Run the Project

1. Clone the Repository

git clone https://github.com/tanvirmulla11/RefineOps.git
cd RefineOps

2. Build Docker Image

docker build -t <your-image-name> .

3. Apply Kubernetes Manifests

kubectl apply -f k8s/

4. Access Application

http://<EC2-Public-IP>:30080

🎯 Results

  • CI/CD pipeline successfully automated
  • Application deployed on Kubernetes via Jenkins
  • Monitoring dashboards fully functional
  • Vulnerability-free Docker images
  • Cloud-hosted end-to-end deployment

πŸ™Œ Acknowledgments

Special thanks to mentors and the internship program for guidance and support throughout this project.


πŸ“„ License

This project is intended strictly for educational & internship demonstration purposes.


About

RefineOps is a fully automated, cloud-native CI/CD pipeline implemented using AWS EC2, Jenkins, Docker, DockerHub, Kubernetes (k3s), Prometheus, and Grafana. This project demonstrates real-world DevOps practices including continuous integration, continuous deployment, containerization, orchestration, and monitoring.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors