A core functionality of any configuration management system is handling the full lifecycle of service and configuration upgrades.

Formula upgrades

A common task when doing formula development is iterating over formula versions via upgrading formulas of a running service while it’s live.

The use case also extends to a user upgrading a deployed service’s formula with a newer version from an upsteam formula repository.

In some cases a new formula version will also reference newer software/package versions or new packages.

More details in the formula upgrades documentation

NOTE At the moment this is the only upgrade form that Ensemble provides.

Service upgrades

There’s an interesting set of upgrade use cases which embody lots of real world usage, which has been left for future work.

One case is where an application is deployed across multiple service units, and the code needs to be upgraded in lock step across all of them (either due to software incompatability or data changes in related services).

Additionally the practices of a rolling uprade, and cloning a service as an upgrade mechanism are also interesting problems, which are left for future work.

Ensemble upgrades

One last upgrade scenario, is upgrading of the ensemble software itself.

At the moment ensemble is deployed from revision control, although it’s being packaged for the future. Currently all of the ensemble agents maintain persistent connections to zookeeper, the failure of which may be grounds for the system to take corrective action. As a simple notion of performing system wide ensemble upgrades, the software would be updated on the existing systems, and then the agents restarted but instructed to keep their existing zookeeper session ids.

Project Versions

Table Of Contents

Previous topic

Hook debugging

Next topic

Formula Upgrades

This Page