Site icon Karneliuk

Tips For Network Engineers Willing to Transit to Network Automation

Hello my friend,

quite often we are getting questions from various folks on LinkedIn or via private consultations about how start with network automation and, more importantly, whether to start with network automation at all. With this blogpost we’ll try to answer the most popular question.


1
2
3
4
5
No part of this blogpost could be reproduced, stored in a
retrieval system, or transmitted in any form or by any
means, electronic, mechanical or photocopying, recording,
or otherwise, for commercial purposes without the
prior permission of the author.

What to Do If You Already Want to Start?

The answer is simple: don’t wait. The amount of things you need to learn in order to succeed is huge and growing daily with new tools and platforms released. However, the good news is that we we provide you everything you need to start successfully in the role:

We offer the following training programs for you:

During these trainings you will learn the following topics:

Moreover, we put all mentions technologies in the context of real use cases, which our team has solved and are solving in various projects in the service providers, enterprise and data centre networks and systems across the Europe and USA. That gives you opportunity to ask questions to understand the solutions in-depts and have discussions about your own projects. And on top of that, each technology is provided with online demos and labs to master your skills thoroughly. Such a mixture creates a unique learning environment, which all students value so much. Join us and unleash your potential.

Start your automation training today.

If You Are Not Yet Sure What Is Network Automation

The network automation is area of engineering, which has just recently emerged in the past few years and is being actively developed today. The truth is that there is no formal definition of what network automation is, pretty much like there is not a clear definition for a “network engineer” these days as today pretty much everything has a network or is connected to a network. Therefore, let’s start with …

Scope Of Network Automation

What is included in the network automation? Or, to rephrase the question, what exactly Network Automation aims to automate besides the obvious but very broad “network”? There are a few quite precise use cases.

Configuration Automation

For many companies and engineers this is a starting point into network automation. In a nutshell, configuration automation is development and usage of network automation tools (see below) to manage the configuration of network devices. The configuration automation could as simple as using ad-hoc Ansible commands to modify the description of interfaces on multiple devices or as complicated as properly developed Python or Go tools or specifically packaged workflows to run on the workflow managers. What is important to keep in mind all the time for these and other automation you develop: what are you willing to achieve? And be as precise as you can. The good approach here is to use the user stories:

In such a user story you put clear goal and start specifying what exactly you want and why. Keeping the user stories focused and precise significantly helps during development and may influence the choice of tools

Reporting Automation

Another gateway to automation, which many company uses is reporting and documentation automation. On the one hand, the bigger the company is, the more various reports it needs: for accounting purposes, for extending support contracts, renewing the installed base, etc. On the other hand, when network engineers conduct various standard duties, they may want to quickly grab some network wide report (e.g, which SW version are run on the particular network devices platform). Both these use cases are solvable with network automation by writing some reporting tools, which are either ad-hoc or on a scheduled basis collect and report the relevant information.

Troubleshooting Automation

When the network services are down, it is race against the time to fix it ASAP and each (nano-) second counts. Therefore, the quicker the network services are fixed, the better it is for the company. There are few possible use cases here, where network automation could help:

There could be further scenarios on top to what is already mentioned here, but they will be related to one of the categories, at least partially.

These and other use case are covered in our Zero-to-Hero Network Automation Training and other programs.

More advanced use cases

With adoption of the basic use cases, the company and individuals become more savvy with network automation tools and technologies on the one hand and, on the other hand, their confidence in network automation grows. When both characteristics are high enough, companies may start thinking in implementing fully automated provisioning by removing humans from the process.

We can help you with that.

Approaches To Network Automation

Ok, let’s say you have figured out your use list of the use cases, which will be beneficial for your environment and now you are thinking where to start. At the current moment, there are two major approaches (in each category), how the network automation is conducted.

Category To Network Device: CLI-driven Automation

All the network engineers we know start their career from configuring network devices with CLI. Regardless of the vendor, whether this is Cisco with range of their OS (IOS-XE, NX-OS, IOS XR, etc), Juniper with Jun-OS, Nokia SR OS, Arista EOS or any other vendor, they all have CLI and this is how the devices have been operated for decades. Therefore, many engineers, who develop tools, and who is fresh to network automation world start thinking: “Can someone quickly type commands instead of me?” That is the core concept for CLI-based automation:

As network engineers already know the the CLI syntax, it is relatively easy to start with such type of automation and, obviously, often people start building automation using CLI. However, this method has a number of significant drawbacks, such as:

All in all, it is good to get a bit experience with CLI-driven automation, mainly to make yourself comfortable with the tool, like programming language or configuration management tool, which you are to use further. However, it is recommended to avoid using CLI-based automation in real production automation systems.

Category To Network Device: Model-driven Automation

Applications talk to other applications via API. This is the proper way to build automated systems, and this is what the model-driven automation brings to the party. The model-driven automation is an umbrella term, which means that network devices are configured using APIs rather than CLI. There are three key items to each API:

In our training programs we dig deep into each of these elements, so with them you get ready to the real production automation.

Compared to CLI-driven automation, the model-driven automation provides you a significant benefit: you don’t need to scrape and parse with regexp anything. You are sending data to network devices as a collection of key-value pairs containing the configuration parameters and you retrieve the data back in the same way, so that it is easy to compare the desired configuration state against the real operational state.

All the real-life automation system in critical networks, such as Google data centers, and others, are built using model-driven automation, such as NETCONF/YANG and GNMI/YANG.

Category From Source of Truth: GitHub (GitLab, etc)

Besides interacting with network devices, which is a key focus for network automation for sure, you need to take the info what to configure on network devices from somewhere.

We intentionally put aside quite a popular input type, which is Excel spreadsheet. Yes, a lot of people are still using it, but that is not a reliable way forward.

Git repositories, backed up by some popular tools such as GitHub and GitLab are often popular choice for many companies for software developers to store the code. They do provide possibility to collaborate on the same project for multiple people, version the content over the time and even to use CI/CD pipeline for the automated execution of the changes.

As such, it is possible to store the configuration files, entirely for the CLI-driven automation or as a collection of variables processed by automation tools in case of model-driven automation.

Usage of the built-in mechanisms, such as PR (Pull Request), allow to add the resiliency to the process by enforcing the mandatory peer review of the configuration before the configuration changes are merged with the master configuration, which is being pushed to the network via CI/CD tools.

Category From Source of Truth: NetBox (other purpose build DBs)

One of the problems with usage of the GitHub and GitLab specifically for network automation is that it doesn’t have any purpose-built database to store the configuration data. The only way you can store it is some text files, such as YAML. Despite this is possible, that is not very convenient, especially when you are preparing the configuration of network-wide service and want to see the dependencies or the proposed change in the real time. This is where the NetBox comes to stage, as the best-in-class tool for the network modelling. NetBox allows to prepare the vendor agnostic network model with all the connections, VLANs, VRFs, EVPNs, provider circuits, data centres, with all the smallest parameters, which you may want to configure. Then, you will request this data from NetBox via REST API (or GraphQL API) and will receive the data, which you can use in the configuration.

In our Zero-to-Hero Network Automation Training we covers both Git Ops and NetBox, so that you can choose yourself what better suits you.

Stages of Network Automation

There are, from our experience, three stages that each company pass on the network automation journey.

Local executions and individual contributors

Normally it starts with the local initiative of some employees, which are either curious and are looking for ways to improve their work (or at least to experiment with new tools and technologies) or some new comers, who already participated in automation projects in previous companies. Such persons work on their own by building some tools locally, which are not productized properly. That means, that this automation will be able to work only from someone’s laptop or desktop, but anyone else wont be able to use it.

Shared environments and team contributions

I such local experiments have been successful enough, meaning there are some tangible results, other people starts being engaged in this process in two ways:

At the point, when others start using automation, it is important to ensure that all the users have the same user experience; therefore, the teams start building jump hosts, where the automation tools are installed with all the necessary dependencies and permissions, so that everyone, who needs to use the tool, can simply log to the host and to get the job done. The central automation hosts have other useful capabilities, such as logging of execution attempts, log storage of the automation’s execution and others.

Holistic network automation systems

Once the team have developed automation to the level that it starts making real positive impact on the operational processes, it typically arises the need to properly productize the automation. That requires the following questions to be answered:

The list of questions grows very fast, when the one starts thinking how to properly build and automate the system.

By the way, in Zero-to-Hero Network Automation Training we give you detailed advises how to transition between stages to be successful

Tools Used and Skills Needed in Network Automation

So far we haven’t talked at all about the tools you will use or things you need to know. The main reason for that is very simple: when someone starts with tools without vision and understanding what he or she wants to achieve and why, he/she becomes dangerous to production network and IT infrastructure in general. Having said that, we don’t discourage you to learn new things; learning new technologies and tools are important. However, it is imperative first to understand what you want to achieve and then to build a study plan.

From our experience of running Network Automation Trainings for more than three years and from the feedback from our students, the sensible way of starting journey in the network automation is:

Ultimately, the sky is the limit.

Many of these things together in a proper sequence and in right context you can learn in our Zero-to-Hero Network Automation Training.

Summary

Network automation is a journey: it can be easy and pleasant, it can be also harsh and draining. Therefore, in order to increase your chances for success and reduce efforts you put in automation, you shall create a good foundation for yourself first. With a good foundation, you will be able to properly develop the network automation tools and to progress in your career. Without this foundation, you still can be a network engineer, but amount of efforts and time you will be spending to many cases will be overwhelming. However, the time is the only truly finite resource that the one have in life. Take care and good bye!

Need Help? Contract Us

If you need a trusted and experienced partner to automate your network and IT infrastructure, get in touch with us.

P.S.

If you have further questions or you need help with your networks, we are happy to assist you, just send us a message. Also don’t forget to share the article on your social media, if you like it.

BR,

Anton Karneliuk

Exit mobile version