Background
Our customer is a rapidly growing SaaS application for mobile photography. The company initially operated a single PHP monolith application connected to a MySQL database. However, with an ever-expanding user base (over 10 million of users), it became evident that this setup was no longer sustainable. Developers began creating Node.js and Go microservices, attempting to containerize them using Docker. Unfortunately, these microservices were hosted on separate EC2 instances, leading to excessive resource wastage and inefficiency.
Challenge
In 2022, a mobile app company contacted Gart for consultation regarding their transition to Amazon Web Services (AWS). This shift presented a new challenge – managing Node.js and Go microservices alongside their existing PHP monolith. These microservices were containerized using Docker and distributed across separate groups of EC2 instances, resulting in inefficiencies and wasted resources.
The company urgently required a solution to consolidate and optimize their AWS EC2 instances.
Solution
To address the challenges related to inefficient AWS EC2 instances, Gart initiated an infrastructure audit and provided cloud consulting services. During the audit, it became evident that the most suitable solution for this high-load SaaS project was the implementation of Kubernetes, complemented by cloud-native technologies like gRPC and Envoy, to enhance their infrastructure.
Several critical factors influenced the choice of Kubernetes as the preferred solution, including its ease of use, robust support, and open-source nature. Kubernetes aligned seamlessly with the company’s adoption on AWS, incorporating Go as a programming language and gRPC for inter-service communication within their data center.
To meet specific deployment requirements, the company established its own cluster and developed custom components.
We assisted in migrating their services to Kubernetes, commencing with small, low-risk services and progressing to a full-scale migration.