This repository contains the complete setup for deploying a highly available, scalable, and observable Moodle LMS using Kubernetes (MicroK8s), Docker, and a monitoring stack built with Prometheus and Grafana.
- Deploy Moodle in a Kubernetes cluster with PHP + Nginx
- Use PostgreSQL as the persistent backend database
- Ensure data durability and service discovery
- Monitor application and node-level metrics using Prometheus + Grafana
| Component | Technology |
|---|---|
| Cluster Management | MicroK8s (Kubernetes) |
| Containerization | Docker |
| Database | PostgreSQL |
| Web Application | Moodle (PHP + Nginx) |
| Monitoring - Metrics | Prometheus |
| Monitoring - Dashboards | Grafana |
| Node Metrics | Node Exporter (as DaemonSet) |
| OS | Ubuntu |
| Name | GitHub | Group | |
|---|---|---|---|
| Danil Valiev | d.valiev@innopolis.university | dorley174 | SD-02 |
| Vyacheslav Molchanov | v.molchanov@innopolis.university | ub3rch | SD-02 |
| Aidar Sarvartdinov | a.sarvartdinov@innopolis.university | AidarSarvartdinov | SD-02 |
| Bulat Gazizov | b.gazizov@innopolis.university | BulatGazizov-dev | SD-02 |
The project is organized around modular Kubernetes deployments, with each service or technology housed in its own folder and, where needed, its own Git branch.
postgres/β PostgreSQL manifests (PVC, Deployment, Service)moodle/β Dockerfile and deployment manifests for Moodle LMS (PHP + Nginx)monitoring/β Prometheus, Grafana, and Node Exporter setupREADME.mdβ Root documentation (this file)
- Prometheus scrapes metrics from:
- Node Exporter (hardware metrics)
- Kubernetes pods
- Grafana uses Prometheus as a data source and provides dashboards to visualize:
- Pod CPU/memory
- Node health
- System load under user traffic
Simulated concurrent users were used to validate:
- Pod stability
- Resource monitoring
- Cluster resilience
- Kubernetes: deployments, volumes, services, manifests
- Docker: multi-layer images with PHP and Nginx
- Prometheus + Grafana configuration
- Infrastructure as Code (IaC)
- Collaborative DevOps using Git and modular branches
- π Main GitHub Repository
- πΊ Demo Video (YouTube)
- π₯ Demo Video (Google Drive)
Each major component has its own branch in this repository with a dedicated README.md describing setup and usage in detail:
moodlebranch β Setup of Moodle (Docker + Kubernetes)postgresbranch β PostgreSQL deploymentmonitoringbranch β Prometheus, Grafana, Node Exporter configuration