This capstone project represents a major milestone in my DevOps journey. It was a full multi-service application pulled from an unfamiliar GitHub repository, which I deployed end-to-end as a production-ready system on AWS EC2. I architected, containerized, secured, and deployed the entire stack myself.
What I Deployed
EpicBook is an online bookstore with a complete e-commerce flow: Browse books → View details → Add to cart → Checkout → Order confirmed.
It’s built with Node.js, Express, MySQL, Handlebars, and Nginx.
The production architecture: Internet → Nginx (80) → Express Backend (3000) → MySQL (3306) Simple to describe—very different to build correctly.
What I Actually Built
Here’s what went into making this system production-ready:
• I analyzed an unfamiliar codebase and mapped out every service, port, environment variable, and dependency before writing any configuration.
• I wrote a multi-stage Docker file for the backend, keeping only production dependencies in the final runtime image.
• I designed a Docker Compose stack with Nginx, Express, and MySQL, all connected using internal service names (no hardcoded IPs).
• I created two isolated Docker networks, so MySQL is never exposed to the internet.
• I added health checks with dependencies to enforce correct startup order, no race conditions, and no boot failures.
• I configured Nginx as a reverse proxy, routing all traffic through port 80 and adding security headers.
• I managed all secrets using .env files; no credentials in Git, no exceptions.
• I validated data persistence using named volumes; every book, category, and order survived container restarts.
• I designed a backup and restored plan using daily MySQL dumps and tested the restore process.
• I implemented a logging strategy: backend logs to stdout and Nginx logs persisted with rotation.
• I ran reliability tests by restarting services, killing the database, and bouncing the stack, documenting how the system recovered.
I want to sincerely thank my mentors, Pravin Mishra, Praveen Pandey, Abhishek Makwana , Mobarak Hosen, Onuche Paul and Nkechi Anna Ahanonye






Top comments (0)