There’s a new tool in town! It’s called ysco, and it provides managed automated updates for Go services, without requiring changes to the application.
The launch party was at the Go Rotterdam meetup earlier this evening. Special thanks to the organizers for running a well-organized & fun event, and bringing the Go community together. This post follows the same structure as the talk, with some additional information.
Ysco will start the application and periodically check for updates in the background. Once an update is found, depending on the configuration/policy, ysco can fetch a new binary, stop the application (by sending a TERM signal and waiting), replace the binary, and restart the application.
You are in control over which updates get installed, and when. That’s why ysco does “managed automated updates”, not just “automatic updates”. If you don’t want to install new updates automatically, you can set up notifications for available updates, and update at your convenience with a single click through the ysco admin web interface.
The magic is in how ysco knows when updates are available, and how it gets a binary for a new version. Before getting into those details, let’s take a step back and look at what “a new version” means.