Introduction to Automation

Automation has a few different meanings when it comes to your cloud environment. For the basis of this article, I will be speaking specifically of configuration management (CM).

Configuration management is a convenient way to handle changes being made to your servers that keeps consistency across your environment. Previously, system administrators were tasked with making any updates to server fleets manually, which introduces several points of failure due to human error.

Automation is pivotal in the CM world as many companies and teams use many servers across multiple platforms to maintain their applications. CM allows for DevOps engineers to gather and change vital information about their fleet of servers such as the health of devices, the state of applications, as well as making any changes or updates to servers.

 

How can automation improve your cloud experience

Automation can save DevOps engineers many hours of manually seeking information or making changes to a server fleet. Automation also removes a lot of the human error that goes into implementing many changes across many servers. Using automation, engineers are creating scripts that will be sent out to their fleet of servers — if an error exists in that script, a simple change to the offending script and re-deployment will resolve the issue instead of having to go to each server to address the problem across the fleet.

Consistency across your fleet is also vital to the overall health of your application and engineers. Automation keeps your fleet running on the specific configuration of the engineer’s choosing, which eliminates any one-off servers that need a specific hotfix or update. Automation also lets engineers spin up on-demand servers quickly and with integrity. This kind of freedom allows for servers to be blown away should they cause issues for the fleet — being able to simply re-deploy a device from automated steps can save hours of troubleshooting.

 

Automation platforms

There are many available platforms that all have slightly different solutions to automated CM. As the engineer, it is up to you to choose which platform works the best for your environment (or future environment if you’re still planning). I will provide for you a few ideas to keep in mind while choosing a CM platform.

If you are reading this article, it is probably safe to assume that you are unfamiliar with CM platforms and there will be a learning curve before you are an automation guru. This is something to account for, whichever platform you choose will have a bit of time before you are autonomous, for a lack of better word. For example, CM platforms use a Domain Specific Language (DSL) which users will need to understand as they build CM scripts and deploy them. I would steer beginners away from a platform that is incredibly complex unless you have decided that you need a specific ability of that platform.

Speaking of learning a new language, the community and support a platform offers are also important. This is especially true for those that are working in small teams, where there isn’t already someone who is well versed in the platform you are working in. The support a platform offers can take a troublesome issue and make it trivial because someone has already asked for help and received an answer. Ansible, for example, has training documents and example playbooks to help new users become comfortable with the tool.

The cost of the platform is also a factor to consider. Many CM platforms have free versions of their application with limited features. These often give users a taste of the tooling and how to use it before committing to purchasing the full platform solution.

 

Popular CM platforms

 

 

Puppet

Ansible

Chef

Salt

Infrastructure

Puppet Master controls configuration on Puppet Nodes

Controls configuration via SSH

Workstations will update Chef Server which will update all nodes

Master will relay configurations to Minions

Script Language

Custom DSL based on Ruby

Yamal

Ruby

Python

Special Software

Yes

N/A

Yes

Yes

Point of control

Puppet Master controls all nodes

Any computer can become the controller

Chef Server controls all nodes

Master controls Minion nodes

Task Execution

Non-Sequential

Sequential

Sequential

Both

Conclusion

CM automation is a powerful concept that can simplify your server environment by maintaining the integrity of your server fleet and providing vital information about your servers. In the next article, we will explain what a LAMP stack is and how to implement one using automation.

Leave a Reply

Your email address will not be published. Required fields are marked *