August 12, 2018

Designing a seamless deployment architecture

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)

© Lakshay Kalbhor 2020