I have run out of superlatives to try to express how excited I am about this release, so I'll just put it out there: The Puppet 5 Platform is available for download now.
As you may remember, we wrote about the upcoming release of Puppet 5 last month. As we said in that blog post, the primary goals of this release are:
- To standardize the version numbering of all the major Puppet components (Puppet Agent, PuppetDB, Puppet Server) to 5, as a first step towards delivering these components as a unified platform.
- To include Hiera 5 with eyaml as a built-in capability.
- To provide clean UTF-8 support.
- To move network communications to fast, interoperable JSON.
Our current Ruby versions have reached their end of life, so we're moving to MRI Ruby 2.4 on the agent and (opt-in) jruby9k on the server. The Puppet Server metrics service that was exclusive to Puppet Enterprise is now available in open source Puppet.
In addition to the new features, there are some substantial performance boosts waiting for you. According to our performance testing (thanks Doug Rosser!):
- Puppet 5 agent run times were 30 percent lower at equivalent loads. (We went from an average of 8 seconds to 5.5 seconds.)
- Puppet 5 server CPU utilization was at least 20 percent lower than Puppet 4 in all scenarios.
- CPU utilization for Puppet 5 PuppetDB and PostgreSQL were also lower in all scenarios.
- Puppet 5 catalog compile times reported by Puppet Server were 7 to 10 percent lower than Puppet 4.
- Puppet 5 was able to scale to 40 percent more agents with no deterioration in runtime performance. For comparison, Puppet 4 agent run times became dangerously long when scaled to the same number of agents.
This is a semver major version, which includes some backwards incompatible changes and removals of deprecated capabilities, but we have worked hard to retain Puppet 5's compatibility with Puppet 4.x modules. With a few careful (and hopefully rarely used) exceptions, module code that works under Puppet 4 should not need any revision to work under Puppet 5.
For a full list of changes and download instructions, check out the full release notes: https://docs.puppet.com/puppet/5.0/release_notes.html
I'd like to send out huge thanks to everyone who worked on this release, and to community members who provided feedback on both the design discussions and early preview releases. Extra special thanks to Josh Cooper, the Puppet software engineer who shepherded this release to completion. It has a special significance for me since it's version 5, and (by total coincidence!) yesterday was my five-year anniversary at Puppet :) I think it's going to be a great release series.
Eric Sorenson is a director of product management at Puppet.
- Read the documentation for this release.
- Try out Puppet 5 Platform by installing the "
puppet5-release" package from https://apt.puppet.com/ or https://yum.puppet.com/ for deb- and rpm-based Linux distributions. For Mac or Windows systems, go to https://downloads.puppet.com/ and click on mac/ or windows/, then navigate to the