Containerbuddy 1.0

Containerbuddy is now ContainerPilot

Containerbuddy has been renamed ContainerPilot to better align with autopilot pattern. ContainerPilot makes implementing autopilot pattern applications straightforward and easy.

Mentions of Containerbuddy in this post should be read as references to ContainerPilot.

In October we introduced Containerbuddy to the world. Today I'm happy to announce we've released the first stable version 1.0.For more information about ContainerPilot, visit our ContainerPilot page, visit the Github page or visit our documentation page.

Containerbuddy 1.0!

When we started work on Containerbuddy, we were trying to solve for the problem of making applications responsible for managing service discovery. But as we used Containerbuddy in other projects, we began to realize that the pattern we'd developed for service discovery applied to other aspects of a container's lifecycle: start-up, on-going orchestration, and graceful shutdown.

This culminated in the development of the autopilot pattern, an approach to application and infrastructure design that automates the repetitive and boring operational tasks of an application, including startup, shutdown, scaling, and recovery from anticipated failure conditions for reliability, ease of use, and improved productivity.

Since the first alpha release of Containerbuddy, we've added:

  • user-defined preStart (formerly onStart), preStop, and postStop behaviors behaviors
  • support for etcd and future expansion of discovery backends
  • environment variable interpolation in the Containerbuddy configuration
  • configuration reload on SIGHUP
  • marking nodes for maintenance via SIGUSR1
  • immediate deregistration of nodes from the discovery service on exit
  • user selection of network interfaces to advertise
  • support for tags in the discovery service
  • reaping of child processes
  • added an integration test suite and TravisCI build

Containerbuddy is a small project, but this release consists of the effort from 43 pull requests from 6 contributors, only half of whom were Joyent employees. A special thanks to Justen Walker from, who has contributed a majority of the code in the project at this point.

Getting started with Containerbuddy

Please see our Containerbuddy implementation guide for a complete walkthrough of how to build applications that self-configure for easy deployment and scaling.

To see Containerbuddy in action, take a look at these videos:

Post written by Tim Gross