Network Automation: Road to Programmable Networks

The world of networking is undergoing a major shift over the past few years. Micro services and
containers in application stack has put new challenges to networking engineers across
enterprises to build a faster and leaner network stack. Greater visibility into end-to-end network
flow and granular control is another big requirement. It means that organizations need to keep
up with the agility of ever-changing application landscape.

In fast-paced environment, network agility can be achieved through Software Defined
Networking (SDN), Network Function Virtualization (NFV) and Programmable Networks.

While these approaches to network agility sometimes complement each other, SDN requires a
foundational shift in the way the networks are built and operated. Service providers have
absorbed this concept in a limited way, while enterprises are still finding it hard to adopt since
their needs are different. Enterprises don’t sell networks like service providers.

Programmable networking is the answer to the needs of enterprises. End-to-end network can be
automated through programmability without changing the infrastructure. That’s why enterprises
are looking for network automation to manage infrastructure through central automation engine.
One of the preferred network configuration and automation engine is Ansible. Ansible works
over SSH and supports multi-vendor deployment. As enterprises start looking at automation, the
configuration and operation of network devices are the most important factors to consider.

Enterprises need to consider the below points while adopting these major transformations:

I. Reorganize Team Structure

In enterprises, networking team is divided into Engineering and Operations team. Network
automation team should be formed as a subset of Engineering and Operations. On one side,
this team should take care of developing the automation scripts by working with design
team. On other side, this team should work with operations team to build a platform that
ensures the scripts are deployed correctly while providing the needed support.

II. Skillset Transformation

During this transformation, networking engineers will become networking developers and it
needs to bridge the skill-set gap. It means that we should provide a seamless way in which
existing network architects and engineers can learn about the various toolsets, understand
configuration Management tools such as Ansible, understand scripting languages such as
Python and understand Linux as base operating system.

III. Continuous Integration and Development

This is the most important transition in this transformation process. In the traditional network
management, the configurations used to be pushed on device basis individually through
manual method. This manual process controlled the rate of changes. It also kept issues
isolated within the network device and further changes could also be halted.

Please refer to the below checklist to build this new process:

a. Identify Toolsets

Tools are the most important fact in building the CI/CD architecture for network automation.
Some of CI/CD example tool sets are:

  • Source Code Management: GIT, SVN
  • Configuration Management: Ansible
  • Deployment Orchestration: Jenkins, Ansible Tower
  • Monitoring: Nagios, Sensu

b. Introduce Test Driven Development

As the entire configuration management for network deployment becomes automated, it is
critical that developers follow test-driven development model to write playbooks or scripts. It
means that a test case should be written first, followed by the code to verify the test case. It
will eliminate longer development cycle and more confidence within the team to make quick
changes to the environment.

c. Build Automation for Dev, Test and Staging Environments

This is key to ensure that there are sufficient dev and staging environments for developers to
test their code in a controlled environment before it gets into production. Developers should
be able to spin up these environments on-demand so that they have multiple variants of
these testbeds.

d. Versioning and Deployments

It is important to keep track of every change to the infrastructure as a version change. It should
be easy for teams to track changes easily and revert back changes if required. Versioning is
also important to deploy changes across an infrastructure within the network, rather than
deploying it on all the devices.

e. Continuous Monitoring

The final and foremost of CI/CD architecture is continuous monitoring. It includes a monitoring
system to ensure notifications are created for errors/issues, and trigger alerts at certain
thresholds. As the number of changes increase in automated deployments, monitoring
system ensures that the NOC team don’t have to keep monitoring every change.

In summary, network automation will lead the future of network development, configuration,
management and monitoring. Organizations should brace themselves and get ready with
required skill-sets and tool-sets for programmable networks through network automation.

Author's Bio

Pramod Venkatesh

Director, Cloud Platform and Operations, Criterion Networks