Cloud automation is a term that refers to tools and processes that reduce or eliminate the need for manual intervention required to provision or manage services and workloads on the cloud. Such tools can be used to automatically oversee the installation, configuration and management of resources providing a cloud service. Thus, organizations can apply infrastructure automation to private, public or hybrid cloud environments to achieve goals such as continuous integration and continuous deployment (CI/CD).
Traditional development and operation of enterprise applications and services is often a manual and time-consuming process. This process often includes repetitive tasks such as:
- creating virtual networks and configuring network rules
- scaling, provisioning and configuring resources such as virtual machines (VMs)
- provisioning and sharing storage
- load balancing
- deploying the application or service itself
- monitoring the application and its performance
When performing any of the above tasks in a manual manner, errors can and do occur. This results in the need to spend more time finding, analysing and then eliminating them, costing the organisation time and money. Bugs and the amount of time spent fixing them are unnecessarily part of adaptive changes based on customer or operational requirements, in addition to which they also disrupt the stability of the development process and compromise availability and security. With cloud infrastructure automation, the risk of such errors is reduced many times over, and the time required to make changes is also streamlined as they happen almost automatically. This is because typically all that needs to be defined by an automation tool is the desired end state.
Types of cloud automation tasks
- Configurations – Infrastructure configurations can be defined using templates and implemented automatically. The possibilities for integration grow with the use of the respective cloud services.
- Development and deployment – Continuous application development relies on the automation of several steps from code review and versioning to automated testing and deployment.
- Tagging – resources can be automatically tagged based on specific criteria, context or operating conditions.
- Security – Cloud environments can be set up with automated security controls that allow or prevent access to selected applications or data and scan for security vulnerabilities or unusual performance levels.
- Logging and monitoring – cloud tools can be set up to collect logs of all activity involving services, application logs or network activity in the environment. Monitoring filters (alerts) can be set up to detect unusual events or anomalies. They can also be set to alert when critical thresholds of memory, computing power, or remaining storage space are reached.
“DevOps? I don’t know what you are talking about. I can create your infrastructure in AWS, automate it with Terraform that runs in pipeline in GitLab, create Helm charts for your applications, deploy it in cooperation with Helmfile again from pipelines, obviously, and some other stuff. Is it enough? I don’t know. You tell me.”