The situation
BUGECE ran everything on one physical server: the applications and the databases together. During peaks such as promotional campaigns and busy transaction hours the platform slowed down or went offline, which hurt customers and held back growth.
Image loading was the slowest part. Pages took a long time to load, which cost conversions. The payment system had bottlenecks of its own and some checkouts failed. There was little monitoring, so the operations team found problems late. Deployments were manual, there were no CI/CD pipelines, and rolling back was awkward and risky.
What we did
We moved the platform to AWS. The network is a VPC with public, private and database subnets, and the applications were put in containers and run on Amazon EKS. Because images were the biggest problem, we started with Amazon CloudFront as a CDN in front of S3 and the web applications. Static files such as images, scripts and stylesheets are now served from edge locations, and the origin servers carry less traffic. We also set CloudFront up to cache some dynamic pages, including payment-related ones, which shortened the checkout path.
The rest of the architecture:
- Amazon Aurora PostgreSQL for the database
- Amazon ElastiCache for Redis for fast access to data
- An Elastic Load Balancer in front of the EKS pods
- Horizontal pod autoscaling and cluster autoscaling
- Prometheus, Grafana and Amazon CloudWatch for monitoring
- Amazon ECR and rolling updates for deployments without downtime
- AWS KMS for encryption keys, and AWS Trusted Advisor for security and cost checks
Results
Delivery of images and static assets became over 60% faster. With dynamic pages cached by CloudFront and the backend tuned with Aurora and Redis, application response times improved by 40%. The origin servers are under less load, so the platform stays available during peaks.
Monitoring shows the operations team what is happening and lets them react before users notice. Deployments are automated and use rolling updates, so releases are faster and cause less downtime.
