Get the Flash Player to see this player.
A Puppet Story: Systems Building Systems
Andrew Clay ShaferOther formats
After years of automating systems with CFEngine, Luke Kanies, Puppet's primary author, had ideas about automation that he could not express with existing tools. He tried to fork CFEngine, but threw up his hands at the C code. As a sysadmin, his obvious next step was to try it with Perl. More frustration... Python was getting a lot of attention, but after investing tens of hours, Luke still couldn't express the basic system. Enter Ruby, Luke went from never seeing the language to a functional prototype in 4 hours! And Puppet was born... (thank you Matz!!!) Now Puppet is available in most Linux distributions and supported on Solaris and OS X, with installations provisioning and managing 1000s of hosts in places like Google, Twitter and EC2. The Puppet project provides 3 things 1) a declarative DSL for expressing the configuration of a system 2) a client/server/certificate authority system that handles authentication, authorization and transport using SSL for communicating the configuration from the centralized repository to managed hosts and 3) a resource abstraction layer to provide portability across platforms, where resources are files, users, groups, packages, services, cron, etc... All Ruby! This talk will begin with a bit of background on system automation, followed by Puppet's basic philosophical underpinnings, and how those are manifested in Ruby. This will highlight what Puppet is currently used to do in production environments at scale, while comparing and contrasting Puppet with tools like Capistrano. The talk will finish with the present state of the project, discuss some of the code and process challenges illuminated along the way and conclude with what is on Puppet's horizon.
Videos are in h.264 quicktime format. We recommend Miro for viewing these files.
Back to Conference Schedule
Presenters retain full rights to the content of their presentations, and have released them under the Creative Commons Attribution-ShareAlike license.
