The Challenge
Which?, the UK's leading consumer champion and product testing organization, had been using Heroku for several years to host many of their digital products. However, they faced significant challenges:
- Rapidly escalating costs due to Heroku's pricing model and their growing infrastructure needs
- Limited control over infrastructure configuration
- Concerns about scalability for future growth
- Lack of fine-grained monitoring and optimization options
- Dependency on a single platform provider
Which? needed a proof of concept (PoC) to validate whether migrating to AWS would provide better control, cost savings, and scalability while maintaining high performance and reliability.
Our Approach
We developed a comprehensive migration strategy with a focus on minimizing risk and validating assumptions:
- Discovery Phase: We conducted a thorough assessment of Which?'s existing Heroku infrastructure, application architecture, and usage patterns.
- Architecture Design: We designed an AWS architecture that would provide equivalent or better performance and reliability while addressing the challenges identified.
- Infrastructure as Code: We implemented the infrastructure using Terraform to ensure reproducibility and version control.
- Containerization: We containerized a sample application to validate the migration approach.
- CI/CD Pipeline: We set up automated deployment pipelines to maintain the same level of developer experience.
- Cost Analysis: We conducted detailed cost projections to quantify potential savings.
Technical Implementation
Our solution leveraged several AWS services configured for optimal performance and cost efficiency:
- Amazon ECS (Elastic Container Service) for running containerized applications with auto-scaling capabilities
- Amazon RDS for managed database services with performance insights
- AWS Lambda for serverless background tasks that previously ran as Heroku workers
- Amazon CloudFront for CDN services to improve global performance
- Amazon CloudWatch for enhanced monitoring and alerting
- AWS Application Load Balancers for traffic distribution and SSL termination
We created a "lift and shift" proof of concept for one of Which?'s simpler applications first, followed by a more complex application that utilized more Heroku-specific features, to validate that both migration patterns were viable.
Key Features
Infrastructure as Code
Complete Terraform implementation for reproducible infrastructure with version control.
Auto-scaling
Dynamic scaling based on actual usage patterns rather than fixed resource allocation.
Enhanced Security
Improved security posture with VPC, security groups, and IAM role-based access.
Detailed Monitoring
Comprehensive observability stack with custom dashboards and alerts.
The Results
The proof of concept demonstrated clear benefits for Which?:
Projected annual cost reduction compared to Heroku
Improved performance under peak load conditions
Infrastructure defined as code for reproducibility
More detailed monitoring and observability
Based on the successful PoC, Which? decided to move forward with a phased migration of their production applications from Heroku to AWS, starting with lower-risk services and gradually transitioning their core applications.
Testimonial
"M2N.IO delivered a thorough and well-executed proof of concept that gave us confidence in our migration strategy. Their expertise in both Heroku and AWS was evident in how they handled the nuances of the migration. The detailed cost analysis and performance benchmarks provided exactly the data we needed to make an informed decision about our infrastructure future."
Need help with cloud migration or infrastructure?
We can help you optimize your infrastructure for better performance, security, and cost-efficiency.