How a team of 15 developers deploys 4200 times per Month using the Preview Environments

When the CTO of this growing company (freshly acquired by a billion-dollar company) contacted me, he was concerned by the ability of his team to deliver what they committed to for the current year. His main issue was 15 engineers working in the same development environment. Can you imagine developing on the same workstation? Things will get worst as they plan to quadruple their engineering team size in the next 18 months. They tried to set up ephemeral environments with Terraform, Kubernetes, and other great tools but they literally failed by the complexity of building such kind of system with a tech stack of 8 applications and databases.

Romaric Philogène

Romaric Philogène

February 5, 2022 · 3 min read
How a team of 15 developers deploys 4200 times per Month using the Preview Environments - Qovery
Written byRomaric Philogène

Romaric Philogène

CEO and co-founder of Qovery. Romaric has 10+ years of experience in R&D. From the Ad-Tech to the financial industry, he has deep expertise in highly-reliable and performant systems.

See all articles
BusinessProductQovery

Long story short, less than 30 days later, they have deployed more than 4200 times with dozens of preview environments. In this article, you will learn how this company multiplied by 43 their number of deployments and increased drastically their release cycles. Let’s go!

Before: 20 deployments per week

Schema with 1 Kubernetes cluster for the production, staging and dev environments
Schema with 1 Kubernetes cluster for the production, staging and dev environments

Before, the 15 developers were using a shared development environment. They struggled to release fixes and new features at the same time. The product managers in charge of the QA were also not able to validate every change with confidence. Worst, in the last months they faced multiple production outages since the staging and development environments were running on the same Kubernetes cluster. The CTO discovered our Preview Environment feature on Reddit and decided to contact us to see how it could improve their development workflow. After a demo call and a quick POC, they decided to move forward and promote it with their whole technical stack and more team members. 

Their technical stack:

  • 1 Rails application
  • 1 Rails worker application with Sidekiq
  • 1 Redis
  • 1 RabbitMQ
  • 1 MongoDB
  • 1 MariaDB
  • 1 Elasticsearch DB
  • 1 Kibana

After: 850 deployments per week

Before getting started, I need to explain what is the concept of Preview Environment. Basically, Qovery provides a feature called “Preview Environment”. When turned on, you get a full replica of your production environment for every pull request. Meaning, every pull request can be tested in an isolated and ephemeral environment. When the pull request is merged, the Preview Environment is destroyed and the consumed resources are released. Now, you understand how it was possible to deploy 43 times more than before. 

Number of deployments per day for 1 month
Number of deployments per day for 1 month

Here is a screenshot of the number of deployments per day. With a maximum of 650 deployments in a day. The average is around 220 deployments per day. During the weekend there is no deployment. 

Cumulative deployments for 1 month - +4200 deployments
Cumulative deployments for 1 month - +4200 deployments

In less than 30 days, they crossed the 4200 deployments. Which results in an average of 9 deployments per day per developer. Which is much higher than Airbnb for a ratio - number of deployments per developer per month (Airbnb claims 125 000 deployments in a year).

Better production, staging, and development isolation

Improving the performance of the development team was the primary goal of using the Preview Environment, but since Qovery makes using multiple Kubernetes clusters seamlessly, they decided to use multiple AWS accounts and isolated Kubernetes clusters for the production, staging, and preview environments. 

Schema with 3 Kubernetes clusters with the development cluster isolated from the production and staging Kubernetes clusters
Schema with 3 Kubernetes clusters with the development cluster isolated from the production and staging Kubernetes clusters

It’s 100% transparent for the developers and they have not to worried about where the applications are running. 

List of Preview Environments - Qovery web interface
List of Preview Environments - Qovery web interface
One preview environment with all the services running - Qovery web interface
One preview environment with all the services running - Qovery web interface

Conclusion

Using Preview Environments helped this customer improve their release cycles by 43 times in less than a month. They also isolated their production and staging from the development environments to avoid causing production outages while running tests. With Qovery, they better structured their work with no loss in productivity.

Check out the Preview Environment feature presented by John Gramila 👇.

Special thanks to Alex for closely working with us.

---

>> Give Preview Environment a try! <<

Test and Release Features 4x Faster with On-demand Environments

Qovery is a Platform to Deploy Production-like Environments in your AWS account in Seconds; Helping Developers To Test and Release Features Faster ⚡️

Try it out now!
Test and Release Features 4x Faster with On-demand Environments
BusinessProductQovery

You might also like