Why your configuration should have a schema
Configuration comes in many forms, which makes managing configuration more difficult that it could be. Not only do applications use different file formats (INI, YAML, JSON, XML, etc.) they use different structures. Worse, those structures tend to be adhocly specified and to grow over time.This means tools which seek to manage configuration often end up encoding that structure in code; whether as a Puppet type, a DSC resource or a Chef custom resource. Alternatively we drop down a level and just manage a file on disk with a template.What if every configuration had a schema? This talk will show examples, and look at a few of the benefits of adopting configuration schemas, including being able to:* Validate configuration before applying it* Autogenerating code in different tools to manage it* See how the configuration surface has changed between software versions
Gareth Rushgrove is a product manager at Docker. He works remotely from Cambridge, UK, helping build interesting tools for people to better manage infrastructure. Previously he worked for Puppet and before that the UK Government Digital Service focused on infrastructure, operations and information security. When not working he can be found writing the Devops Weekly newsletter or hacking on software in new-fangled programming languages.