I’m trying to wrap my head around “zero downtime” config. My current setup has a couple of Discourse instances for different communities. Both have data/web 2 container configuration. I have an Nginx at the host level which handles SSL termination and uses a socketed connection that’s handed off to the container’s Nginx.
Have found these two topics of interest:
So I’m trying to understand this process. There seems to be a bit of assumed knowledge for accomplishing this. Any help someone could give here would be great.
The first thing I’d like to understand is how to know when a data-container needs to be upgraded. It seems there are instances where you can’t just rebuild the web-container. How do I know with certainty when this is the case? Would this be all cases where the upgrade option is greyed out in the admin UI panel for upgrades, along with potentially custom work with themes and plugins? Would I be able to know with certainty by looking through database schema migrations? Would I need to have a staging around and just attempt it to know with certainty?
The next thing I’d like to know is how to run a zero-downtime upgrade. The way the two links read to me, you would be doing a rebuild of the data-container and web-container anyways? I’m not able to decipher this. Would I need separate data/web containers in order to accomplish zero-downtime in the end?
Any guidance would be awesome! Probably I could spend a lot of hours and figure out something that appeared to work, but would rather stand on the shoulders of giants and not have to find out edge-cases the hard way (in production) if at all possible.
If you require any more information on my particular setup, please ask for clarification. I will reply directly and update this post.