Designing a seamless deployment architecture

Lakshay Kalbhor
Jun 6 · 1 min read

Preface

Previously the deployment process at Avanti was largely adhoc, with no streamlined simple “touch of a button” system.

New code was usually deployed in such a manner :

  • Tell load balancer to take down Server A, deploy new code on Server A (Server B handles all traffic).
  • Tell load balancer to take down Server B(while getting Server A up again) and deploy new code on Server B.

There were obvious downsides to such a process, for one it required us to limit deployments to only low traffic periods (usually late at night) and required a lot of manual interference with the load balancer & servers.

So, we decided to build a seamless deployment system that would achieve the following things:

  • Should trigger deployments with a simple “push of a button”
  • Should cause minimum downtime
  • Should be truly seamless (Absolutely no manual interference)
Image for post
Image for post

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store