An end-to-end production-style DevOps project demonstrating how to build,containerize, deploy and monitor a web application using modern DevOps tools and best practices.
This project covers the full DevOps lifecycle:
- Application development using Python (Flask)
- Containerization with Docker
- CI/CD automation using GitHub Actions
- Deployment to Kubernetes
- Service exposure via NodePort
- Monitoring with Prometheus and Grafana
- Programming Language: Python
- Framework: Flask
- Containerization: Docker
- CI/CD: GitHub Actions
- Orchestration: Kubernetes
- Monitoring: Prometheus, Grafana
- Local Cluster: Minikube
├── app
│ ├── app.py
│ ├── Dockerfile
│ └── requirements.txt
├── deployment.yaml
├── k8s
│ └── namespace.yaml
└── service.yaml
2 directories, 6 files
A simple Flask-based REST API designed for containerized deployment.
| Endpoint | Description |
|---|---|
/ |
Application status and environment |
/health |
Health check endpoint |
docker build -t devops-app ./appdocker run -p 5000:5000 devops-appThe GitHub Actions pipeline:
- Triggers on push to
main - Builds Docker image
- Pushes image to DockerHub
DOCKER_USERNAMEDOCKER_PASSWORD
minikube startkubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/minikube service devops-service -n devops-project