When COVID started to force countries into lock-down, our company was in a bad situation the current software would not have been able to handle, and we were forced to rush out a new product we’ve been working on for a while much faster than expected.
For the coming months, we had to hot-fix a lot of bugs, sometimes we had up to 20 deploys a day. And the software was in use, so any deploy with downtime in that frequency would become very annoying very fast.
We are deploying this project almost exclusively with upgrades via edeliver (have done so for ~a year now). Once we figured it out, it was actually a breeze and works very well.
Upgrades do have their pitfalls, and some things just need restarts - but we can live with these occasional downtimes (they’re not longer than a few seconds anyways now.)
I am sure there will be a lot of “should have used docker” kind of advice coming at me, but the reason why we did not use docker is simple and there was just no way around it: no one in our company knew how to set it up correctly, whereas we know how to run a vanilla Linux server… And we did definitely not have the capacity to figure out a new technology - so deploying upgrades was 100% the right decision, and I don’t regret it.
Like I said, it works and the few times we do have to do a hard restart are fine.