Video recording and post production done by OpenStack Foundation.
While many OpenStack operators use Puppet to manage their deployment, either using home grown modules or via a product such as Fuel, orchestrating and reacting to changes in the cluster using Puppet can be difficult as Puppet has no elegant way to signal remote nodes. Serf is a relatively new project written in Go and using the Raft protocol that can be used to detect events within a cluster and react to those events.
As an Openstack operator, using the two in concert leads to a neat way to react to changes in cluster membership, load and failures using Serf without compromising the configuration management of the system via Puppet. This is done by running Puppet in a fully data driven way, with all data ingested from heira, and letting a Serf agent modify that data based on events it sees in the cluster before pushing events out to the rest of the cluster to realise the change.
This session will cover the basics of how we use Serf in conjunction with Puppet to manage production OpenStack clusters at Aptira, show off the potential benefits, some hiccups we discovered along the way and provide a basis for discussion of using cluster tools Serf with configuration management systems like Puppet.