Puppet: An Operating System Abstraction and Automation Framework

Luke Kanies, Founder, Reductive Labs

Track: Emerging Topics
Date: Wednesday, July 26
Time: 4:30pm - 5:15pm
Location: D135

Centralized, automated system administration, often called configuration management, is at a level equivalent to assembly -- it is rarely portable or reusable across operating system or organization, and it does not provide any abstraction from the system on which it is running.

The move from assembly to portable languages like C required two crucial steps: A library that abstracted the assembly into higher-level constructs, and a language designed to use that library to interact with the system.

The topic of this talk, Puppet, is a new configuration management framework that is portable and high-level. It includes a library for managing abstract system elements instead of system state (e.g., users instead of /etc/passwd, services instead of running processes) and a declarative object-oriented language that uses that library to manage systems.

Configuration management is largely useless without the ability to treat the network as a unit, so Puppet's language can be used to compose the configuration of all managed machines using abstract and reusable classes and components. Each machine's configuration is compiled centrally and distributed using a simple transportable format and is then applied locally by each client.

Puppet's high-level portability finally offers system administrators the chance to be organization and operating system agnostic and allows for the creation of abstract, reusable, and sharable system classes and components that can be enhanced and maintained just like any other software product.