Tools for automation in the cloud
Tried and Trusted
Puppet for Azure and GCP
Admins who run their workloads on Microsoft Azure instead of AWS are far less likely to be caught in the commercial crossfire, which indicates far-reaching commercial ties between Amazon and Puppet. If you simply google Puppet and Azure , you will end up where the so inclined system administrator actually wants to be – namely, on the Puppet Forge page with the Azure modules. These modules offer basic functionality with regard to managing Azure instances. Although they do not cover the complete scope of the Azure APIs, you will find everything you need for the daily grind. The Forge modules can be used in the normal way in the usual Puppet installation; they integrate with services like Hiera.
If you don't want to spend your money on either AWS or Azure, you might want to look at GCP instead. Its integration with Puppet is comparable to that of Azure. In the absence of central marketplaces and similar features, the focus is on a single Puppet module from Puppet Forge, which can be used to control most GCP services, which is true of GCP's platform-as-a-service (PaaS) offerings, as well as its compute engine. However, because the Google modules are community best efforts, they can't handle all of GCP's current crop of API commands.
Cooperation with OpenStack
Puppet can support one private cloud with flying colors, which is no accident. OpenStack and Puppet have traditionally had a close relationship for one reason alone: The first tools for automating the OpenStack rollout were based on Puppet. If you buy Red Hat's OpenStack distribution, you still get OpenStack on OpenStack (TripleO), an installation tool that relies on a mixture of Puppet and Ansible under the hood. The OpenStack modules, which system administrators will also find on Puppet Forge, are well adapted to the current OpenStack APIs and their commands and support the feature set almost completely.
As far as Puppet and cloud support are concerned, the picture is heterogeneous. For Azure, GCP, and OpenStack, the software offers support in free modules without too many commercial ties and a great deal of community support. Puppet plus AWS, on the other hand, is clearly trimmed to being a commercially successful product, with a feature set that far exceeds that of the "baseline" solutions.
Chef: Better than Its Reputation
Chef is not regarded as a popular automation tool where I live, perhaps because Puppet focused on the European market very early in its development, whereas Chef was more concerned with sustainably developing the US business. Technically, however, there is no reason to praise Puppet and criticize Chef. Instead, the two solutions have their own benefits and drawbacks, and navel-gazing with regard to cloud support even shifts the focus to some of the same challenges.
A closer look at Chef's AWS capabilities quickly reveals a commercial link between Chef and AWS, as well. Chef has no direct counterpart to the combination of Puppet Enterprise and AWS; however, a direct counterpart to AWS OpsWorks for Puppet does exist in the form of AWS OpsWorks for Chef. Here, you get exactly what you expect in most cases: a Chef master that AWS maintains and services, so you can roll out Chef without too much preparation.
However, the ties between Chef and AWS do not appear to be quite as close as those maintained by its competitor Puppet. When setting up a Chef environment with FL/OSS components, you will find cookbooks and recipes that deal with the three large public clouds and OpenStack, both online and with community maintenance. This collaboration has more of a hands-on feel than with the competitors.
Buy this article as PDF
(incl. VAT)