Armory and Spinnaker on AWS bring scalable CD pipeline to Glovo
Jan 12, 2021 by Ryan Cartwright
Glovo, a Barcelona, Spain-based startup began its journey in 2015 to become the globe’s on-demand marketplace that can deliver anything to their customers ordered 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 22+ countries and 300+ cities, Glovo’s application development team could no longer manually keep up with their monolithic application’s updates. The team partnered with Armory to support their transition to a true Continuous Deployment (CD) pipeline via Spinnaker and AWS, increasing successful deployments to 2,000 per year.
Manual deployment led to high error rates and low confidence
Before the adoption of Spinnaker, 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 automation
As Glovo’s development team grew from 45 to 300 engineers, leadership decided to adopt a CD pipeline in lieu of deploying manually. After contemplating the options, they chose Spinnaker, an open-source CD platform created by Netflix, to run on Amazon Elastic Kubernetes Services (Amazon EKS) and Amazon Simple Storage Service (Amazon S3) deploying to both Amazon EKS and Amazon Elastic Compute Cloud (Amazon EC2). Armory assisted Glovo with its solution implementation, including Armory’s Pipeline as Code which enabled the Glovo engineering team to easily implement a declarative GitOps model for its Spinnaker pipelines. The model allows them to store Spinnaker pipelines in their source control, in this case GitHub, and manage them as they would manage code, including version control, templatization, and modularization. Furthermore, Amory’s service, Dinghy, automatically keeps the pipeline in sync with what is defined in the source code repo. The result is the ability to rapidly and repeatably scale pipelines in their Spinnaker deployment. Today, Amory continues to provide ongoing management and monitoring of the platform using Armory Cloud Enterprise.
Reducing change failure rate from 20% to 5.4%
As part of implementing Spinnaker and continuous deployment (CD), 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 the master and production. It also simplified the rollback process while making the master more stable and transparent. As a result, the change failure rate dropped from 20 percent to 5.4 percent, making for a massive jump in successful independent deployments to the monolith backend system.
Increasing successful deployments to 2,000 in one year
Using Spinnaker 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. Other Armory benefits include reduced recovery time from hours to two minutes on average, a 90-minute feature turnaround time, and single-sign-on integration.
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 Haroon Rasheed, 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, Armory, and AWS have a clear picture of the future with plans to 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 first Kubernetes cluster in partnership with Armory’s CD pipeline support and AWS providing Elastic Kubernetes Services (EKS) to a more global Kubernetes cluster strategy. “Armory became a true partner for us in the adoption of Spinnaker. From installing and maximizing Spinnaker to establishing an infrastructure, engineering organization, and DevOps team culture,” Haroon Rasheed said.