You may have heard of these becoming-more-popular terms; DevOps, NetOps, even NetDevOps; but they are not as new as they seem, these terms have been used by server guys when automating the management of their servers for longer than Microsoft 10's been alive! The network world has been very much behind the times and in most cases configuring devices in the same way it has done for the last 20 years – SSH to the CLI and configuring each device one by one.
Whilst this gives the network administrator full control of their network, it is also very time consuming and too easy for human error to occur when configuring multiple devices with the same copy and paste or hand-crafted commands.
The network now needs to be seen as a single service that is configured as such and not as a collection of boxes from different vendors, configured one at a time. This is the ultimate goal; to apply configuration without the consequences of configuring devices from different vendors; Cisco, HP, Aruba... no matter the vendor, the network automation solution can handle it. We are a long way from that but hey, you need to start somewhere!
The first step in network automation is to template your configurations.
Establish a baseline template for each device and then use variables for values that will change between devices. Group all your devices into common areas / device types and then apply templated configurations to groups of devices. In this way if you want to update the NTP server on all the switches in the New York office, all you need to do is add one line of code to the New York Office, switch template and push it to all the switches in the New York Office.
You know, then, with 100% certainty, that all those switches will be configured correctly.
In the world of Network Automation, most of the tools come from the Open Source world: for example Ansible, Puppet and Salt. Some people are just using Python scripts, but for full control you really need an orchestration engine and right now Ansible is coming out as one of the best tools to use. In a survey conducted by NetworkToCode on the state of NetDevOps in 2016, Ansible was rated as the "most interested in or deployed" network tool for automation by engineers. This significantly outstripped the competition on the survey, which can be read here.
This graphic does explain it much better:
Ansible was bought by Red Hat in October 2015 and has since received a lot of development with the number of network modules within the product increasing all the time. It now supports 25+ networking platforms with over 250 networking modules. The list is growing daily – as you can see here.
This is not to say that Ansible is the best tool for everyone. There is no right or best tool, it's the tool that's the best fit for your operation.
I recently attended the first ever London Network Automation Meetup. Over 50 like-minded network engineers, all with a passion for Network Automation, got together at the Cloudflare office in London.
There were three presentations: from Csilla Bessenyei, a Network Automation Engineer (also the organiser of the meetup), Chris Truman a director of network operations, and Mircea Ulinic, a Network Engineer at Cloudflare. The presenters brought three very different perspectives on Network Automation but all with the belief that automation is the future of network operations.
There were some lively discussions and differing viewpoints, with a bit of industry bashing but a great evening talking with network engineers who are already doing this. I also bumped into some familiar faces from my previous job!
Network Automation is already here and for the network engineers of the future it is a skill they really need to master. In 5 years the CLI will not be available for most network hardware with all configuration being delivered programmatically. There will always be the odd device that will require a CLI, but as network engineers we need to be getting into the 'programmable' mindset.
You don't need to be a coder, but you need to understand how code works!
If you're interested in automating your network and understanding how you can integrate your devices, please get in touch with your account manager or contact us using the button below!
We would love to hear any comments you have about this article!