This post was originally published on the
XLAB Steampunk blog.
Cloud automation tools can save companies time and money by enabling them to focus their efforts and resources on value-added activities instead of managing their cloud infrastructure. And as a cloud provider, it is in your best interest to ensure your users have the best possible experience by automating at scale.
We created an overview of the most popular cloud automation tools currently available. In case you would like to discuss the option with an expert, our team is always just a step away. Feel free to give us a nudge, and let us chat.
What is cloud automation?
Cloud automation is leveraging different tools and technologies for reducing manual tasks of cloud management and provisioning. Additionally, cloud automation plays an integral part in the unification of cloud management processes.
Companies often use cloud automation in multi-cloud and hybrid environments. There is an extra layer of infrastructural complexity to be dealt with in such use cases. It is, thus, essential for cloud providers to offer automation with provisioning and configuration management tools - for ensuring streamlined, secured, and reliable processes.
The most popular Cloud Infrastructure Automation tools
Here are the best cloud infrastructure automation tools of 2022.
Ansible might not be the first tool that comes to mind when we talk about cloud automation. But its extensible and straightforward design makes it an excellent fit for cloud infrastructure management.
Ansible has certified content for managing resources on cloud providers such as Amazon AWS, Google Cloud Platform, and Microsoft Azure. And the Ansible community is maintaining a lot of Ansible modules and plugins for other smaller cloud providers. So no matter what cloud provider business use, there is some Ansible content to help them achieve their goals. Red Hat Ansible Automation Platform also offers an enterprise control plane known as Automation controller (former Ansible Tower) that facilitates deployment with GUI, RBAC and CI/CD integrations.
Because Ansible is also an outstanding configuration management tool, users can use one tool to cover all their automation needs.
Terraform is, by definition, a provisioning tool and has been notoriously the tool of choice when it comes to cloud automation. Users can easily automate processes for any cloud through Terraform’s GUI portal known as Terraform Cloud.
Terraform became popular because it knows how to determine action plans from configuration changes. By comparing the current and desired states, Terraform executes a list of actions that will bring infrastructure in sync with the configuration.
Here’s an interesting fact: Even though Terraform is currently an undisputed king of cloud provisioning, Ansible is rapidly gaining popularity.
One area where Ansible’s flexibility comes into play is the management of existing infrastructure. Because Terraform has a local copy of the infrastructure’s state, it needs to import existing infrastructure before it can start managing it. With Ansible, there is no such step required, and it can begin working on existing cloud resources within minutes.
Pulumi is a relatively new tool for managing Infrastructure as Code that allows provisoning cloud services via user’s favorite language (currently available for Node.js, Python, Go, .NET, Java or YAML).
Pulumi brings several cloud provider packages (AWS, Azure, GCP, etc.) that are available in Pulumi Registry and are consistent within languages. Pulumi Service is a SaaS solution that offers a cloud engineering platform that can store deployment state, manage secrets integrate with CI/CD pipelines and so on. Pulumi also allows migrations from other tools such as Terraform, AWS CloudFormation, Azure Resource Manager, and Kubernetes.
Salt or Salt Project (formerly known as SaltStack) offers a dedicated interface for managing cloud - Salt Cloud. It provides an easy way to interact with cloud hosts. Unfortunately, not all Salt Cloud features are available with every cloud host, making its use a bit more limited for some clouds.
Salt Cloud stores most of its configuration in YAML files. But unlike Ansible, this configuration is not seamlessly integrated into other parts of SaltStack. All this means that infrastructure and application configuration need to be managed separately.
Puppet introduced Puppet Enterprise that offers complete management of cloud-based infrastructure (computing, storage, networking resources) at a large scale. And it works on public, private, and hybrid clouds. The desired state of resources is described using Puppet’s domain-specific language (DSL) that provides code for configurations that agents enforce on individual nodes.
As with SaltStack, Puppet offers some cloud provisioning capabilities, but they are more of an addon to Puppet’s core functionality.
Chef brings Chef Infra automation platform that offers using Chef Workstation to write, test and deploy Chef configurations known as cookbooks. These usually contain nodes of type cloud to provision infrastructure for external cloud services such as AWS, Azure, GCP and others. Cloud sevices can be are available for access through plugins for knife command-line tool that handles communication between local repository and Chef Infra Server.
Why should you opt for general tools instead of cloud-specific ones?
The most prominent market players developed proprietary solutions for automating cloud management. Some of the most popular ones are AWS CloudFormation, Microsoft Azure Automation, and Google Cloud Deployment Manager.
While custom cloud automation might sound like a good idea brand-wise, your end customer would disagree. With a widely-used tool, such as Ansible, users benefit in the following two ways:
- Unified resource management. Working with vendor-agnostic tools enables end-users to automate multiple clouds simultaneously without risking the cloud-specific tools overload. Additionally, they can always add another cloud provider to their environment without additional hassle.
- User-friendly cloud automation. Most of the automation tools use easy-to-understand language to describe the desired state of managed resources. Ansible, for example, requires no prior development or programming experience. YAML, the language it uses, can be learned with the help of widely available resources.
Which tool should you integrate?
In the end, it all boils down to what is the preferred configuration management tool of your potential customers. The next time you will be on a call with them, ask them.
By integrating your product with a widely-used automation tool, you will improve your customer’s user experience. Such integration will enable users to accelerate the development of multi-cloud, hybrid, and any other cloud environment. And last but not least, letting users use the tools they are familiar with will speed up cloud services adoption.
We, at Steampunk, are experts at creating, maintaining, and supporting Ansible Collections. Follow this link to learn more about Ansible for cloud automation.
Changes made on 2022-10-07: We added SaltStack and Pulumi and updated Puppet according to the current situation.