Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Puppet Labs Announces the Next-Generation Puppet Server

Puppet Labs Announces the Next-Generation Puppet Server

This item in japanese

Puppet Labs is holding its annual PuppetConf conference where it has announced a faster next-generation Puppet Server, with new management and reporting capabilities for their Puppet Enterprise product, and the launch of new Puppet Apps.

Next-generation Puppet Server

Puppet Labs has created a new Puppet Server project, an alternative to the current Puppet master adopting the same JVM stack used in PuppetDB, Clojure for new functionality and JRuby to run the existing Ruby codebase. The new server adopts a more service-oriented architecture, with the ability to run the different services in the same server for small installations, or to scale them horizontally as load increases. Luke Kanies, Puppet Labs CEO, describes a performance increase, 3x faster request response times and 2x faster catalog compile times, using the JVM based server versus a 3.6 Puppet master running on Apache/Passenger.

Puppet Server will be released in next versions of Puppet Enterprise and a preview release is already available as a drop-in replacement for the existing Puppet master.

Introducing Puppet Apps

Puppet Apps are purpose-built applications that will be released independently to the Puppet codebase, allowing for more frequent updates. Puppet Apps will be available to Puppet Enterprise customers based on their existing license, starting at Puppet Enterprise version 3.4.

The first of these Puppet Apps is Puppet Node Manager, a rules-based classifier that groups nodes based on key characteristics, like operating system, geographic location, and IP address, creating smart node collections that are automatically kept up to date based on that criteria, without manual intervention.

Puppet Node Manager will ship in Q4 as part of Puppet Enterprise 3.4. Additional Puppet Apps will be made available in early 2015.

New management and reporting capabilities

Included in the latest Puppet Enterprise 3.4 release are new management capabilities:

  • Role-Based Access Control: Granular RBAC capabilities make it possible for Puppet Enterprise nodes to be segmented so that management tasks can be delegated across teams and individuals. For instance, RBAC allows segmenting of infrastructure across application teams so that they can manage their own servers without affecting other applications. It integrates with standard directory services including Microsoft Active Directory and OpenLDAP. The new RBAC service is leveraged first by Puppet Node Manager and will be available to other Puppet Apps and services in subsequent releases.

  • Puppet Server Reporting: A new Profiler and Metrics Service tracks key metrics associated with the health and performance of a Puppet Server, collecting metrics, including active requests, request duration, execution times, and compilation load. The metrics are made available for monitoring and alerting in any third-party app, such as those that support JMX, and the Graphite server. To help get customers started, pre-packaged Graphite reports covering performance and system health are available.

Updates to the Puppet language

The next version of the Puppet language includes enhancements to make easier to write and maintain Puppet code.

The new capabilities of the language include:

  • Lambdas and iteration: Lambdas can be used with each, map, filter,... functions, applied to code blocks. Iterations are possible without the need to write code in Ruby.
  • Data system: A new data-type system allows defining class parameter types and Puppet will do type checking when the class is used.
  • Puppet templates: Templates can be written using Puppet code rather than Ruby, and they run in a container managed by Puppet.
  • Error Handling: Puppet will provide more detailed information about errors and accurately point to where the problem was detected.

Users can preview the language enhancements in the last release of Puppet, 3.7, using Puppet’s future parser, that can be enabled using parser = future in the Puppet master config, or using the --parser future command line option to the client. The language included in 3.7 is considered final, and the future parser will be the default for Puppet 4, planned to be released early 2015.

Rate this Article