Went from basic Node.js app to a fully monitored, Kubernetes-powered CI/CD pipeline in one project. Here’s how I built it — from Docker to dashboards.
What I Built:
A Node.js backend exposing Prometheus-compatible metrics
Fully Dockerized, with GitHub Actions building & pushing images to Docker Hub
Kubernetes-native deployment using raw YAML manifests on Minikube
Real-time monitoring with Prometheus and beautiful dashboards in Grafana
Namespace-based separation of Prometheus and Grafana stacks
Manual CD using kubectl apply for controlled rollout
CI/CD with GitHub Actions:
Every push to main triggers
Docker image build
Push to Docker Hub (:latest tag)
Optional K8s deploy (if kubeconfig is provided)
All done securely with GitHub Secrets.
Example Workflow Run:
Monitoring & Dashboards:
Prometheus scrapes app metrics from /metrics
Grafana visualizes:
CPU & memory usage
Uptime
Custom app-level metrics
App Running in Browser:
Tech Used:
Node.js · Express · Docker · Kubernetes · GitHub Actions · Prometheus · Grafana · YAML
Repo:
GitHub Repo – Node.js + K8s + CI/CD Monitoring Stack
Credits & Learning Resources:
Learned a lot from Abhishek Veeramalla’s DevOps Zero to Hero series on YouTube.
Grafana & Prometheus setup was guided by excellent articles from Spacelift.io — their monitoring blogs are a must-read!
What’s Next:
Integrate alerting (Slack/Webhooks)
Extend to GKE or EKS for managed deployment
Have thoughts on how to scale this? Or want to collaborate on DevOps projects? Drop a comment or DM — I’d love to chat!
Top comments (0)