PromoHub is an e-commerce web platform with generic dicount code, the website is designed to simulate a real world application that experiences significant traffic spikes during promotional campaigns.
The project focuses on designing, implementing, testing and automating a highly available and scalable cloud infrastructure capable of maintaining application availability and performance during sudden increases in traffic.
During promotional periods, a sudden increase in users can overwhelm a traditional single-server application architecture.
This can result in:
- Failed or timed-out login requests
- Slow response times
- Increased application errors
- Server resource exhaustion
- Poor availability
- A single point of failure
The initial version of this project will deliberately use a simple architecture so that we can reproduce and measure these problems before introducing improvements.
The objective is to progressively transform the initial application into a scalable and highly available cloud platform.
The project will demonstrate how Cloud and DevOps engineering practices can be used to:
- Handle sudden traffic spikes
- Distribute traffic across multiple application instances
- Automatically scale compute resources
- Improve application availability
- Monitor infrastructure and application health
- Secure cloud resources
- Automate infrastructure deployment
- Automate application delivery
- Test system resilience and failure recovery
The project will evolve progressively from a simple architecture:
Internet → EC2 → Database
into a more resilient architecture involving:
Internet → CloudFront/WAF → Application Load Balancer → Auto Scaling Group → Application Instances → RDS
Monitoring and automation will be added throughout the project.
- AWS
- EC2
- Application Load Balancer
- Auto Scaling
- VPC
- RDS
- CloudFront
- AWS WAF
- IAM
- CloudWatch
- Terraform
- Docker
- GitHub Actions
- Git/GitHub
- Load Testing
- Project setup
- Build the baseline application
- Deploy the initial single-server architecture
- Perform load testing
- Identify scalability and availability problems
- Design the improved AWS architecture
- Implement load balancing and Auto Scaling
- Implement RDS
- Improve security
- Add monitoring and alerting
- Rebuild infrastructure with Terraform
- Implement CI/CD
- Perform failure and load testing
- Compare the baseline and improved architectures
- Document results and lessons learned
This is a collaborative Cloud/DevOps engineering project.
Contributions will be managed through GitHub using:
Issues → Branches → Pull Requests → Code Review → Merge
Contributors will work on defined areas of the project while maintaining a structured engineering workflow.
| Phase | Description | Status | Target Date |
|---|---|---|---|
| Phase 1 | Planning & Requirements Setup | ✅ Completed | Aug 2026 |
| Phase 2 | Build Baseline (App & DB Deployment) | ✅ Completed | Sept 2026 |
| Phase 3 | Reproduce the Problem (Load Testing) | ✅ Completed | Sept 2026 |
| Phase 4 | Scalable AWS Architecture Design & Implementation | Pending | — |
| Phase 5 | Monitoring & Reliability (CloudWatch) | Pending | — |
| Phase 6 | Infrastructure as Code (Terraform) | Pending | — |
| Phase 7 | CI/CD Pipeline (GitHub Actions) | Pending | — |
| Phase 8 | Final Load Testing & Verification | Pending | — |