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. 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.
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 for workload deployment and management. To achieve cloud automation, an IT team needs to use orchestration and automation tools that run on top of their virtualized environment. Orchestration enables an administrator to codify the various steps and processes involved with workload deployment and management, while automation invokes those steps without human intervention.
When implemented properly, cloud automation saves an IT team time and money. It also leads to fewer errors, as organizations can construct more predictable and reliable workflows. This plays directly into better IT and corporate governance.
Specific uses for cloud automation
While cloud automation tools or frameworks all share the same general goal, use cases vary widely, depending on the particular business and its goals.
One of the most common use cases 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 resources 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. Then, alerts can 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 rarely long-term entities, and an admin 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 by automating tasks in a private cloud environment based on frameworks such as OpenStack, and driving 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 delivery (CD), continuous integration (CI) 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 re-use. 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 tool examples
There is no single cloud automation tool, platform or framework. A myriad of different offerings are available, ranging from on-premises tools for private clouds to hosted services from public cloud providers.
Examples of common cloud automation tools include Puppet Enterprise from Puppet Labs, Chef Automate from Chef, the Automic platform from CA Technologies and the Pure-play Application Orchestration platform from Cloudify.
Automation services from public cloud providers include Microsoft Azure Automation and the Automation feature in AWS' Elastic Compute Cloud Systems Manager.