Why do you have to reload haproxy? When you update the configuration?
I reload nginx all the time (nginx -s reload) and I'm not sure if that is a true zero-downtime reload either.
Interesting hack nonetheless (stopping SYNs.)
Why do you have to reload haproxy? When you update the configuration?
I reload nginx all the time (nginx -s reload) and I'm not sure if that is a true zero-downtime reload either.
Interesting hack nonetheless (stopping SYNs.)
It is a very useful approach and I use it all time as well.
I implemented the same in node by using the cluster api [1].
[1]: http://joseoncode.com/2015/01/18/reloading-node-with-no-down...
I believe it's API let's you enable/disable existing configured servers but not dynamically add or remove them.
And to be sure; being able to do ten reloads every second with few ill effects enables different, more nimble systems engineering.
But if we assume 2000 requests per second, per box - fighting ~100 reset connections a day (assuming two ha-proxy reconfigs) doesn't really seem worth the effort - packet loss and other outages would probably(?) domminate anyway.
It depends on what you do. I've seen shops (successfully and, IMO, correctly) scaling AWS instances for services with a threshhold of every fifteen minutes, and I've seen Mesos clusters dynamically spinning up web instances much more nimbly than that (think every two minutes under spiky load--the instances would come up in five seconds, so it didn't hurt to down them).