3 ms·
> For someone who just wants to deploy a project to 1 server that means there's only 400ms of down time when I restart my server. Erlang already gives you robu
by dnautics 6y ago
> For someone who just wants to deploy a project to 1 server that means there's only 400ms of down time when I restart my server.
Erlang already gives you robust primitives to do things like blue-green deploys, and even graceful transfer of server state even across versioning changes. If downtime between releases is an something you care about, you should use those, and it's likely that your downtime can be in the microseconds range regardless of the vm startup latency.
- nickjj 6y agoI don't think hot reloads in Elixir are used that often for web apps due to how much complexity / state changes need to take place. I'm basing that on replies I've seen from a lot of folks in the forums who say it's not really worth the trouble due to how much can go wrong and how involved it would be to do such a thing. Which blue-green deploy primitives are you referencing btw?
- dnautics 6y agoNot referring to hot reloads. To do a simple blue green deploy you just have to use the builtin node system to make a cluster, and use :global to detect if there are any downversion nodes, if the current node is up version, it slays a downversion node and your external restart mechanism (either erlangs heart, systemd, kubernetes, or Amazon elb, or whatever brings back the node but with the newer code).
- nickjj 6y agoDo you happen to have a working example of that posted somewhere? A blog post with code perhaps? I'm unable to find a single example of that because every search around this topic turns up things like hot reloading and a bunch of people saying not to use it.