What is network automation?
Network automation is the process of making configuration changes to your network devices using software tools and code rather than manually configuring each device one by one.
Using tools such as Ansible or Python for network automation, network engineers of today are automating repetitive tasks to ensure a more consistent predictable method of making network changes, provisioning new devices and scaling the support of their network.
What is network automation is one of the most searched questions for network engineers in 2023,
Let’s go back 20 years. The life of a network engineer was very straightforward. We had some switches and a firewall and connected to each device with Putty made the change or provisioned the device directly on the command line or from a notepad file. The configuration was saved and that was it. On Monday if there was a problem with the network, questions would be asked of what has changed.
What is network automation and how can it be used to simplify and accelerate the management of network infrastructure in modern IT environments?
Network operations today are different, the amount of network devices is increasing by a massive scale, virtualization for network devices is the norm and IT staff to device ratio is also increasing.
We are being asked to do more and more with less.
Enter the new world of network automation.
Types of Network Automation
Use case #1
Let’s take the simple example of changing an NTP server address on 100 switches. You have a task from network operations to make this change today.
There are two ways to make this change.
- SSH to 100 switches and add the configuration and save.
- Use network automation to push the change to 100 switches.
Whilst there is nothing wrong with the first method of connecting to 100 switches, it does mean you have to make sure you have all the connection details for the 100 switches, you have to make sure you do every one and you also have to make sure that the configuration is the same on each switch. This does leave you open to human error as you cannot guarantee you will make the change 100 times 100% accurately.
Realistically if you make this change you are going to miss a few and make a few mistakes and probably forget to save the config on one switch.
Using a platform like Ansible you would have an inventory of your 100 switches, you would have a file that contained the configuration change you wanted to push, the change would be pushed with one line of code and you would get a report on the succcess of each device. For more information read Ansible hosts file example
You would know 100% that each device had the change added, the config was saved, the new and old config could be backed up and it only took you 10 seconds to do.
Compare this to connecting manually to 100 switches which is probably going to take a few hours!
Use case #2
Another use case for network automation is device provisioning. Let’s say you have 100 new switches to configure. Before network automation you would typically un-box each switch, boot it up, create the config in notepad and then paste onto the switch.
With network automation you can create an inventory of all the devices based on the mac address of the switch, connect all the switches to a provisioning network or into it’s final location in the data centre, when the switch boots it obtains an ip address and then the configuration of the device is pushed to the switch based on it’s mac address.
For this to work you do need to create the configuration templates first using your tool of choice, but once it is setup you can repeat the process for different devices.
For some devices this zero touch provisioning (ZTP) is not possible and you would have to get a basic config of management address and basic password information to enable the initial connectivity.
Whatever approach you take, this approach of configuring multilpe devices means you can guarantee that each device will be setup with 100% accuracy. This is perfect for setting up a new data center for example.
That is ensuring you have your network configuration templates setup correctly!
There’s a phrase going around in the network automation community: “To err is human; to propagate errors massively at scale is automation!”
Network automation is not a miracle cure for all issues. Just as you can make multiple changes at scale and save yourself hours of time, you can also very easily break your network infrastructure very quickly. With all automation comes caution.
You start with small steps with easy tasks like the ntp server example and then build up to production affecting changes.
But with so many network automation tools in use today, where do you start? You need to work out what tasks you need to perform and then how you are going to do it. With so many network components each tool has it’s benefits.
It’s all about increasing network efficiency by minimising manual changes by releasing network management teams from mundane network management tasks and automating those tasks, reducing human error and then get them working on optimising and improving the network performance instead of endless manual changes and fire fighting.
With a correctly implemented network automation strategy, network service availability will go up.
Configuration management is a great place to start, try to standardise a switch configuration with a template and then each time you need to deploy a new switch you can automate the deployment instead of manually configuring the switch.
But it’s not just about Ansible & Python you need to be looking at a modern network automation platform like Ansible Automation Platform.
What is Network Automation Engineer?
A lot of people are worried that network automation is going to take their job away.
This is very far from the truth as what it’s actually going to do is free up your time from making repetitive changes and out of hours work and giving you more time to work on making the network better and working on future design optimizing rather than just keeping the lights on.
With network components expanding to physical and virtual devices and networks also spanning multi cloud environments it has never been harder to keep track of managing network changes. .
Use automation to reduce human error.
According to Cisco, 95% of all network changes are still being performed manually on the command line interface (CLI)
Network operations teams need to dedicate staff to implement network automation as it is a skill and a technology that is going to be built into to modern networks.
Start on simple network automation tasks like read only tasks or minor configuration changes.
Network automation also plays a large role in modern networking capabilities, such as software-defined networking (SDN) and network virtualization.
Intelligent Network Automation
Whilst simple changes using a Python script are great, the direction that network operations teams need to be moving in is intelligent network automation.
Having scripts being triggered to fix an issue based of a monitoring task. Having the network self heal through automation.
Network automation can also include AI and machine learning to monitor and repair your network through information gathering via machine learning.
How does Network Automation work?
There are many ways to automate a network from using a simple Python script to make simple configuration changes or backing up a configuration to full blown SDN controlling and entire WAN.
You need to pick the network tasks that are taking the most manual time on your network and also the ones that generate the most human errors, and by using code to make the changes instead of a human manually typing the configuration into multiple devices you start to reduce human error and make standard changes repeatable with 100% confidence that each change will be correct.
Any network resource can be automated you just need to work out the best way to do it. Some older devices will only be accessible by SSH whilst modern devices will have API access.
Network automation also reduces error in network operations and service management, reducing network downtime if you can automate network components instead of manually configuring each device your life as an engineer will be so much easier.
With automated and repetitive processes streamlined operational costs will go down. Network automation tools are going to be an integral part of modern networks.
Automating network resource and service management allows network operations teams to become more agile and flexible and effectively support modern business demands, reducing network downtime and improve network efficiency.
If you can eliminate human error from your network management you can increase the reliability of making mass configuration changes across multiple networks and clouds you will have more confidence to make changes in the week or even through the day instead of waiting to the early hours of the weekend.
The benefits of a fully automated network are endless, what might seem like a lot of work to setup will repay itself a hundred fold in operational efficiency and customer satisfaction.
Can wireless networks be automated? Of course!
Network automation book
If you are looking for a good network automation book I can highly recommend reading this one:
Other Relevant Articles:
- What tools do you need to automate your network?
- Check out my network automation tools list post.
- Check out my network automation tools list post.
- What is a network automation engineer?
- Read my what does a network automation engineer do post.
Cisco Certification Changes – get your Devnet certification in 2020