We were at FOSDEM in Brussels last weekend (OK, like every year, and like thousand of others – yes it’s that good an event!).
Alongside a huge number of interesting talks, events and people, of particular interest to us was the Configuration Management DevRoom, organized by James and Nigel from Puppet Labs. It hosted brilliant talks all day, ranging from introducing tools (Chef, Vagrant, Geppeto, FusionInventory, GLPI, OPSI, etc), best practives and real-world feedback from small companies up to the aviation industry.
We presented a session about Disaster Recovery, telling the tale of how things went massively wrong with our production systems, and how using configuration management saved us. The slides below include an introduction to Cfengine and some of the reasons why we chose it in 2009 and still love it.
A series of posts on this blog will go into more detail about these reasons in weeks to come – stay tuned!
Thank you to all those who could wake up early and attended the talk. The room was completely full, so for those who couldn’t get it because of the large attendance, apologies!
Two major wishlist items have come out of our experience:
- Backup and Configuration Management tools need real integration. Configuration Management is often highlighted as a life-saver for disaster recovery, but most people only go as far as automating service installation and configuration. Fully rolling out a service requires restoring backups too.
- How can we automate our backup restoration?
- How can we contact the “backup manager” to get the latest data and put it in the right place, the right way? (copy files, reload databases then restart services, or even update firewall rules)
- How can we check whether our current data is up-to-date or not?
- Virtualization provisioning should be managed too. Our production systems rely on several big servers running many small virtual machines. Restoring these was the most time consuming aspect of our disaster recovery.
- With abstraction layers such as libvirt now covering almost all modern virtualization systems, why do our configuration management tools not tie in to them better?
- How can we define a list of virtual machines to set up, their parameters, the operating system to install and it’s installation settings, so that we can sit back and watch tools doing our work?
On this last point, I must mention that Cfengine Nova (the commercial version of Cfengine) already ties into libvirt to define virtual machines and change their settings. This is awesome, but installing the operating systems by hand is still a pain!
Any ideas or suggestions out there?