The Rise of the Machines: ITOM Meets Automation
I started in the IT industry in networking. I had a negative experience in high school trying to learn computer programming*, so I was relieved route/switch had much less to do with computer programming. With the rise of the machines, this isn’t the case anymore. Now in addition to learning router or switch operating systems, routing protocols, and overlay technologies, today’s savvy network engineer needs to throw in things like Python, Ansible, and Jinja.
In this installment, the second in a three-part series, we explore automation in the ITOM realm, what automation’s current strengths are, and where ITOM automation is headed.
Automation: It’s What Now?
Although automation evokes images of robots and maybe even terminators, automation today is much more, if you’ll pardon the pun, basic. When you boil it right down, automation is a list of instructions given to a machine—a server, a router or switch, whatever—to execute at regular intervals or in response to a defined event.
How does automation get applied to tackle ITOM tasks? Here’s an example. Every five seconds, you have your router:
- Execute the command show interface e1/1-48.
- Search the output for any interface reporting it has been err-disabled.
- If the interface has been err-disabled, send a text to a phone number saying, “Help! Interface e x/y has been err-disabled!”
Today’s automation for networking is often written in Python, which sounds straightforward, until you start writing your own code. Programmers use a whole host of other tools to make their code more streamlined and efficient. Things like:
- Data formatting languages like YAML, JSON, and XML
- Templating languages like Jinja
- Code repositories like GitHub
- Automation tools like Ansible**
Frankly, it’s a huge new field to learn on top of networking fundamentals. It’s no wonder network engineers with a special cache of Python-y knowledge are in high demand and the new job title, network automation engineer is gaining popularity.
Automation Use Cases: Screwdriver or Hammer?
Like all tools, there are some jobs to which automation is well suited, and some jobs you just shouldn’t. After all, you can use a screwdriver to drive a nail, but it’s not ideal.
So, what should you consider automating in your IT department?
In general, consider tasks with the following features:
- Complex tasks, with multiple steps involved
- Repetitive, routine tasks, or tasks triggered by a reoccurring event
- Tasks where you sift through a great deal of data for specific, predefined criteria
In these cases, automation can help the IT department run leaner and meaner by freeing up valuable resources from tedious tasks to projects which require human intellect or creativity, reduce the possibility of human error mucking up the works, and reduce processing time.
Of course, there are some tasks for which automation is not currently suited. Like learning new or novel patterns. Automation is of limited value in intrusion detection, for instance. Don’t get me wrong. Automation can greatly help with intrusion detection. An automated process surveying your network for all known attacks every five seconds is very useful. But such tools currently available require a prebuilt database of known malware and won’t be able to detect novel attacks.
In the last installment of this series, we’ll explore the next evolution of automation… artificial intelligence, with a specific look at how AI and ITOM merge into the exciting new field of AIOps.
*I was the only girl in a class of ten, and it was the first year my high school had offered BASIC. The teacher didn’t believe girls could code, so I never got any help. So, yeah. That stuff happened.
**A great resource for programming for networking engineers is Network Programmability and Automation by Jason Edelman.