How Mozilla draws the line between configuration and data while using configuration management tools
How Mozilla draws the line between configuration and data while using configuration management tools - with Brian Hourigan and Justin Dow from Mozilla Corporation.
As each quarter passes Mozilla depends on configuration management more and more. It's a formal goal to have all of our systems under configuration management. Ideally, no system should ever have data that a configuration management engine doesn't know about.
How do you draw the line between configuration data and content? If you're maintaining a web server and have a few hundred kb of data in the DocumentRoot it may make sense to store everything in a VCS. If you're maintaining a mrepo/cobbler system, people will notice (and probably complain) if you add 6GB of binary data to a VCS.
We all know backups are important. "Backup all the things" is a great motto to live by, but often it is the time you spend installing and configuring a server that is lost during a disaster. Not just the data. Configuration management can go a long way in that regard, but it might not be appropriate for everything. If you are maintaining your own RPMs, you don't want to check all your RPMs into your VCS and lug those around with you. There is a concept of "data" and there is a concept of "configuration". Both of these are very important to all aspects of systems administration, and a VCS might be appropriate for configuration and plain text data, but not necessarily for binary data. Backups might be appropriate for data, but not necessarily for configuration. Where do you draw the line? How do these strategies work together? What if you have nightly backups of your data, but not of your configuration? How much time do you want to spent restoring a backup, just to get your software's configuration back? What if your new guy accidentally inserted a space after the leading slash in his "sudo rm -rf" command and wiped out half of your server? Where do you start to get that server back up and running exactly how it was, with both the data and the configuration intact?
We will go into depth on the following points using free and open source software:
- How do you distinguish configuration data from content?
- Where should you keep it?
- How do you implement version control on data that isn't meant for a version control system?
- How do you customize this data for just a few systems?
Brian Hourigan is a systems administrator at Mozilla Corporation. Before joining Mozilla Brian spent over a decade in the web hosting industry where he was exposed to incredibly diverse computing environments.
Justin Dow of Mozilla Corporation is mostly known by his IRC nickname "jabba". He works as a Systems Administrator for Mozilla, where he manages the core infrastructure team. In his spare time he likes tinkering on classic cars and spending time with his family.