Back to Case Studies Infrastructure, DevOps

Which?: PoC to Migrate Off Heroku

2022
Infrastructure, DevOps
Illustration representing a Heroku-to-AWS cloud migration

Client

Which?

Industry

Consumer Reviews & Testing

Services

  • Cloud Migration Strategy
  • Infrastructure as Code
  • DevSecOps Implementation
  • Cost Optimization

Technologies

  • AWS (ECS, RDS, Lambda)
  • Terraform
  • CI/CD Pipelines
  • Containerization

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:

  1. Discovery Phase: We conducted a thorough assessment of Which?'s existing Heroku infrastructure, application architecture, and usage patterns.
  2. Architecture Design: We designed an AWS architecture that would provide equivalent or better performance and reliability while addressing the challenges identified.
  3. Infrastructure as Code: We implemented the infrastructure using Terraform to ensure reproducibility and version control.
  4. Containerization: We containerized a sample application to validate the migration approach.
  5. CI/CD Pipeline: We set up automated deployment pipelines to maintain the same level of developer experience.
  6. 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?:

42%

Projected annual cost reduction compared to Heroku

30%

Improved performance under peak load conditions

100%

Infrastructure defined as code for reproducibility

5x

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."

James Thompson

Head of Technology, Which?

Need help with cloud migration or infrastructure?

We can help you optimize your infrastructure for better performance, security, and cost-efficiency.