Bart is a networking expert who spent the majority of his career in the ISP and Enterprise industry, gaining experiences in areas such as Routing & Switching, Linux and programming, while also establishing himself as a respected CCIE. You can find him on LinkedIn and Twitter.
You never start with multiple tools at the same time. Usually, there’s a simple task that you want to automate and you start looking for what is out there already. Years ago, I worked for a company with more than 150 different locations. The business required a regular overview of all unused ports at each location. I googled some solutions and soon enough I had built my own script in Python. The result was an Excel file that listed all the switches with their ports and their status, the mac addresses and vendor identifier along with the IP address. The next time the request came in, it took only one minute to run it, instead of a couple of days.
Although I was happy with my network automation solution, I immediately knew that I had passed a point of no return. On the outside it is just one script, though underneath multiple dependencies exist; the system it runs on, the python version, libraries and potentially specific versions. Soon enough I made more scripts to automate other tasks, which meant even more tools, scripts, and dependencies. While writing these you keep wondering, isn’t there something out there? I read about all the good stuff out there: Ansible, Puppet, Netmiko, NAPALM, Nornir, Saltstack, NetBOX, the list goes on. But one tool = many tools! You have to make it work for your situation and adjust it to the desired flow.
The solutions we wrote became more advanced; not only retrieval of information from the network but also deployment in the network. Developing and maintaining the scripts took up a large part of my time.
The number of tools meant a lot of challenges:
Here’s what I learned: the biggest challenge is not the tools, but the integrations between them. I recommend thinking about a system or platform that can integrate all your point solutions. This inevitably means you need:
But it goes further than that; you need to think about where to keep your data (single source of truth), documentation, error handling, version management, security, and ways to educate your team.
As I see it, you have basically three options:
So where did I go? After my first automation adventures, I felt I shouldn’t reinvent the wheel. I saw the market developing and was well aware that network automation was here to stay. I asked myself: How can I help as many people as possible with their network automation challenges? That’s when I decided to join NetYCE; a company that enables network engineers to focus on what they do best: work on the network while taking most of the automation work out of their hands.