Information Technology
Computer Lab Booking and Usage Analytics System for an Engineering College
Faculty book lab slots online and the HOD sees which labs, machines and hours are actually used
- Python
- Django
- MySQL
- +3
Deploy one service two ways, measure downtime, errors and switch time, and pick a winner with data
Mapped to your syllabusJNTUH R22 · Project Stage-II incl. Seminar · IV-2Every college IT team running its own small services — a notices portal, a timetable API, a lab-booking helper — faces the same question: how do we release a new version without students seeing an error page? Two classic answers are blue-green deployment (run the new version beside the old and switch traffic atomically) and rolling deployment (replace instances one at a time). Blogs argue which is better; this project measures it.
We build a small stateless Node.js service serving student notices and timetable data — a workload a JNTUH-affiliated college actually runs — and a reproducible deployment rig: Docker containers, Nginx as reverse proxy and load balancer, and scripted pipelines that deploy each strategy with health checks and connection draining. Prometheus and Grafana (industry-standard monitoring tools, used as extras beyond the syllabus) record what users experience, while a load generator drives steady traffic.
Each strategy runs 10 times from an identical starting state, and we compute what matters: downtime, failed-request rate, p95 latency, deployment duration and rollback behaviour. The deliverable is not just a rig but an evidence-backed answer — which strategy suits a college service with modest memory but a hard rule that exam-day traffic never sees an error page — written up as an experimental report for the JNTUH R22 Stage-II seminar.
The work maps onto the R22 DevOps courses (CS503PC/CS505PC: containerisation, CI/CD) and CS409PC web technologies, and demonstrates measurement discipline beyond building an app: hypotheses, a controlled experiment, conclusions the panel can check against raw data.
Syllabus alignment
College-run web services — notices, timetables, lab systems — are redeployed with a stop-start-restart cycle, and every redeployment is a visible outage for students; teams therefore avoid releasing during exam weeks precisely when fixes are most needed. Zero-downtime deployment strategies are well known, but the available guidance is scattered across vendor blogs and Kubernetes-centric documentation, and almost none of it is presented as a reproducible measurement on the single-server, open-source setups colleges actually have. As a result, a college IT team cannot answer a basic engineering question — which strategy gives fewer user-visible failures on our hardware for our traffic — before committing to one.
This project fills that gap: build a small, representative Node.js service and a scripted Docker/Nginx rig that deploys it by blue-green and rolling strategies with health checks and draining, measure downtime, error rate, p95 latency and switch time across repeated identical runs with Prometheus, and deliver an evidence-backed recommendation plus a rig that other teams can re-run and extend.
Small web services in colleges are typically updated by stopping the old version and starting the new one — a window in which every user sees a failure. Zero-downtime techniques exist (blue-green, rolling, canary), but published comparisons are usually vendor-oriented or Kubernetes-only, not reproducible on a college's single server with open tools. This project constructs a controlled, measurable comparison of blue-green vs rolling deployment for a small Node.js service on Docker + Nginx, runs each strategy 10 times under identical load, and reports downtime, error rate, latency and switch time from Prometheus data. The outcome is both a reusable rig and a data-backed recommendation.
The JNTUH R22 curriculum teaches DevOps — containerisation, CI/CD pipelines, monitoring — but deployment strategies are usually taught as diagrams, not as measured behaviour. Meanwhile the student-facing services a college runs genuinely cannot go down at particular times: results day, exam-schedule publication, counselling week. A deployment study turns an abstract syllabus topic into engineering evidence.
/health endpoint and Prometheus metrics.deploy-bluegreen.sh, deploy-rolling.sh) with clear logs, so future batches can extend the study to canary releases without reverse-engineering the setup.In scope
Out of scope (v1)
The project is run as a controlled engineering experiment inside an incremental build plan — Stage-II of the JNTUH R22 project track (11 credits, semester IV-2, assessed at CIE 40 + SEE 60).
| Phase | Weeks | Activities | Deliverable |
|---|---|---|---|
| Literature & baseline | 1–2 | Survey deployment-strategy literature and SRE availability practice; finalise hypotheses H1–H3 and the metric definitions | Survey notes + hypothesis sheet |
| Reference service | 3–4 | Build and containerise the notices/timetable API; add /health and /metrics; load profile with the generator | Versioned service image |
| Rig construction | 5–7 | Docker Compose topology, Nginx upstream configs, blue-green switch script with health gate and atomic reload | Blue-green pipeline |
| Rolling pipeline | 8–9 | Per-instance replace, drain, health gate; rollback path | Rolling pipeline |
| Measurement harness | 10–11 | Prometheus scrape config, Grafana dashboards, per-run metric extraction script from the load generator and Prometheus | Harness + dry-run report |
| Experiment execution | 12–14 | 10 runs per strategy from identical state; 5 rollback runs each; log raw metrics for every run | Raw data (CSV) per run |
| Analysis & reporting | 15–16 | Compute means/spread, plot comparisons, write conclusions and the Stage-II report; rehearse the seminar | Stage-II report + seminar demo |
Hypotheses: H1 — blue-green produces zero user-visible failures but doubles memory during the switch; H2 — rolling without draining shows transient 502s, and draining removes most of them; H3 — switch duration, not strategy, dominates the error window on a single host.
Validity controls: identical starting state (fresh containers), same load profile and duration every run, same host and network, and a fixed release artifact — only the deployment strategy varies.
The rig is a single-host deployment topology in which everything — traffic, routing, metrics — is visible and measurable.
/health for readiness and /metrics for monitoring. The service is stateless by design so that data-tier effects cannot contaminate the deployment measurement.flowchart LR
LG[Load generator - fixed profile] -->|HTTP| NX[Nginx reverse proxy]
NX --> B1[Blue app v1.0]
NX --> B2[Blue app v1.0 - replica 2]
NX -.->|switch| G1[Green app v1.1]
NX -.->|switch| G2[Green app v1.1 - replica 2]
B1 --> M[/metrics endpoint/]
G1 --> M
NX --> M
M -->|scrape every 5 s| P[Prometheus]
P --> GR[Grafana dashboards]
P --> E[Per-run metric extractor]
E --> CSV[(results.csv)]flowchart TD
S0["1. Blue is live, serving 100%"] --> S1["2. Start Green with the new image"]
S1 --> S2{"3. Green /health passes for 30 s?"}
S2 -- no --> AB["Abort - Blue untouched, log failure"]
S2 -- yes --> S3["4. Rewrite Nginx upstream to Green"]
S3 --> S4["5. nginx -s reload - atomic worker refresh"]
S4 --> S5["6. Drain Blue: stop new connections, wait for in-flight"]
S5 --> S6{"7. Error rate normal for 60 s?"}
S6 -- no --> RB["Rollback: upstream back to Blue + reload"]
S6 -- yes --> S8["8. Mark release healthy, keep Blue as standby"]Two design choices deserve the panel's attention: the Nginx reload is used instead of a restart so worker processes are refreshed without dropping listening sockets; and the drain window after every switch is what turns a technical success into a user-visible success — it is also the exact mechanism our hypotheses test.
Module 01
The Node.js/Express notices-and-timetable API: JSON endpoints for notices, timetable queries and a health probe, with response latency deliberately including a small random component so real load behaviour shows up. Includes the Prometheus /metrics endpoint (request counters and latency histograms via prom-client), the multi-stage Dockerfile (~120 MB final image), docker-compose definitions and the Git tagging scheme that marks each release candidate used in the experiment.
Module 02
The heart of the study: deploy-bluegreen.sh (start Green from the new image, poll /health for 30 seconds, rewrite the Nginx upstream, reload without restart, drain Blue, keep Blue as instant rollback) and deploy-rolling.sh (replace one replica at a time, admit the new container only after health passes, drain in-flight connections before stopping each old container, with automatic abort if any health gate fails). Both scripts log every decision with timestamps so a run can be reconstructed later.
Module 03
The load profile (autocannon driving fixed request rates matching the service's observed college-day pattern), Prometheus scrape configuration and Grafana dashboards, and the extraction script that converts each run's window into one CSV row: downtime seconds, failed-request rate, refused connections, p95 latency, switch duration and peak memory. Also owns the analysis — means, spread, comparison plots — and the validity checks that every run started from an identical state.
Slide 1
Zero-Downtime Deployment Study: Blue-Green vs Rolling
Slide 2
Context: Deployments in a College IT Setup
Slide 3
Problem Statement
Slide 4
Background: The Two Strategies
Slide 5
Objectives & Hypotheses
Slide 6
Experimental Design
Slide 7
Rig Architecture
Slide 8
Pipelines Implemented
Slide 9
Results
Slide 10
Analysis & Hypothesis Verdicts
Slide 11
Live Demo
Slide 12
Limitations & Future Work
Slide 13
Conclusion
Bullets, speaker notes and the .pptx · ₹2,000
Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.
It means no user-visible failures during a release: no refused connections and no error responses, even though instances are being replaced. Literally zero is possible only when traffic never touches the old or unready version — blue-green with an atomic proxy switch approaches that, and our 10 blue-green runs recorded zero failed requests, while poorly configured rolling releases can leak errors during each replacement.
Blue-green keeps two full environments: the old one (Blue) serves everything until the new one (Green) is verified, then the proxy switches at once and Blue becomes the instant rollback target. Rolling replaces instances one at a time inside the same environment, so capacity is never doubled but every replacement is a small risk that must be gated by health checks and connection draining.
Nginx is the reverse proxy and load balancer — the single entry point that decides which upstream serves each request. A restart would drop the listening socket and every in-flight request, which is exactly the outage we are avoiding; `nginx -s reload` starts new workers with the new configuration while old workers finish their in-flight requests, so the switch is atomic from the client's point of view.
+13 more questions, with answers
Unlocks with the project · ₹2,000
Unlock for ₹2,000What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.
Unlocks with the project · ₹2,000
Unlock for ₹2,000How to study it, adapt it and walk your examiner through it, step by step.
Unlocks with the project · ₹2,000
Unlock for ₹2,000OnlyProjects. (2026). Zero-Downtime Deployment Study: Blue-Green vs Rolling for a Small Web Service: B.Tech / B.E. Information Technology project bundle [Educational resource]. https://onlyprojects.online/projects/btech-it-zero-downtime-deployment-study
Keep browsing
Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.
Information Technology
Faculty book lab slots online and the HOD sees which labs, machines and hours are actually used
Information Technology
Ticket lifecycle, SLA clocks and automatic escalation for a college IT support cell — no more sticky notes
Cyber Security
Flows, top talkers and scan indicators for the lab's own network — headers only, no blocking, full history
Mechanical Engineering
A human-powered spiked-roller dehusker for small coconut growers around Pollachi — designed, fabricated and tested for ₹ under 20,000
Aerospace / Aeronautical
Build a subsonic test tunnel on a student budget, then trace lift and drag on a 3D-printed NACA 0012 against theory
Agricultural Engineering
Irrigates vegetable beds by soil-moisture thresholds instead of habit, and proves every litre with a flow meter