What is Cloud Automation?

Reading Time: 4 minutes


What is Cloud Automation?

Cloud automation is a blanket term that is often used to denote specialized software, tools, and operations that help us reduce the manual effort when it comes to deploying and maintaining cloud-based IT infrastructure. Simply put, it is automating tasks programmatically.

cloud5

Did you ever wonder what happens when you place an order for a new VPS via the Liquid Web Manage Interface? Cloud Automation is behind all of that. Let’s dig in a bit deeper to learn what Cloud Automation is.

One key reason why automation is so widely embraced and used almost everywhere is that automation reduces the manual effort and intervention needed to deploy a set of tasks. Again, let’s take ordering a VPS as an example. When we placed our order before automation was in place, someone would have to manually allocate both the hardware and software resources. We would then install the OS, cPanel/WHM, and the other default server software, and we would test to make sure everything is working correctly.

Today, we can make an initial selection of our configurations based on the cloud environment of our choice, and so gain the ability to perform multiple complex tasks with a single click.

Benefits of Cloud Automation

Benefits of cloud automation are many, but I’ll list some of them so that you can get a better understanding of what Cloud Automation can do for your business and why it is a must-have if you are running an enterprise.

cloud4
  1. Agility: Businesses can scale quickly to better adapt to changing needs
  2. Speed: Increased deployment speed of cloud infrastructure and management
  3. Control: Better administration and centralized management of existing environments
  4. Security: Graduated levels of security provide more granularity when controlling permissions and access rights
  5. Resiliency: Downtime is revenue lost. The continuous monitoring of cloud services and automatic response to issues keep business processes running smoothly
  6. Change Management: Improving the CI/CD (Continuous Integration and Continuous Delivery) method ensures a better overall process cycle while lowering the possibility of software errors or a failure which increases development stability
  7. Cost: The TCO (Total Cost of Ownership) of our IT infrastructure is often significantly reduced

Once we have our automation system configured and ready for the delivery of programmed tasks, we will be able to deploy, integrate, and manage our systems quickly and effectively. Now that we know what cloud automation is and some of its benefits let’s talk about Cloud Orchestration.

Cloud Orchestration

We like to imagine Cloud Orchestration as Cloud automation evolved.
Using cloud orchestration, we can execute automated tasks at an exact time across multiple nodes. We have task A, task B, and task C. You need to run task C before B, and task A after B. Automation can handle these tasks automatically. Orchestration allows us to perform them in the correct order, in a specific timeframe with better fault-tolerant behavior.

Cloud orchestration is an ideal solution for enterprises that need to orchestrate and manage processes across hundreds of domains, systems, and teams. Now that we know the difference between automation and orchestration, it’s time to discuss some common uses of cloud automation.

cloud2

Cloud Automation Usage

Load balancing

Load balancing is the process of routing web traffic across multiple servers to ensure that resources are utilized in the best possible way. This can limit delays and improve the overall responsiveness of a site or application. Moreover, if one of our servers in a cluster goes offline, the website or application will not stop, as the rest of the servers in the cluster will take up the work for the server that went offline. Additionally, a new server can be restarted to replace the down server or service almost immediately.

Development and Testing

In today’s world, everything around us is continually evolving and changing. Think about your favorite software. Every update that comes out has to be tested in advance on multiple environments and platforms. In many cases, whole teams of developers are testing new updates. They need new settings generated directly, and this is where automation comes into play and shines. Developers can set up new environments with an OS, browser, and other tools that they need in a blink of an eye.

IaC (Infrastructure as Code)

IaC is actually one of the most common uses of automation. This process is what manages and deploys VM’s, cloud storage volumes (when you order new CBS or Object Storage platform, for example), networks, load balancers, and many other available components and services. Basically, we create templates to manage all of these functions and services and allow IaC to oversee these processes. Now that we have provided some examples of automation and its usage let’s review some of the most common cloud automation tools.

cloud1

Cloud automation tools

Kubernetes

Kubernetes is a widely used open-source system for automation used to manage containerized workloads and services. Today, all major cloud providers are offering their own branded versions of Kubernetes, including Google, Microsoft, and Amazon, to name a few.

Puppet

Puppet is one of the oldest tools in use today for use in IaC. When we are looking for a server cluster and management automation tool, Puppet meets that need. It is also an open-source software but does have an available enterprise version.

Ansible

Ansible is an IaC friendly tool developed by Red Hat. The enterprise version of this tool is called Ansible Tower, and it is capable of performing automation and orchestration tasks. We will conclude this article with Ansible.

Docker

Docker is a containerization software that is used for automating the deployment and management of applications within an isolated environment. This software allows us to “pack” and ship an application, along with all of its needed files, libraries, and dependencies, into a “docker container“. That container can then be easily ported to any Linux system that contain cgroups support within the kernel, and provides a container management environment. Docker is one of several containerization implementations (not to be confused with virtualization) based on this cgroups mechanisms built into the Linux kernel.

These are just a few of the essential tools used in cloud automation, but we have merely scratched the surface of the available devices and utilities available to us.

Overall, Cloud automation is a winning choice for many businesses if a stable, continuous, and permanent management of infrastructure is required.

Our Support Teams are replete with talented Linux technicians and System administrators who have an intimate knowledge of multiple web hosting technologies, especially those discussed in this article. If you are a Fully Managed VPS server, Cloud Dedicated, VMWare Private Cloud, Private Parent server or a Dedicated server owner and you are uncomfortable with performing any of the steps outlined, we can be reached via phone @800.580.4985, a chat or support ticket to assisting you with this process.

How to Install Yarn on Windows

Reading Time: 5 minutes

What is Yarn?

Yarn is an alternative npm-client used for working with JavaScript as a package manager that was developed by the Facebook team. It also allows us to share code with other developers around the world and use solutions from other developers. The code itself is distributed via packages, sometimes referred to as modules. The package contains a .package.json file which describes the contents, as well as all the associated distributed code. In comparison with npm, Yarn is considered to be a better alternative and surpasses NPM in the following parameters:

Continue reading “How to Install Yarn on Windows”

How to Install PHP Extensions on CentOS 8

Reading Time: 3 minutes

This tutorial covers the installation of the PHP extension phpredis via the default CentOS 8 package manager DNF. It will also cover the installation of both PHP 7.4 and Redis on CentOS 8.

PECL, the PHP Extension Community Library, is a repository of C extensions that are loaded directly into PHP. PHP Extensions expand the functionality of PHP. PECL extensions can be installed via the use of the pecl command. There are also PHP extensions provided by package repositories. The decision of which to utilize typically depends on how PHP was installed.

Continue reading “How to Install PHP Extensions on CentOS 8”

The Best DevOps Tools for Infrastructure Automation

Reading Time: 5 minutes

Today, DevOps teams try to utilize automation as much as possible. This is to cut down on the sheer number of repeatable processes to limit man-hours worked, throttle development efforts, and to reduce the possibility of errors. This is also a business necessity to reduce overhead costs, increase the speed of the CI/CD process and increase customer satisfaction. There are multiple individual areas that need to be automated to have a fully autonomous infrastructure. Luckily, there are various tools we can take advantage of to help us automate our infrastructure and make sure we have well-developed DevOps processes. In this article we will go over the several of the best DevOps tools for our infrastructure systems.

Continue reading “The Best DevOps Tools for Infrastructure Automation”

How to Install PIP on Ubuntu 18.04

Reading Time: 3 minutes

What is PIP?

In this article, we will discuss how to install PIP on Ubuntu 18.04. PIP is a tool used to install and manage Python packages. This tutorial will show how to install and check the version of PIP as well as run a few basic commands for using PIP on Ubuntu 18.04.

Continue reading “How to Install PIP on Ubuntu 18.04”

How to Install Nextcloud 15 on Ubuntu 18.04

Reading Time: 2 minutesSimilar to Dropbox and Google Drive, Nextcloud is self-hosting software that allows you to share files, contacts, and calendars. But, unlike Dropbox and Google Drive, your files will be private and stored on your server instead of a third-party server. Nextcloud is HIPAA and GDPR compliant, so your files will be encrypted along with the ability to audit. For this tutorial, we’ll be installing our Nextcloud instance on our Ubuntu VPS server. Continue reading “How to Install Nextcloud 15 on Ubuntu 18.04”

Install and Configure ModSecurity on Ubuntu 16.04 Server

Reading Time: 5 minutesMod_security, also commonly called Modsec for short, is a powerful WAF (Web Application Firewall) that integrates directly into Apache’s module system. This direct integration allows the security module to intercept traffic at the earliest stages of a request. Early detection is crucial for blocking malicious requests before they are passed along to web applications hosted by Apache web sites. This provides and extra layer of protection against common threats a server faces. This article will explore the installation of mod_security along with the CRS (Core Rule Set) in a Ubuntu 16.04 LTS Server running Apache 2.4. Continue reading “Install and Configure ModSecurity on Ubuntu 16.04 Server”

Install Multiple PHP Versions Using EasyApache 4

Reading Time: 8 minutes

EasyApache 4 installs, configures, updates, and validates your Apache, PHP and other services on your server. EasyApache 4 also supports multiple versions of PHP.  This allows you to assign different versions of PHP to each of your domains. There are great tools that have been implemented with EasyApache 4 that makes managing PHP versions simple. Two of these are the MultiPHP Manager and MultiPHP INI Editor. These can be found within the Web Host Manager, or “WHM” for short.  With the addition of these tools in cPanel/WHM, users can now complete most of these tasks from the Graphical User Interface. However, it is worth mentioning, attempting these tasks from the command line is recommended as we have seen better performance when compiling Apache builds.  

Continue reading “Install Multiple PHP Versions Using EasyApache 4”

How to Install PHP 7.2 on Ubuntu 16.04

Reading Time: 5 minutes

Using PHP 7.2 on an Ubuntu dedicated server is highly recommended over previous PHP versions for several reasons, first being security. Active Support for PHP 7.2 goes until November 30th, 2019 and Security Support until Nov. 30, 2020. Older versions like 7.0 and anything 5.6 and below are no longer getting any support and can leave open security holes on a server if they are not replaced. Another main reason to upgrade is the big performance increase over previous versions when PHP 7.2 is installed and is using the OPcache module.  This can greatly decrease the time it takes for your web page to load! If you are developing a site locally or launching it on one of Liquid Web’s Ubuntu VPS or Dedicated Servers, using PHP 7.2 or newer would be the way to go.

Continue reading “How to Install PHP 7.2 on Ubuntu 16.04”

Apache Performance Tuning: MPM Modules

Reading Time: 3 minutesThe keystone for understanding Apache server performance is by far the Multiprocessing Modules (MPMs). These modules determine the basis for how Apache addresses multiprocessing. Multiprocessing means running multiple operations simultaneously in a system with multiple central processing units (CPU Cores).

There are many MPMs to choose; however, this article focuses on the most commonly used modules found in Liquid Web Linux based VPS servers. These modules are:

The self-regulating MPM Prefork derives its namesake from how it forks or copies itself into new identical processes preemptively to wait for incoming requests. A non-threaded process-based approach at multiprocessing, MPM Prefork runs Apache in a single master parent server process. This parent is responsible for managing any additional child servers that make up its serverpool. While using MPM Prefork, each child server handles only a single request. This focus provides complete isolation from other requests dealt with on the server. MPM Prefork is typically used for compatibility when non-threaded libraries/software, like mod_php (DSO), are required. From an optimization standpoint, MPM Prefork can be sorely lacking when compared to multi-threaded solutions, requiring vastly more resources to reach similar traffic levels as a threaded MPM. It is resource intensive due to its need to spawn full copies of Apache for every request.

MPM Prefork

Rule-of-Thumb:
Avoid using MPM Prefork whenever possible. It’s inability to scale well with increased traffic will quickly outpace the available hardware on most system configurations.

 

A hybrid pre-forking, multi threaded, multiprocessing web server. In the same fashion as MPM Prefork, MPM Worker uses the same approach with a single master parent process governing all children within its server pool. However, unlike MPM Prefork, these children are multi-threaded processes that can handle dozens of threads (requests) simultaneously. MPM Worker has set the foundation for multi threaded multiprocessing in Apache servers which became stable in Apache 2.2. The threaded configuration allows Apache to service hundreds of requests with ease while retaining only a dozen or so child processes in memory. The MPM Worker make for both a high capacity and low resource solution for web service.

MPM Worker

Note
The KeepAliveTimeOut directive currently defines the amount of time Apache will wait for requests. When utilizing KeepAlive with MPM Worker use the smallest KeepAliveTimeout as possible (1 second preferably).

Based off the MPM Worker source code, MPM Event shares configuration directives with MPM Worker. It works nearly identical to MPM Worker except when it comes to handling KeepAlive requests. MPM Event uses a dedicated Listener thread in each child process. This Listening thread is responsible for directing incoming requests to an available worker thread. The Listening thread solves the issue encountered by MPM Worker which locks entire threads into waiting for the KeepAliveTimeout. The Listener approach of MPM Event ensures worker threads are not “stuck” waiting for KeepAliveTimeout to expire. This method keeps the maximum amount of worker threads handling as many requests as possible.


MPM EventMP

Tip:
MPM Event is stable in Apache 2.4, older versions can use MPM Worker as an alternative.

There is an assortment of additional MPMs available. These are typically part of Apache’s integration into Operating Systems other than Unix-based systems. These have specific MPMs which are requirements or utilizing Apache on their respective system types. These types of MPMs are beyond the purview of this article. You can find more information on specific MPM in the MPM Defaults section of the official Apache Documentation.

MPM EventMP

Tip:
We recommend staying away from experimental and unstable MPMs. The unreliable nature of these types of software renders them unsupportable.

 

When considering optimization, it is essential to understand there is no such thing as a one-size-fits-all Apache configuration. Correctly choosing an MPM requires analysis of many moving variables like traffic, site code, server type, PHP Handler and available hardware. Every server is unique making the best MPM an entirely subjective choice.

If your application code does not support multi-threading, then your choice will inevitably be MPM Prefork purely on a compatibility basis. MPM Prefork includes software modules like mod_php (DSO). MPM Worker without KeepAlive performs very well if your application is a high-performance load balanced API system. The scalability and flexibility of MPM Event is a solid choice for hosting multiple small to medium sites in a shared hosting configuration.

Most simple servers setups operate well under the self-governing default configuration of MPM Event, making it an ideal starting point for optimization tuning. Once chosen, an MPM can then move onto Configuration Directives to review which settings pertain to server performance and optimization. Or check out our previous article in this series, Apache Performance Tuning: Swap Memory.