How AI Helped To Migrate 37 Apps From Heroku To AWS Under 2 Hours

Startups relying on Heroku often hit roadblocks as they scale. Rising costs, technical limitations, and lack of control over infrastructure force many to explore alternatives. One such startup recently migrated 37 applications from Heroku to AWS using Qovery’s DevOps AI Migration Agent. Here’s how they accomplished this migration in less than two hours, saving days of manual work.

Romaric Philogène

Romaric Philogène

November 12, 2024 · 3 min read
How AI Helped To Migrate 37 Apps From Heroku To AWS Under 2 Hours - Qovery

#Why Migrate from Heroku?

While Heroku excels in simplicity, it falls short in scaling businesses:

  • Cost: Hosting multiple applications becomes expensive as usage grows.
  • Technical Limitations: Heroku lacks microservices support and advanced configuration flexibility.
  • Infrastructure Control: Limited options prevent teams from optimizing for performance, compliance, and custom workflows.

This startup needed more flexibility and scalability, making AWS the clear choice. However, manually migrating 37 applications would have been a time-consuming and error-prone process. That’s where Qovery’s DevOps AI Migration Agent played a crucial role.

#The Migration Process in Four Steps

#Step 1: Application Discovery

The process began with migrate.qovery.com. The DevOps AI Migration Agent connected to the startup’s Heroku account in read-only mode, automatically fetching configurations for all 37 applications, including environment variables and build settings.

#Step 2: Configuration Transformation with AI

Next, the Migration Agent utilized Claude AI via AWS Bedrock API to convert Heroku configurations into Qovery Terraform Provider configurations optimized for AWS.

DevOps AI Agent Migrating Heroku Apps To AWS via Qovery
DevOps AI Agent Migrating Heroku Apps To AWS via Qovery

Key tasks included:

  • Translating Heroku application settings and addons (databases and external services) to AWS equivalents via Qovery.
  • Structuring secrets in a secure variables.tf file, separating them from the main Terraform configuration.

All of that can be easily reviewable and editable before getting executed.

#Step 3: Validation and Auto-Remediation

After generating the Terraform files, the Migration Agent validated them using terraform validate --json. If errors were detected, the system entered an auto-remediation loop:

  1. Error messages were analyzed, and the configuration was updated automatically.
  2. Validation was retried.
Auto-remediation loop to make sure the Terraform configuration is valid
Auto-remediation loop to make sure the Terraform configuration is valid

This loop could run up to 10 times, ensuring most errors were resolved without manual intervention. If a specific application couldn’t be fixed automatically, it was flagged for further review while the migration process continued.

#Step 4: Delivery of Ready-to-Deploy Configurations

Once validated, the Migration Agent organized the Terraform configurations into separate folders for each application. Each folder included a README file with deployment instructions. Although optional, the startup’s team reviewed the configurations and found them deployment-ready with minimal adjustments.

$ tree
.
├── README.md
├── cost_estimation_report.md
├── app_1
│   ├── Dockerfile
│   ├── main.tf
│   └── variables.tf
├── app_2
│   ├── Dockerfile
│   ├── main.tf
│   └── variables.tf
├── app_3
│   ├── Dockerfile
│   ├── main.tf
│   └── variables.tf

So you can get into each folder and run the following commands to start the migration:

$ terraform init
$ terraform apply

#Migration Time: Under 2 Hours

By automating the discovery, transformation, validation, and delivery steps, the startup completed their migration in less than two hours. What could have taken several days or weeks of manual effort was condensed into an efficient, streamlined process.

#Database Migration: A Hybrid Approach

While the Migration Agent creates database instances on AWS, it doesn’t handle data transfer. In this case, Qovery’s Technical Account Managers provided expert support to help the startup migrate their database content, ensuring a smooth transition.

#Results and Impact

Using Qovery’s DevOps AI Migration Agent, the startup achieved a rapid and risk-free migration. Key benefits included:

  • Lower Costs: AWS provided more predictable pricing and better resource allocation.
  • Greater Flexibility: Full control over infrastructure to support microservices and custom configurations.
  • Improved Scalability: AWS offers a robust platform for future growth and optimization.

#Conclusion

Manually migrating 37 applications would have been a time-consuming process. Qovery’s DevOps AI Migration Agent proved how automation can transform a complex migration into a quick and seamless experience. For startups looking to scale beyond Heroku, Qovery offers an efficient and reliable pathway to AWS.

Resources

Your Favorite DevOps Automation Platform

Qovery is a DevOps Automation Platform Helping 200+ Organizations To Ship Faster and Eliminate DevOps Hiring Needs

Try it out now!
Your Favorite DevOps Automation Platform
Qovery white logo

Your Favorite DevOps Automation Platform

Qovery is a DevOps Automation Platform Helping 200+ Organizations To Ship Faster and Eliminate DevOps Hiring Needs

Try it out now!
Cloud MigrationHerokuAWSAI