This article is a translation of the Japanese article published on February 25th, 2022.
Note: This article is part of our "Blog Series to Introduction of Developer Productivity Engineering at Mercari."
Hello! This is Hidenori Suzuki, the Engineering Manager at Mercari Core SRE Team.
Core SRE is one of the teams in the Developer Productivity Engineering Camp, and our goal is to resolve issues with large MySQL databases and subsystems used by monolithic APIs.
In this article, I cover two of the projects we’re currently working on.
Overhauling large MySQL databases
Mercari services had previously been structured from monolithic applications written in PHP. We decided to gradually convert each feature into its own microservice, in order to help expand the engineering organization and improve the speed at which services are developed. The intention was to split large MySQL databases being used by these monolithic APIs.
However, services continued to grow at a rapid pace, and the amount of data became massive. We then decided to migrate to a system with a scalable structure.
This project has just begun, and we’re now considering several options from multiple angles to determine whether they can meet our requirements.
I plan to cover these efforts in a little more detail as a blog post in this series of articles.
When the Mercari service first launched, it was located in a data center in Ishikari, Hokkaido. (The background is introduced in a past blog article.)
We then reconfigured the system so that our monolithic API and databases would be located in Tokyo alongside our microservices in GCP’s Tokyo region.
Some of the subsystems used by the monolithic API were made obsolete by replacing their features with managed services provided by GCP. As for the rest, it was assumed that many of them could eventually be decommissioned as we modernized our design, so initially we left those subsystems in the data center in Ishikari.
However, later we decided to relocate our subsystems to the GCP Tokyo region, in order to reduce management/operation costs and to reap the benefits of connecting them with internal systems located in GCP.
Rebuilding the Ishikari subsystems in Tokyo may seem like a simple task, but in reality it requires some careful thought. When working with a legacy system, we must keep in mind the possibility that it was designed in a way that prevents sufficient information from being shared within the team.
Over the course of this project, we will be analyzing these systems, making necessary improvements, and working toward improving service quality and reliability (while doing our best to avoid any service degradation as we rebuild).
I’ll be posting more about what the Core SRE Team is doing, so please be sure to check it out.
Mercari, Inc. is hiring! Are you passionate about making improvements? We’d like to meet with you.
We’re also happy to conduct a casual interview if you just want to know more.
We can talk about more details that I wasn’t able to include here, and I’m happy to answer any other questions you might have.
If interested, please feel free to contact me on LinkedIn to schedule a casual meetup.