This project was developed as part of the Fluid AI DevOps Engineer Infrastructure Challenge.
The objective was to build and deploy a production-style application stack demonstrating:
- Containerization
- Kubernetes Deployment
- CI/CD Automation
- Observability
- Operational Debugging
The application consists of a Flask backend connected to Redis and deployed on a K3s Kubernetes cluster running on AWS EC2.
Developer
│
▼
GitHub Repository
│
▼
GitHub Actions CI/CD
│
▼
Docker Image Build
│
▼
Docker Hub
│
▼
K3s Kubernetes Cluster (AWS EC2)
│
┌──┴──┐
▼ ▼
Flask Redis
App Cache
│
▼
NodePort Service
│
▼
End Users
- AWS EC2
- Docker
- Kubernetes (K3s)
- GitHub Actions
- Python Flask
- Redis
- Git & GitHub
- Amazon Linux 2023
- Flask web application
- Redis-backed visit counter
- Health endpoint (
/health) - Dockerized deployment
- Kubernetes orchestration
- CI/CD automation using GitHub Actions
- Rolling updates
- Failure simulation and recovery
Build Docker image:
docker build -t fluid-app:v1 .Run locally:
docker run -p 5000:5000 fluid-app:v1Deploy Redis:
kubectl apply -f redis-deployment.yaml
kubectl apply -f redis-service.yamlDeploy Application:
kubectl apply -f app-deployment.yaml
kubectl apply -f app-service.yamlVerify:
kubectl get pods
kubectl get svc
kubectl get deploymentsThe GitHub Actions pipeline performs:
- Source Code Checkout
- Docker Image Build
- Docker Image Push
- Kubernetes Deployment Update
- Rolling Deployment
Pipeline Flow:
Git Push
│
▼
GitHub Actions
│
▼
Docker Build
│
▼
Docker Hub Push
│
▼
Kubernetes Deploy
Health endpoint:
/healthResponse:
{
"status": "healthy"
}Used for application monitoring and operational validation.
Implemented Health Monitoring Endpoint.
Benefits:
- Early failure detection
- Better observability
- Faster troubleshooting
- Production readiness
Simulated Redis connectivity failure by modifying:
REDIS_HOST=invalid-hostObserved application failure through logs and Kubernetes diagnostics.
Debugging Commands:
kubectl logs <pod-name>
kubectl describe pod <pod-name>
kubectl get svcRecovery:
kubectl rollout restart deployment fluid-appApplication recovered successfully.
- Docker Containerization
- Kubernetes Deployments
- Service Discovery
- CI/CD Automation
- Rolling Updates
- Health Monitoring
- Operational Debugging
- Infrastructure Management
- High Availability
Successfully built and deployed a production-style application stack on Kubernetes with automated deployment, observability, and operational debugging workflows.
This project demonstrates practical DevOps skills in Docker, Kubernetes, CI/CD, cloud infrastructure, monitoring, and troubleshooting.
Deeksha Chouhan