When it comes to the networking industry, many of the same challenges are still vexing network engineers and slowing down network progress. To ensure growth, we must appreciate these challenges' depth and realize this well runs very deep. Here I discuss the nature of, and solution to, network automation today from a network engineer's perspective - and perhaps a way out of the well.
What network engineers are facing
Some of the main challenges network engineers must deal with include:
Network fragmentation: No two networks are the same. No two micro slices of the same network are the same. This poses risks and difficulties when there is a need to touch the network. New technology outpaces engineers, and it seems that hype replaces considered decision making when leadership makes purchases that affect the network.
Inherent tribal knowledge: The granularity of understanding a network is directly proportional to the length of time an individual has spent working in it. Transfer of this knowledge is, at the best of times, inconsistent and incomplete. The result is inefficient training, which leads to fewer successful new entrants into the space.
Perception of a closed culture: Often, network engineering is subject to exclusive cliques and a secret club mentality. It can be dismissed by leadership as unimportant organizational overhead until "something breaks." The roles within are not seen as desirable (or even attainable) by new entrants into the field. This generates a feedback loop between those outside the daily operation of complex networks and those within.
What network engineers can offer the industry
Addressing these challenges can be daunting. Fortunately, network engineers have lots to offer, including:
Historical perspective: So many network engineers grew up with these networks. There was little formal training that fit the skill sets required, so companies and user groups devised their own. The people who operate networks are more often some of the same people who built them from scratch. This deep level of understanding and ownership is an unmitigated strength.
Easier to get started: The learning curve to become a proficient Network Engineer has become smaller. With the introduction of certifications from vendors and resources provided by the "old-timers," it is now easier than ever to start learning networking. Motivated individuals can tinker on their own at home as the similar protocols and equipment are nearly ubiquitous. And with the advent of cloud infrastructure, virtual environments can be stood up to practice your skills.
The role is changing: People are also seeing that network engineering is more than just CLI commands in proprietary equipment. Network engineers develop complex software, manage versioning, and investigate complicated and subtle behaviors within these unimaginably intricate networks. The tools available and the skills required are changing to a higher layer of abstraction. Network engineers are more architects and provisioners while also developing and sourcing. This will attract an ever more diverse and able new workforce.
Approaching the Future
As network complexity increases and user expectations for performance, availability, and security grow, network engineers will need solutions to help them do their work more efficiently. Some of the common tools used today may need to be replaced or integrated into high-level systems.
For example, we cannot get rid of our most vaunted scripts. That one shell script that you wrote at 2 am on a Saturday three months ago to solve a DNS name parsing issue, or the monolithic beast, that was written by a mystic sage many years ago and now "just works," are both integral to your network. Nor can we deny the benefit of using a vendor's own tool suite to solve certain workflow and communication issues. Open-source tooling will also continue to play a part. These current approaches may seem like impossible hurdles to true unified automation, but they are not. They also aren't the only solution to an ever-shifting and fragmented network architecture.
We need a platform
We need a tool that can aggregate scripts, run Ansible Playbooks, Modules, and Roles, utilize REST APIs provided by vendors, and add custom functionality where needed in a low/no-code manner. This addresses fragmentation by being agnostic to existing infrastructure.
This tool should also organize the disparate areas of work that network engineers do. It should catalog the automations achieved, thereby allowing a smooth knowledge handoff and common reference. Fostering the development of automation in a safe mock environment by experienced network gurus will help train the next generation at minimal risk to the network and document complexity.
A platform should also be reactive to the needs of the network and the business, as well as provide valuable insight into how the network can be improved. Newly introduced technology should benefit our network's landscape, not a hindrance to improving automation and network management.
We need to accept that networks are only going to get more complex and more interdependent with an organization's technology stack. Network engineers must demonstrate how much value they can bring to any organization and the future of operating and managing networks that drive business outcomes. Instead of staring down into the well, let us look up and climb out.
Travis Nicks is a software developer at Itential.