Glovo Realizes Scalable Continuous Development on AWS with Armory
Glovo, a pioneering multi-category app, headquartered in Barcelona, Spain, began its journey in 2015 to become the globe’s on-demand marketplace that can give its customers easy access to anything in their city, by ordering through its mobile application. The three-sided marketplace serves customers, couriers, and vendors, which means there are a lot of moving pieces to it. As the company grew from serving three countries and eight cities to 25 countries and 1,500+ cities, Glovo’s development teams could no longer manually keep up with their monolithic application’s updates. They partnered with Armory to transition to a simple Continuous Deployment solution, increasing deployments from hundreds to 8,000+ per year.
change failure rate
mean recovery time
Manual deployment led to high error rates and low confidence
Before the adoption of Armory, Glovo’s engineering team used a manual deployment process to make changes to their monolithic application. They ran Jenkins for application artifact deployment which pushed to Amazon Simple Storage Service (Amazon S3) buckets. From there, engineers manually deployed to a new cluster, monitored for errors, and then manually destroyed the old cluster.
The team experienced a 20-percent change failure rate using this process—with each error initiating a rollback that led to lengthy, manual root-cause analysis. It got to the point where the development team was not allowed to deploy on Fridays and weekends. The team also had to introduce code freeze for up to three weeks around the holiday season to ensure the stability of the platform during the holiday periods.
Trading manual deployment processes for CD orchestration and automation
As Glovo’s development team grew from 45 to 300 engineers, leadership decided to adopt a Continuous Deployment in lieu of deploying manually. After contemplating the options, they chose Armory, deploying to both Amazon EKS and Amazon Elastic Compute Cloud (Amazon EC2). Armory assisted Glovo with its solution implementation, including Armory’s as-Code approaches which enabled the Glovo engineering team to easily implement a declarative GitOps model for its deployment process. The model allows them to store deployment configurations in their source control, in this case GitHub, and manage them as they would manage code, including version control, templatization, and modularization. Furthermore, Amory automatically keeps the deployment in sync with what is defined in the source code repo. The result is the ability to rapidly and repeatably scale deployments.
“Armory became a true expert partner for us in our adoption of
Continuous Deployment. Including maximizing performance, establishing
a DevOps team culture and scaling our engineering organization.”
Antonio Bertucci, Engineering Manager, Glovo
Reducing change failure rate from 20% to 5.4%
As part of implementing Armory Continuous Deployment, Armory supported Glovo’s move to trunk-based development with pull requests workflow. This enabled automated production upon pull request mergers for a single source of truth with main and production. It also simplified the rollback process while making main more stable and transparent. As a result, the change failure rate dropped from 20 percent to <5 percent, making for a massive jump in successful independent deployments to the monolith backend system.
Increasing successful deployments to 2,000 in the first year
Using Armory for CD, each pull request gets automatically deployed to production which gives Glovo unprecedented speed and accuracy. As a result, deployment frequency has increased to eight times per day with a milestone of 2,000+ successful deployments in the first year and over 8,000+ sustained during year two. Other Armory benefits include reduced recovery time from hours to two minutes on average, and a 90-minute feature turnaround time (lead time for change).
Improving transparency, agility, and confidence with automation
The move to CD provides transparency, agility, and confidence to Glovo’s engineers and decision makers. “Our engineers now know immediately if the release, deployment, or feature is successful, which gives them greater autonomy through transparent monitoring,” said Antonio Bertucci, Engineering Manager for Glovo. “We’ve gained deeper confidence in peak weekend production deployments and reduced our former holiday ban on commits from three weeks to three days.”
Smoothing the way to a future of DevOps growth
Glovo and Armory have a clear picture of the future as they transition from a monolithic application structure to microservices running on container-based architecture. This will provide the boundless flexibility and control to accommodate the growth of Glovo and its engineering team as it grows to over 300.
The next stage will build on the setup of the initial Kubernetes clusters in partnership with Armory’s support and AWS providing Elastic Kubernetes Services (EKS) to a more global Kubernetes cluster strategy. “Armory became a true expert partner for us in our adoption of Continuous Deployment. Including maximizing performance, establishing a DevOps team culture and scaling our engineering organization.” Antonio Bertucci said.
Glovo is a pioneering multi-category app connecting users with businesses, and couriers, offering on-demand services from local restaurants, grocers and supermarkets, and high street retail stores. Glovo’s vision is to give everyone easy access to everything within their city so that our users can enjoy what they want, when they want, and where they want. Founded in 2015 in Barcelona, it operates across 25 countries in Europe, Central Asia and Africa.
For more information about Glovo, please visit: https://about.glovoapp.com/en/
Commit. Deploy. Repeat.
Focus on writing great code, not deploying it!