Graceful upgrades in Go

The idea behind graceful upgrades is to swap out the configuration and code of a process while it is running, without anyone noticing it. If this sounds error prone, dangerous, undesirable and in general a bad idea – I’m with you. However, sometimes you really need them. Usually this happens in an environment where there is no load balancing layer. We have these at Cloudflare, which led to us investigating and implementing various solutions to this problem.

Coincidentally, implementing graceful upgrades involves some fun low-level systems programming, which is probably why there are already a bajillion options out there. 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. For the impatient, the code is on github and you can read the documentation on godoc.
The basics
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.
We know that HTTP uses TCP under the Continue reading
Perhaps the biggest benefit of containers is that they can be managed by Kubernetes, which is a pre-defined operational model.
6WIND has been gaining customers by offering a replacement to Brocade’s vRouter, which was purchased by AT&T and taken off the market.
The monitoring tool already offers out-of-box support for VMware's and Cisco’s SD-WAN services.
The new service, called Cb ThreatHunter, is essentially a cloud-delivered version of the company’s on-premises endpoint detection and response device.
The Eirini and CF Containerization projects build on the Cloud Foundry Foundation's paced adoption of Kubernetes.