All cases

Upgrading MySQL 5.7 to 8.0 for Noom digital health company

Client
Noom digital health platform
Industry
Healthcare
Services
Database migration
Technology
MySQL, AWS, CloudFormation

Challenge

Noom is a science-based digital health company that helps people take control of their health. Using the latest advances in behavioral science, the platform offers a variety of healthcare tools that help people address a broad range of chronic and non-chronic conditions and build sustainable habits that last a lifetime. The application stores data in seven MySQL databases that are hosted on Amazon RDS for MySQL. The databases contain huge data volumes, with the largest storing 11 TB of data. The problem was that the platform used the outdated MySQL version 5.7, which AWS would stop supporting in February 2024. This compelled the customer to search for trusted database migration services to seamlessly upgrade MySQL 5.7 to version 8.0. Providing data migration services since 2009, the ITRex team was excited to navigate this data migration challenge.

Our tasks were as follows:
Migrate the clusters (7 items) from MySQL 5.7 to MySQL 8.0, considering the number of databases and huge data volumes
Ensure the app’s stability to make it fully available right after the upgrade
Minimize the downtime and its impact on the app’s end users as much as possible

Solution

First, ITRex ran a mini-discovery cycle to assess compatibility issues, specify upgrade requirements, and prepare the database for the overhaul. Second, we needed to decide on the most appropriate upgrade method. In this regard, AWS offers two approaches to MySQL database migration. The first one—an in-place upgrade—failed to meet the requirements because of a 20-minute downtime, which was excessive for our customer. Furthermore, it wouldn’t allow us to roll back to the previous version swiftly in case of any issues during the upgrade. With this in mind, ITRex decided to go with the other option—a blue/green deployment. This technique provides a safe database upgrade with near-zero downtime and zero data loss. Besides, it would allow us to revert the upgrade immediately after it was done in an emergency. To perform the MySQL 5.7 to 8.0 upgradе, we took the following steps:
Created a replica of the original cluster
Set up a staging environment mirroring production, which allowed us to make changes to the database and test the migration on replicas without compromising production data integrity
Once the test cluster proved to work with the app, we simply switched over the environments to promote the staging (blue) environment to be the new production environment
noom-MySQL upgrade
Upgrading MySQL 5.7 to 8.0

Results

ITRex completed the MySQL 5.7 to 8.0 upgradе with minimal business disruption—a 2-minute downtime
We could drastically reduce the amount of testing for the upgraded database due to a separate staging environment that allowed us to experiment with a real migration without affecting production
The upgraded cluster was ready to go as soon as the upgrade had finished

Latest projects