Where to Start with Automation?

Where to Start with Automation?

In our previous post we have covered some basic principles of automation, sometimes overlooked.  Continuing our series on the importance it brings to enterprises, in this post we ask: Where do you start?  Start with success credit. How do you know when you’re going to be happy? This will drive the problem as well as the solution.

  • Create an inventory of tasks the IT department is already doing.
  • Examine how frequent these tasks are run, and determine the impact of them running or not.
  • Incorporate definitions, source control, monitoring and regularly audit the efforts.

Now the organization has a baseline on what can/should be automated.

From that inventory identify candidates for automation.

  • Start with business critical processes. Evaluate tasks that consume the most of your engineers time, as well as the ones that require several steps or connections. Look at core infrastructure and move up the stack. OS images, configuration management and Firewall rules are all low hanging fruit.
  • The next layer is Application Infrastructure such as databases, webservers. Another easy target is provisioning, developers can request hardware over a CRM like ServiceNow and automation fires-off the request, whether it’s to Bare Metal, VMs, Private/Public Cloud, or containers.
  • Finally you can work on automating the application layer. Automating builds using CI/CD, so that they can go from source code to functioning applications.

Then put up a board, add tasks to it which may be repeated. When a task gets to the point where it’s fulfilled 5 times within 2 weeks, that is a candidate for automation. This is not only for software development or managing infrastructure, but also when people come by and ask for requests. eg. “Hey, can you do x for me?” or “Can you get this y information for me?” Automation does not need to exist only in your DevOps processes, you can take it company wide. Take note where that people will request the same thing over and over again, whether it’s a tool, a job, or a script.

Another approach is to automate the boring stuff. Patching is necessary to maintain a healthy environment, but it’s boring. To automate it, organizations are now using immutable infrastructure. Cloud solutions and containers drive this paradigm shift in operations, changing the way we do patching. Add any new modifications and the nodes are simply redeployed.

One of the biggest problems is not having time to automate. Engineers end up doing tasks over and over again that can be automated, because everyone is rushing to complete their tasks. So instead of stopping and automating some of those repetitive tasks, one ends up in a cycle doing them over and over again. It’s a mistake to not stop and automate. If you notice tasks you’re repeating over and over again anywhere in your process stop and take the time to automate. It will have rewards for the rest of the time the automated process is employed.

Regardless of where you are on your DevOps journey, Ansible should be part of every enterprise’s toolbox. If you don’t know what this great utility does, it’s a software platform for configuring and managing your infrastructure. Ansible connects via ssh to nix systems, switches as well as windows boxes via powershell. The power is in your hands! You can hand out commands across hundreds of servers in your desired inventory. True automation comes in the form of playbooks. A yaml to do list where you can write out repeatable commands through easy and consistent code. Ansible is agentless, tested and robust with an immense community following constantly creating new roles.

Colin Caprusu, 

Crossvale Red Hat Consultant, RHCSA