DEV Community

Cover image for 0 downtime is hell, so prepare in advance
Eduard Romanyuk
Eduard Romanyuk

Posted on • Edited on

0 downtime is hell, so prepare in advance

TL;DR

Quick introduction to what is blue-green deployment with some useful links at the end

Preamble

Some time ago my team lead told me to prepare a document about "0 downtime" deployment for developers usage. I knew something about it and thought that it would be easy task for me, but after some research I understood that it was about an endless rabbit hole. And if you want to implement "0 downtime" deployment you need to be very very cautious and better double-check everything. This post is just a warning for you my dear friend.

Blue-green deployment

I will not lie to you. It is the only technique I know, so let's check its basic idea. Martin Fowler article

Blue-green deployment is an application release model that gradually transfers user traffic from a previous version of an app or microservice to a nearly identical new release—both of which are running in production.

The old version can be called the blue environment while the new version can be known as the green environment. Once production traffic is fully transferred from blue to green, blue can standby in case of rollback.
© RedHat

Sounds pretty easy, but the hardest part of this it is making incompatible changes in compatible way (remember that you try to run previous and current version at the same time). So wherever you have separate layers you need to think about compatibility (client-server, server-database, etc.)

I will not give you any practical advice, because I have only theoretical knowledge about this topic yet. So check more experienced authors by the links below.

Useful materials

Afterword

Hope this post was useful for you guys. Feel free to share any feedback or thoughts.

Top comments (0)