Pipeline Optimisation with Operations Research
An operations research project that treats a real-world DevOps pipeline as a scheduling problem — applying classical OR methods to reduce deployment time for a critical banking application.
Overview
CI/CD pipelines in high-stakes environments like banking have strict reliability and performance requirements. The challenge was to model the pipeline mathematically and find the minimum possible deployment duration while respecting task dependencies and enabling parallelism where possible.
Approach
The pipeline was modelled as a directed acyclic graph (DAG) where each node is a pipeline stage and edges represent precedence constraints.
Methods applied:
- Kahn’s topological sort — to establish a valid execution order
- PERT/CPM — to compute earliest and latest start dates for each task
- Critical path analysis — to identify zero-slack tasks that directly determine total duration
- Slack analysis — to find where parallelisation opportunities exist
Results
- Critical path: 64 minutes — the theoretical minimum for a full deployment cycle
- Identified which pipeline stages offered the most optimisation potential
- Produced concrete managerial recommendations for resource prioritisation and risk mitigation
Architecture diagram
[Checkout] → [Build] → [Unit Tests] ─────────────────────────┐
↘ ▼
[Integration Tests] → [Security Scan] → [Deploy]
↗
[Docker Build] ──────
Stages on the critical path have zero slack — any delay directly increases total deployment time.
Tech stack
- Language: Python
- Methods: PERT/CPM, topological sort (Kahn’s algorithm), critical path analysis, graph theory
Key takeaways
Operations research techniques that seem purely theoretical deliver actionable insights in modern software engineering — especially where reliability and time-to-market are critical. This project changed how I think about pipeline design.
