upvote
Well why have downtime if you can avoid it with a bit of work?

But I do agree the poster should think about this. I don't think it's 'off' or misleading, they just haven't encountered a hardware error before. If they had one on this single box with 30 databases and 34 Nginx sites it would probably be a bad time, and yes they should think about that a bit more perhaps.

They describe a db follower for cutover for example but could also have one for backups, plus rolling backups offsite somewhere (perhaps they do and it just didn't make it into this article). That would reduce risk a lot. Then of course they could put all the servers on several boxes behind a load-balancer.

But perhaps if the services aren't really critical it's not worth spending money on that, depends partly what these services/apps are.

reply
Besides, "Migrated 34 websites in one go with zero downtime" looks good on a resume, and is actually a useful skill.
reply
I run internal services on DO that I've considered moving to Hetzner for cost savings.

Could I take it down for the afternoon? Sure. Or could I wait and do it after hours? Also sure. But would I rather not have to deal with complaints from users that day and still go home by 5pm? Of course!

reply
to be fair a lot of ppl still run this way and just have really good backups, or have an offline / truly on-prep server where they can flip the dns switch in case of true outage.
reply
Yes and for many services that is totally fine. As long as you have backups of data and can redeploy easily. It's not how I personally do things usually but there is definitely a place for it.
reply
Good point. I run single big servers. But I can bring them down every weekend for the entire weekend if I need to.
reply
There is software that can help a lot.

Also, in general, you can architect your application to be more friendly to migration. It used to be a normal thing to think about and plan for.

VMware has a conversion tool that converts bare metal into images.

One could image, then do regular snapshots, maybe centralize a database being accessed.

Sometimes it's possible to create a migration script that you run over and over to the new environment for each additional step.

Others can put a backup server in between to not put a load on the drive.

Digital Ocean makes it impossible to download your disk image backups which is a grave sin they can never be forgiven for. They used to have some amount of it.

Still, a few commands can back up the running server to an image, and stream it remotely to another server, which in turn can be updated to become bootable.

This is the tip of the iceberg in the number of tasks that can be done.

Someone with experience can even instruct LLMs to do it and build it, and someone skilled with LLMs could probably work to uncover the steps and strategies for their particular use case.

reply