/plushcap/analysis/cloudflare/graceful-upgrades-in-go

Graceful upgrades in Go

What's this blog post about?

This text discusses the concept of "graceful upgrades" in systems programming, specifically for web servers. It explains how to swap out a process's configuration and code while it is running without causing any noticeable errors or downtime. The author presents various methods for achieving this, including using `Exec()`, `ListenWithReusePort()`, and the NGINX approach of fork and exec with shared sockets. They also introduce their own Go library called tableflip, which implements graceful upgrades in a manner similar to NGINX. The text covers key points such as race conditions, socket sharing, and the need for flexibility in handling different socket-based protocols.

Company
Cloudflare

Date published
Oct. 11, 2018

Author(s)
Lorenz Bauer

Word count
1677

Hacker News points
None found.

Language
English


By Matt Makai. 2021-2024.