The product's development was considerably restrained by its own success
The most effective way to reenable growth and scalability was migration to a cloud-based microservice architecture. Market success gave it a strong impulse for further development. But the scalability limit was reached soon, as rapid growth brought new technological challenges:
- The original monolithic on-premises solution substantially restricted custom features development for existing clients. At the same time, the demand for new features kept increasing, more and more exceeding the team’s capacity.
- The delivery of the new releases slowed down and became hardly predictable as the product’s growing complexity caused longer regression cycles.
- The user base growth increased the load on the infrastructure and boosted the amount of data gathered.
- As the original solution was approaching its limit of vertical growth, it was increasingly difficult to meet the requirements for performance and maintain the same level of productivity for the users.
- The on-premises data center ensured excellent service for local users. But as the platform entered the global market, the data center could not offer the same speed to new users abroad.
- The product’s evolution required implementing several new high-value features. But developing them within the existing on-premises solution wasn’t reasonable, as it definitely wouldn’t be able to provide the necessary level of performance.
Further development of the product was considerably restrained by its own success. The most effective way to resolve the issue was migration to a cloud-based microservice architecture.
A critical requirement that defined the whole migration strategy was to minimize downtime. The product had to work frictionlessly, accommodating new users and introducing new features during the entire migration period.
We've developed and implemented a strategy that ensures the product's unrestrained growth
We’ve developed and implemented a strategy that ensures the product’s unrestrained growth and scalability by:
- Enabling gradual migration to the cloud.
- Optimizing resource utilization.
- Revising the entire process of product development.
We’ve designed a hybrid cloud architecture solution and conducted a smooth gradual transition, keeping the solution stable during the migration process.
To optimize infrastructure management, we’ve introduced the IaaC approach. Cloud edge locations were leveraged to reduce latency for distant international users.
We’ve revised the testing strategy as a whole and implemented automated integration, smoke and regression testing. This has allowed us to shorten the delivery cycle and make it predictable and easily manageable. As a result, we’ve enabled the progression to transparent and precise release planning.
The migration has been completed with minimal possible downtime and has yielded valuable business outcomes
By now, the system is mostly in the cloud. Some of its parts have to remain on-premises because of legal constraints.
- As the migration went smoothly, the existing users’ business processes were not interrupted. User satisfaction has improved as latency issues have been resolved.
- The migration to the cloud has unlocked the opportunities to introduce new business-critical features and leverage new technologies due to PaaS and SaaS offerings.
- Further unconstrained growth has been enabled, and the product’s global customer base has expanded to 600K+ active users in 140 countries. The product’s time to market has substantially improved. The new features are being delivered regularly, with independent teams working on independent customized increments. The frequency of several deployments a day has been enabled.
- The product’s stability has dramatically increased as a result of the monolith’s separation into multiple microservices, and automated testing implementation.
These changes have resulted in significant optimization of operational costs and re-enabled client acquisition, which has led to considerable revenue growth.