One of the thornier new ideas in networking is automation. As soon as someone starts talking about adding automation to a network system there are cries of "taking my job" or "automating me out of a career" from all corners of the data center. The truth is that automation isn't going to cost anyone a job but it might just make yours more interesting.

Big-Boned Finger Mistakes

We've all been there before. It's the end of the day. You've had a long few hours of trying to bring new switches online. You're ready to call it a day after this last device comes online. All you need to do is get this last one in place and it's time to go. You bring up the basic configuration and everything appears to be running just fine. As soon as the routing neighbors establish you're set. It's only then that you realized that you pasted in the wrong configuration! This is the config for the switch across the campus. As you frantically attempt to fix the broken configuration, the routing relationship comes online with the wrong info. Everyone starts dropping. Routes are being black-holed. Your cell phone starts ringing while you try and get back to normal. Users are furious that their end-of-day jobs are failing because the network crashed yet again.

Making mistakes is part of the learning process in networking. As we screw things up we learn how to prevent them from happening again. But what if the easiest mistakes to make were also the easiest to prevent in the first place? Network automation isn't just about configuring switches to provision automatically when they first boot, although that is a function of automation. It's also about taking repetitive, simple tasks that we do every day and making them run in a predictable way every single time.

I've spent a lot of my career doing boring data entry on network system. MAC addresses, IP addresses, and port configurations are about as boring as it comes. Yet making a mistake on one of these could spell disaster for everything. One mistake in a port security access statement could limit traffic to a bad MAC address that locks out everyone in the network from reaching the firewall. Typing in the wrong IP address in a routing statement could cause the whole routing table to fall apart as above.

Making Our Lives Easier

Automation doesn't steal our jobs. It takes the boring parts of our jobs and makes them automatic. It means that we don't have to worry about a mistake taking our job instead. It also means that we could have even more time to learn new things. Take a moment and thing about how much more you could accomplish at your desk if you knew you didn't have to do repetitive provisioning tasks. Imagine a word in which your server team can have VLANs automatically assigned to ports instead of generating a ticket and calling you an hour later wondering why it hasn't been done yet.

Automation means giving us control over things. It means having a second set of machine eyes looking at a task and deciding that it's being done correctly. It means knowing that the junior admins are following best practice guidelines every time they implement something new. It means having a complete audit report available when someone asks so you can say that it really wasn't the network this time.

Automation doesn't have to include a whole system like Puppet or Chef or Ansible to start with. It can be as simple as finding out what scripting languages your network gear supports. It can be as simple as finding out if your NMS supports scripts to do things like provision ports or clear disabled states. Automation really starts with making a list of all the tasks that you find yourself doing every day and seeing if there is a way to have something else do them for you. Once you know what you want to automate, find a way to do it is a simple task.