Moovit needed a sophisticated Load Balancer that could handle its high number of requests. In order to achieve the required Load Balancer sophistication, they utilized a stack of Nginx servers which routed to internal ELBs based on HTTP path rules. This, however, led to a few issues:
Complexity– As Nginx instances are not managed automatically, the Moovit team was required to put in a lot of time and effort into manual server management. This meant a demand of DevOps time and energy.
Cost– Nginx servers come with an increased cost due to the number required: Moovit was managing a set of 10-15 Nginx servers behind internal Load Balancers, which in turn routed traffic to a set of internal ELBs. All of this led to increased cost for the company.
Moovit looked to Spot Multai Load Balancer (MLB) in order to help resolve these issues. By using MLB, Moovit lowered both the management complexity and costs for the Load Balancers, as they could use MLB instead to replace their existing Nginx and ELB infrastructure. Instead of the larger number of Nginx instances and internal Load Balancers, MLB allowed Moovit to reduce the overall number of servers and removed the need for the internal Load Balancers. Now, Moovit runs between 2-3 MLB nodes with low CPU utilization, all of which are fully managed by Spot. This means that Moovit could handle the over 200,000 requests per minute without the management complexities of utilizing Nginx instances, all whilst simultaneously reducing costs by 50%.
The diagram below illustrates the architecture simplification achieved by using Spot’s MLB:
Spot MLB is specifically focused on
performance, ease of use and cost reduction. Combining application load balancing, traffic engineering, security and deep analytics, MLB improves client instance utilization to create the most optimized environment for company. A key feature for Moovit was the intelligent way in which Spot MLB balances traffic, with MLB automatically registering instances with the corresponding weight, allowing Moovit to fully utilize a heterogeneous group of instances. For example, c4.2xlarge will receive double the requests compared to c4.xlarge, helping to bring down latency. Alongside ensuring full instance utilization, MLB can distribute application requests based on URL, HTTP Headers, user data (such as browsers, client, etc.) geographic locations and more.
“By using Spot MLB we’ve managed to get the performance we needed with no management or maintenance from our side. All this and we’ve even reduced the overall cost!” – Anan Kenig, Chief Architect, Moovit
For Moovit, MLB offered the perfect mixture of cost reduction, performance improvement, and customization. Spot MLB now handles all the API and UI traffic for Moovit, alongside Elastigroup by Spot also handling nearly all of Moovit’s instances. With Moovit hoping to migrate the few remaining workloads to MLB, we at Spot are proud to be so heavily involved in Moovit and are looking forward to continuing to work closely together in the future.
Moovit is the world’s number 1 transit app, with over 170,000,000 users in over 2,200 cities across 80 countries around the globe. Offering their users a completely comprehensive tool for utilizing transit links in cities around the world, Moovit has become the go-to app for locals and tourists alike. Moovit also assists cities and transit agencies with its Smart Transit Suite that helps shape and power the future of urban mobility.https://moovit.com/
for up to 20 instances