Cloud automation is a broad term that refers to the processes and tools an organization uses to reduce the manual efforts associated with provisioning and managing cloud computing workloads and services. IT teams can apply cloud automation to private, public and hybrid cloud environments.
Traditionally, deploying and operating enterprise workloads was a time-consuming and manual process. It often involved repetitive tasks, such as sizing, provisioning and configuring resources like virtual machines (VMs); establishing VM clusters and load balancing; creating storage logical unit numbers (LUNs); invoking virtual networks; making the actual deployment; and then monitoring and managing availability and performance.Content Continues Below
Although each of these repetitive and manual processes is effective, they are inefficient and often fraught with errors. These errors can lead to troubleshooting, which delays the workload's availability. They might also expose security vulnerabilities that can put the enterprise at risk. With cloud automation, an organization eliminates these repetitive and manual processes to deploy and manage workloads. To achieve cloud automation, an IT team needs to use orchestration and automation tools that run on top of its virtualized environment.
Benefits of cloud automation
When implemented properly, cloud automation saves an IT team time and money. It is faster, more secure and more scalable than manually performing tasks, and also leads to fewer errors, as organizations can construct more predictable and reliable workflows. This plays directly into better IT and corporate governance.
Cloud automation also enables IT teams, freed from repetitive and manual administrative tasks, to focus on higher-level work that more closely aligns with an organization's business needs, such as integrating higher-level cloud services or developing new product features.
Differences between cloud automation and cloud orchestration
Cloud orchestration describes how an administrator codifies the various steps and processes involved to deploy and manage workloads in the cloud. Cloud automation invokes those steps, to deploy and manage actions without human intervention.
Cloud automation and orchestration are complementary and codependent. No orchestration process is entirely manual, and automated tasks are by nature part of an orchestration process.
Consider regularly scheduled data backup and recovery using the cloud. IT staff uses a tool natively from the cloud platform provider or a third party to plan a sequence of tasks based on logical events, such as time of day or discovery of error codes. This entire process from start to finish represents cloud orchestration. Individual parts of the backup process are automated, such as the actual data backup and notifications that the process was successful. If error codes are discovered, another orchestration of processes kicks off to alert staff to switch to take corrective action to repeat or manually complete the backup, and to troubleshoot what went wrong.
Cloud automation use cases
While cloud automation tools or frameworks all share the same general goal, use cases vary widely, depending on the particular business and its goals. Some basic examples of cloud automation include:
- autoprovisioning cloud infrastructure resources;
- shutting down unused instances and processes (mitigating sprawl); and
- performing regular data backup.
Another common use case for cloud automation is to establish infrastructure as code (IaC). Cloud platforms typically discover and organize compute resources into pools. This enables users to add and deploy more resources without concern for where those resources are physically located in the data center.
Cloud automation processes and tools can draw from these resource pools to define common configuration items, such as VMs, containers, storage LUNs and virtual private networks. Then, they can load application components and services, such as load balancers, onto those configuration items, or create instances using templates or cloned VMs or containers. Finally, those items are assembled to construct a more complete operational environment for a workload deployment.
For example, a cloud automation template could create a certain number of containers for a microservices application, load the software components into the container clusters, connect storage and a database, configure a virtual network, create load balancers for the clusters and then open the workload to users.
In addition to deployment, cloud automation relates to workload management. For example, an application performance management (APM) tool can be configured to monitor the deployed workload and its performance. Alerts trigger automatic scaling tasks, such as adding more containers to a load-balanced cluster to improve performance, or removing excess container instances to pare down resource usage.
Cloud automation is a central element of workload lifecycle management. Workloads in the cloud are typically long-term entities, but some of their individual components, such as scaled containers, may be ephemeral. Admins can use cloud automation to remove them, along with their configuration items, when they're no longer needed.
Cloud automation can also play a role in hybrid clouds, to automate tasks in a private cloud environment based on frameworks such as OpenStack, and drive integration with public clouds such as Amazon Web Services (AWS), Microsoft Azure and Google Cloud Platform (GCP).
Cloud automation is also vital for busy app developers. Agile development methods, such as continuous integration (CI), continuous delivery (CD) and continuous deployment, and DevOps, all depend on rapid resource deployment and scaling to test new software releases. Once the testing is finished, those resources can be released for reuse. Public clouds are adept at this behavior, and cloud automation tools can bring the same capabilities to private clouds.
Lastly, cloud automation can provide version control for workflows, allowing organizations to demonstrate consistent setups that stand up to business and regulatory auditing. The business can see exactly which resources are currently in use, identify which users or departments use them, predict how resources will be used in the future and ensure a level of service quality that is impossible with manual processes.
Cloud automation tools
There is no single cloud automation tool, platform or framework. A myriad of different tools and platforms can be used to automate one task or many, ranging from on-premises tools for private clouds to hosted services from public cloud providers.
Examples of automation services from public cloud providers include:
- AWS Config, AWS CloudFormation, AWS EC2 Systems Manager;
- Microsoft Azure Resource Manager, Azure Automation;
- Google Cloud Composer, Cloud Deployment Manager; and
- IBM Cloud Orchestrator.
Configuration management tools offer many cloud automation capabilities, particularly with an infrastructure-as-code setup. Examples include:
- Red Hat Ansible
- Puppet Enterprise
- Chef Automate
- HashiCorp Terraform
Other orchestration tool options include Broadcom (CA Technologies) Automic and Cloudify Orchestration Engine and Workflow Engine.
Many multi-cloud management vendors incorporate automation capabilities into their tools. Some prominent ones are:
- CloudSphere (Hypergrid)
- Snow (Embotics)
- Morpheus Data
- Flexera (RightScale)