I have decided, should any of my kids ever develop an interest in Computer Science, that I'm going to send them to a Scandinavian university. Clearly, these institutions of higher learning have got it going on.
I recently came to that conclusion after meeting Mark Burgess, who put together an entire configuration management system in 1993 while doing a post-doctorate fellowship at the University of Oslo, just because he was tired of managing his systems manually with scripts and wanted to do it better.
Which is right up there with some other Scandinavian student named Linus who ended up putting together the kernel for some operating system you might have heard of here and there.
Burgess isn't one of those smart people that exudes smart in a way that chafes normal social conventions. When you talk to him, he's pretty matter-of-fact about what he's put together in Cfengine, the open source configuration management tool that was one of the first management tools to manage systems by trying to remove the differences between operating systems using a single, common language.
In the olden times (the Nineties), managing systems was either done using manual scripts to get computers to perform as intended, or else system administrators would attempt to build completely homogeneous server farms, so management could be done with a one-size-fits-all approach. But the latter approach is hard to achieve, Burgess explained, and the former is really very tedious--something he discovered himself when he found himself managing a heterogeneous environment at the University of Oslo.
Instead of building a system that would force the user to compensate for all of the differences between operating systems, Burgess went the other way. Cfengine allowed users to "describe a desired state for the system, then it would be implemented," Burgess explained. This state-based approach meant that all of the cludgy system differences would be handled by the Cfengine code, freeing the server admin to just specify what needed to happen. At the core of the Cfengine software is the Cfengine language, which allows users to describe the states they want for their systems.
After he got going with Cfengine, Burgess soon realized that no one else was really working in this direction, as most other configuration management systems were just variations on automated shell scripting. With Cfengine, admins can approach configuration management using a tool that's analogous, Burgess explained, to CSS style sheets for Web pages. HTML is still coded for individual pages, but CSS enables web developers to control the overall look and feel of the entire web site. This is how Cfengine works: individual servers in a data center have their own unique configurations and tasks, but at the end of the day, Cfengine gets them to to act in concert with each other.
What I found interesting about Cfengine is that Burgess originally started Cfengine as a scientific research project, and even though he founded a commercial company in 2008 to develop and support commercial extensions for Cfengine, that same level of academic rigor still pervades through the project. Burgess still does research on systems management, and has developed the Promise Theory, "model of voluntary cooperation between individual, autonomous actors or agents who publish their intentions to one another in the form of promises," from his work on Cfengine.
Burgess chuckled when I mentioned this interest, because the said that while the academic framework surrounding Cfengine "certainly comes from me," the approach is also a source of contention in the Cfengine community.
"Some people love it, and some people absolutely hate it," Burgess said, adding that the latter group feels as if the academic ideal does not suit the needs of the real world.
For his part, Burgess feels good about the scientific model. "I feel a little bit of validation... Cfengine has really started a lot of research in this area."
The research-oriented ideal is also why Cfengine is open source: "Science is about keeping things open for criticism and inspection," Burgess explained.
So far, the success of Cfengine seems to bear this approach out, as well.