sponsors
help promote
general information
Venue:
Google
Gordon House
Barrow Street, Dublin 4
Ireland
Questions?
About SREcon?
About Registration?
About Sponsorship?
usenix conference policies
You are here
Configuration Pinocchio: The Lies Plainly Seen and the Quest to Be a Real Discipline
Andre Masella, Ontario Institute for Cancer Research
Creating configuration files has always been pushed into the domain of “not programming,” but configuration files have a way of growing more complex. There is a struggle between keeping a configuration terse, by having the system infer information automatically, and explicit without having duplication. Either the configuration file develops embedded domain-specific programming languages (e.g., Apache, Asterisk, Postfix) or a text-based macro language is put in front (e.g., M4-based wrapper for sendmail, automake as an M4-based wrapper around Make). The middle path is to put a structured macro language in front of a configuration; a language with the smarts to semantically verify the configuration (unlike a text-based macro language) and that has well-defined, observable semantics outside the binaries being configured (unlike an in-configuration DSL).
There are three languages currently working toward this goal: NixOS, Jsonnet, and Flabbergast. Both Jsonnet and Flabbergast descend from Google's proprietary configuration language[4] with the intention of changing design decisions that made this language difficult to use.
In particular, one of the common myths is that the complexity of the configuration is related to the structure of the configuration format. That is, there is a tacit assumption that INI configurations are semantically simpler than JSON ones; which is demonstrably false. In understanding how semantically rich configurations are, writing configurations can be elevated to a real discipline that is related to but distinct from general purpose programming and, thereby, focus making configurations easier to understand, easier to write, and more sophisticated.
Andre Masella previously worked at Google as an SRE supporting the AdSense serving stack. While there, he spent most of his time refactoring the configuration files of the serving stack in Google's much-despised proprietary configuration language and developing idioms to manage the complexity. After leaving, he quested to create a configuration language with the same expressive power, but more simple to understand and write effectively, yielding Flabbergast.
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.
author = {Andre Masella},
title = {Configuration Pinocchio: The Lies Plainly Seen and the Quest to Be a Real Discipline},
year = {2015},
address = {Dublin},
publisher = {USENIX Association},
month = may
}
connect with us