But what is cloud automation and what concrete business benefits does it provide?
First of all, we have to look at public clouds and the differences they offer to traditional vertical scaling, where you manually add more computing power and memory to your servers.
By definition, public clouds provide an unlimited amount of compute and memory for users to divide and run as they see fit, with no restrictions on hardware or the number of Virtual Machines that can be created.
The public cloud lends itself to Horizontal Scaling – multiple Virtual Machines that can be scaled out, rather than a single monolithic server or Virtual Machine.
Horizontal scaling brings with it many advantages in terms of fault tolerance, capacity, scaling, lower costs and reliability. It also works very well with modern systems that use Service Orientated Architecture (Loosely Coupled) paradigms.
However, this flexibility and agility to horizontally scale has some prerequisites that must be solved before you can ‘elastically’ scale the various components of your system.
This is where automation steps in, to ‘orchestrate’ your system and perform the necessary actions for your system to consistently provide the best performance and experience for its users.
Here is a list of common issues seen with scaling IT systems that can be solved with Automation:
Cloud Automation can solve each of these issues, but there is also significant upfront investment in training, staff and development to start automating in each of these areas. That could set your project back months.
Auto-scaling is a key feature of the public cloud and one most are keen to take advantage of, so we can use this as an example.
To scale up, new instances need to be brought online. They need to have the latest Operating System (OS) updates applied, the correct configuration for the software they run, and you may also have to deploy the latest release of your code to the instances.
On Amazon Web Services (AWS), their elastic load balancers (ELBs) can take care of bringing instances online and removing them when demand drops. ELBs will only start or stop a machine image to do so.
This means you either need to perform the steps above or maintain a ‘gold’ machine image from which your component is started from. Many companies start with ‘gold’ images, particularly if their system contains a small number of components.
However, as systems before more complex, the act of maintaining, updating, testing and deploying golden images is time consuming and many of the early adopters (e.g Netflix) on AWS no longer use this method. It simply does not scale!
The alternative to ‘golden’ images is cloud automation and configuration management, so called DevOps. Puppet and Chef are two of the popular solutions in this space and if you are not familiar with them, you will likely hear more and more about these technologies in relation to cloud automation and cloud computing.
By deploying ‘standard’ images and then subsequently applying configurations, your teams can eliminate the maintenance of ‘golden’ images. This means your team can ensure that when new instances are brought online, they have updates applied, configurations enforced and the latest code deployed, before being introduced into a load balancer to deal with the intended workload.
There are loads of great resources to help and get you started on the automation journey:
If you’re looking to partners with managed cloud services experts, then you should speak to the Digital Craftsmen. We specialise in cloud automation and have years of experience providing our clients with fully automated IT systems, with upwards of 99.9% availability and massive scalability.
Contact Digital Craftsmen now to see how we can help with your cloud migration.