Announcing Puppet Enterprise 2.5
Just over a year ago, in February of 2011, Puppet Labs released our first commercial product, Puppet Enterprise. We were about 25 people at the time, and our revenue up until then consisted of training, services, and support for our open source Puppet project. That release taught us a lot, and it was our first major step in moving us to a product company.
In the intervening year, a lot has happened. We’ve put out a minor (1.2) and major (2.0) release of Puppet Enterprise and announced another round of funding, led by Kleiner Perkins and including new investors VMware, Google Ventures, and Cisco. Along with others, we’ve continued to push DevOps and its transformation of IT operations from a cost center to a source of competitive advantage. In addition, we’ve grown from 25 to 75 people. It’s been a crazy year, but it’s been a great year.
It looks like this quarter is going to be a pivotal turning point at Puppet Labs, so I’m proud to have a release close the quarter for us. As of this morning, you can download Puppet Enterprise 2.5, an update to our major release last fall with some great new capabilities.
The first major new capability is support for Windows. With this addition, Puppet Enterprise and Puppet provide the widest platform support of any IT automation product. We have commercial support for the major Linuxes like RHEL, SuSE, and Debian, plus Solaris, and now Windows, and Puppet runs great on OS X, FreeBSD, AIX, HP-UX, and basically every Linux distribution, such as Gentoo and Arch.
The big benefit to this support is that system administrators can now use a single configuration language and platform across their entire infrastructure. With our support for Cisco and F5 devices, you can even get to the network layer for some problems. You can also build Puppet configuration modules that will work identically across both Linux and Windows machines.
Speaking of modules, the next major update is that Puppet Enterprise 2.5 includes completely revamped support for the Puppet Forge, our online configuration module marketplace. The Puppet Module Tool (PMT) user interface has been thoroughly redone, and it now also has support for dependencies. Just by installing PE you can find, download, install, and manage configuration modules from the Puppet Forge.
They have a saying in science that a couple of months in the laboratory can often save a couple of hours in the library, and this support should hopefully push people to spend a couple of hours on the Puppet Forge to save months of individual development. And with over 300 freely downloadable configurations spanning everything from MySQL and Apache to Hadoop and OpenStack, Puppet Forge has something for everyone. This dramatically shortens the amount of time you need to really solve an automation or deployment problem. In addition, you benefit from community-driven best practices, with all that shared code out there, rather than having to just rely on what standards you’ve developed internally.
Look for much more development on the Puppet Forge this year, and this is a great first step to demonstrating how we’ll be investing in it. We’re especially proud of the amount of design effort that went into PMT’s new interface. As I said at PuppetConf in 2011, we’ve become a design-driven company, and this new work is starting to show how that shift will affect the non-GUI aspects of our products.
The next Puppet Enterprise 2.5 capability is not all that large, but is very important. Puppet Enterprise is now shipping with role-based access control (RBAC). This has been asked for by nearly all of our customers, and we had to spend a lot of time simplifying and consolidating our GUI platform in order to make it possible. There is still a lot of work to do simplifying Puppet’s whole security model, and the RBAC we’ve shipped is about as simple as we could make it, but you’ll find this to be very easy to use and, frankly, a bit attractive.
The last major piece of Puppet Enterprise 2.5 is built to take a lot of the capabilities and benefits of big data and allow our users to apply it to their infrastructure. And Puppet itself is a big source of data, producing for some customers more than 750 GB of information every day about status and change in their infrastructure. All this data can be great sources of additional insight and further automation.
We’ve wrapped everything in Puppet that has to do with data into what we’re calling the Puppet Data Library (PDL). This includes all of the data types in Puppet: The software and hardware inventory data, which tells you every host you’re managing and every package, service, user, or whatever that you’re managing on them; the run reports, whether enforcement mode where you’re actually changing machines or simulation mode where you’re just seeing what a configuration would do without modifying the system at all; and the configuration graph, which includes all of the software inventory, plus all of the dependencies between them.
In addition to the data types themselves, the PDL includes completely open formats. These are primarily JSON, with some YAML, and the configuration graph can easily be converted to ‘dot’ format that is readable by graph applications like OmniGraffle, GraphViz, and Visio. This allows you to inspect your configurations, confirm they are built as you expected, and make simple optimizations that without this visualization might be impossible.
Beyond the data and formats, the Puppet Data Library includes our open RESTful APIs. These are the exact same APIs that we build our own applications on, so we’re confident they’re sufficient to build great applications.
The PDL’s combination of open data, open formats, and open APIs is very powerful. Our users are already doing interesting things with it, like building automated reports that take serial numbers from the hardware inventory and query the hardware vendor’s API to determine whether any warranties have run out. We’re also building all of our commercial applications on the PDL; the best example is Puppet Enterprise’s compliance application, which we shipped in Puppet Enterprise 1.2. It uses standard types and interfaces from the PDL, and builds a new workflow and interface with a focus on auditing rather than on management.
While Puppet Enterprise 2.5 is a minor release, it’s a very big release for us, and it’s one we’re very proud of. It also does a great job of laying the groundwork for our upcoming releases. You should be able to almost predict our direction based on where we’ve spent time here, and we hope you’re pleased with the effort.