Puppet has come a long way since its early days as an alternative to cfengine. The open source configuration management system has grown by leaps and bounds in the last few years, and is now officially taking on the enterprise. We talk with Puppet Labs founder and CEO Luke Kanies about what that means, and where Puppet is going.
If you're not familiar with Puppet, you might want to take a look. Puppet is a framework to simplify system administration, with a large (and growing) community of users and developers who not only improve Puppet, but also share recipes for system administration for reuse in other environments.
It's already being used in the enterprise, of course, but today the company made it official with the announcement of Puppet Enterprise: A fully supported, tested, and tuned release of Puppet that streamlines installation and comes with support and services for enterprise deployments. What's next? We asked Kanies to give the details about the enterprise release and where Puppet is going, plus some thoughts on the open source landscape.
Linux.com: Is there anything in the enterprise release that's not in the open source edition of Puppet?
Luke Kanies: All of the software packages in PE are already-released open source versions of that software. However, there are a couple of small pieces of software that are only released as part of PE. Over time, the list of software included in PE but not released as open source will increase, but we'll stay consistent on that split between already-released open source software or separate commercial packages.
Linux.com: Today's release was announced as "the first commercially supported version" of Puppet — but Puppet Labs has been offering support previously. How's this different?
Luke Kanies: Yes, we have been supporting Puppet for our customers since 2006. However, we could never be very specific about what we supported – we just had to do our best to support our customers in whatever way they were using Puppet, we couldn't provide them a clear best practice for exactly how they should install Puppet in their environment, nor could we be clear on the difference between a supported and an unsupported platform.
With Puppet Enterprise, we have a clear list of which platforms we support, and for those platforms, we deliver not just Puppet, but all of the dependencies necessary to scale and manage Puppet in even the largest environments. This configuration will embody our recommended best practice, and we will be able to support all of the pieces that are part of a Puppet infrastructure, which we previously could not realistically do in most installations.
Linux.com: What does Puppet Enterprise support entail? Does this include troubleshooting Puppet recipes, for example?
Luke Kanies: Yes, we often help debug recipes for customers. We're a customer-focused company, so support can be summarized as "whatever it takes to help the customer get the most out of Puppet". That includes setup, scaling and performance management, and debugging. We obviously can't rewrite all of our customers recipes, but at the same time, we're the Puppet experts and are usually in a good position to help them understand the problem they're having and work through to a solution.
Linux.com: There's an impressive list of companies using Puppet, but how are they using Puppet?
Luke Kanies: We have multiple case studies mentioned on the web site — but for example, Zynga uses Puppet to manage their hybrid infrastructure running on premise and on Amazon EC2, Shopzilla uses Puppet to manage its private cloud, and Citrix uses it to manage a few thousand machines in their core infrastructure.
Linux.com: The computing landscape has evolved quite a bit since Puppet came on the scene. How has that effected the development of Puppet?
Luke Kanies: Cloud computing has obviously changed a lot of things, and some of them aren't just marketing. :) When I started Puppet six years ago, you couldn't realistically launch 1,000 machines a week, but now it's just about expected by leading IT organizations.
Puppet is already fantastically positioned for this kind of environment, and in fact, we can point to multiple companies like Zynga who are using Puppet specifically because of its suitability for this kind of demand. However, it does add stresses to the system that didn't exist a few years ago, and some things have been added to our roadmap as a result.
In particular, our acquisition of the open source mCollective project last year was targeted at this problem – at scale, traditional RPC systems do not scale nearly as well as message passing systems, and mCollective was our first stake in the ground toward moving Puppet to a bus-based architecture.
In terms of the actual development process, git was a fantastic move forward for us around 2008 when we switched to, and GitHub has taken the development world by storm. They're a fantastic company with a fantastic product, and they're almost single-handedly reframing how developers collaborate.
Linux.com: Even though we're more of a Linux crowd at Linux.com, many of the admins who read the site are administering mixed networks. How's the Windows release of Puppet coming along?
Luke Kanies: Puppet does run on Windows, but not yet at a level we can currently support commercially. We expect to have that full commercial support in Q3 of 2011.
Linux.com: What's on the table for upcoming releases of Puppet? Any features we should be looking for?
Luke Kanies: As mentioned above, deeper integration with mCollective and support for message buses at the heart of Puppet are upcoming. In Puppet itself, we're also working hard on building much more comprehensive CLI tools, along with our Puppet Data Library which provides much better portability for Puppet modules by extracting variant data.
Outside of Puppet itself, we're building some applications to get a lot more out of the data Puppet produces — look for a compliance manager to track changes to your infrastructure, and a CMDB solution that gives you a comprehensive view of everything you're managing and all of the changes to it.
Linux.com: Outside of Puppet, what's going on these days in open source that you're excited about? Any game-changers that you see coming?
Luke Kanies: No question that GitHub is changing open source more than anything else I see. Our job interviews almost always involve assessing candidate's code on GitHub, we get most of our collaboration directly through GitHub, and while we still host our own Puppet repos, I think everyone gets our source from GitHub.
Outside of technology, I'm pretty excited that people seem to have stopped talking constantly about whether you can make money with open source and have just gotten back to building the companies they want to build. Puppet is open source for strategic reasons, and it wouldn't be if I thought I couldn't build a great company to support it. All of the conversations around the MySQL acquisition were important, but they were also a huge distraction from the daily life of building and running companies and projects.
In terms of game changers, I don't think we're the only ones going hard after message buses. I think they'll reshape corporate infrastructure in the next 5 years, and this will all be lead by the open source projects like RabbitMQ and ActiveMQ. On a related note, the fact that VMWare has acquired a large collection of complementary open source companies — Spring, Zimbra, RabbitMQ — puts them in the pole position to do something really interesting, but I don't yet know what that thing is or whether they'll succeed.
Linux.com: Any final thoughts?
Luke Kanies: It's all about the data. Puppet knows every host on your network, everything relevant to configuring those hosts, the last time they checked in, every resource managed on them, all of the dependencies between those resources, and every change that's happened to any of those resources. This data is the key to how Puppet actually works -- its support for simulation mode, its applicability to auditing and change control, and much more — and it's also the core of where we'll be innovating in our products over the next couple of years.