We know that HTTP uses TCP under the hood, and that we interface with TCP using the BSD socket API. ![]() So what does it mean for a process to perform a graceful upgrade? Let’s use a web server as an example: we want to be able to fire HTTP requests at it, and never see an error because a graceful upgrade is happening. For the impatient, the code is on github and you can read the documentation on godoc. Read on to learn what trade-offs there are, and why you should really really use the Go library we are about to open source. We have these at Cloudflare, which led to us investigating and implementing various solutions to this problem.Ĭoincidentally, implementing graceful upgrades involves some fun low-level systems programming, which is probably why there are already a bajillion options out there. Usually this happens in an environment where there is no load balancing layer. If this sounds error prone, dangerous, undesirable and in general a bad idea – I’m with you. ![]() The idea behind graceful upgrades is to swap out the configuration and code of a process while it is running, without anyone noticing it.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |