CFEngine 3.6.5 released: Red Hat 7 and performance enhancements

March 12, 2015

We’re happy to announce that CFEngine 3.6.5 is now ready! The new release has improved support for Red Hat Enterprise Linux 7 and CentOS 7, as well as other distributions using systemd. In addition, performance of the agent in the Enterprise edition has been greatly improved.

Red Hat Enterprise Linux 7 support

As CFEngine 3.6.3 introduced experimental support for Red Hat Enterprise Linux 7, the main outstanding issue was proper management of CFEngine processes with systemd. Systemd support is now integrated into the packages and a systemd class is defined on systemd-enabled platforms. Also note that services promises already detects and supports systemd. For 3.6 there are new packages for Red Hat 7, so make sure you pick those for this OS family version (only). These packages will only work properly on Red Hat 7, CentOS 7 and similar, but not on previous versions of the operating systems. The Enterprise hub does not yet support Red Hat 7, but the Enterprise agent and the community edition does. We plan to unify these packages in 3.7, so that there is one package for each OS type. If you’re interested in the details, you can find the CFEngine buildscripts on on GitHub. Also see the Known issues documentation page for platform-specific sections and please report any other issues you find in the issue tracker.

Enterprise agent storage performance enhancements

CFEngine is known for its lightweight footprint and high performance. This is very important in environments with shared resources, like private clouds and HPC, as well as in resource-constrained environments like connected and embedded devices. The Enterprise edition stores reporting data locally before it gets transferred to the hub, which naturally results in reads and writes on persistent storage. The CFEngine Enterprise 3.6.5 agent brings enhancements here in two key areas: reducing read and write operations (IOPS) and lowering storage consumption. By measuring storage activity side-by side with New Relic, you can clearly see the following optimization: 3.6.5 has 70% reduced I/O rate and 60% lower IOPS compared to 3.6.4. You can also have a look at the storage statistics for 3.6.4 and 3.6.5 individually for more details. Secondly, the 3.6.5 Enterprise agent installation consumes about 35 MB of space in /var/cfengine on Linux, a reduction of about 20% since last release. This is seen after running the agent over some time. There are still some opportunities for optimizing the agent storage performance, you can watch this Redmine issue if you are interested in the details and progress on further enhancements.

Dashboard alert usability enhancements

The usability of alerts has been further improved in 3.6.5. If you have no alerts defined for a certain priority, these are now in the background so that defined alerts more clearly stand out on the dashboard. The flow has also been enhanced by only including the widget you clicked in the widget drill-down, while still allowing the option to show all alerts in one page.

Other changes

Deleting hosts from the CFEngine Enterprise UI has been optimized significantly by adding select database indexes. If you delete several hosts from the Enterprise UI or API, you will easily notice this improvement. Package inventory discovery for the Enterprise edition is now more tightly controlled using ifelapsed in masterfiles, so that it will happen at most once a day per host. This should further enhance performance and lower network consumption. Exported reports generated in the Enterprise edition are stored in /var/cfengine/httpd/htdocs/tmp on the hub. They have now gotten an expiry time of 30 days in order to not fill up the disk. This setting can be adjusted with the variable purge_scheduled_reports_older_than_days in masterfiles/def.cf. To include the last stability and security enhancements, PHP was upgraded to version 5.4.38 on the Enterprise hub.

As usual, you can find a more detailed list of changes in the Community Change Log and Enterprise Change Log.

Upgrading?

If you’re upgrading from a previous release, check out the upgrade documentation for guidelines to make the process as smooth as possible.

Get it!

As always, you can download CFEngine Enterprise 3.6.5 packages for the supported platforms, or give it a quick spin with the CFEngine 3.6.5 vagrant environment. If you are using the Community Edition, we provide you with source code, packages, and package repositories - to make sure we cover the distribution channel of your choice! We hope you enjoy 3.6.5, and we look forward to hearing about your experience in the CFEngine Google Group!