As more and more network engineers shift towards the world of network automation, GIT is increasingly becoming a more and more important skill set on your resume. While is it not necessary to understand behind the scenes of git for a network engineer or the implementation details of the framework but it indeed is important…
Docker for Network Engineers Part V – Docker Compose
In the previous post about Dockerfiles, we saw how to use a YAML file to define the template of the docker containers/images and use those set of instructions to build and distribute your containers. However, what if the application that you are writing has multiple components to it. For example:- You wrote a device monitoring…
Docker for Network Engineers Part IV – What is a Dockerfile
We have seen the manual method of creating a container from an image and an image back from a container after you have done all the customizations. What if there is a more automated way of doing this. We can achieve the same end goal by using a DockerFile. What is DockerFile? Dockerfile is nothing…
Docker for Network Engineers Part III – Creating a custom docker image/container
In this post on Docker for Network Engineers, From the ubuntu container that we created in the last post, we will now customize the container to install all the base dependencies that we need for our project. apt upgrade apt update apt install software-properties-common add-apt-repository ppa:deadsnakes/ppa apt install python3.9 apt install python3-pip apt install nano…
Docker for Network Engineers Part II – Installation and Basic Usage
Read Part I here Installing Docker Download docker from the official website for your platform. SignUP for Docker Hub. Docker Hub is an online repository of container images made by the official vendors or the community that you can use as a template to build your own application and save them as new containers and…
Docker for Network Engineers Part I – An Introduction
As network engineers, we have seen the shift from physical hardware to virtual machines. Docker is taking the concept of virtual machines a step further and make it even better. To revisit, let’s see what is a Virtual Machine. Virtual Machines A hypervisor runs between base infrastructure, a physical server most of the time and…
Python Scrapli AsyncIO Usage
We have seen how to achieve parallel task execution in python using multi-threading as in the below-linked post. Let’s see how we can leverage Python Scrapli AsyncIO to achieve similar results. Part1 of scrapli can be found here What is AsyncIO? asyncio is a library to write concurrent code using the async/await syntax. asyncio is used as a foundation…
[Practical] Multithreading vs Multiprocessing vs Asynchronous
We have already seen in theory how all of the above differ and where each of them is applicable and useful. In this post, I will try to demonstrate the same concept using practical examples. I could have spun up tens of devices in GNS3/Eve-ng but I figured just using manual delays to simulate the…
[Theory] Multithreading vs Multiprocessing vs AsyncIO
I have been using a multi-threaded version of the synchronous codes that we usually see to interact with devices and for over a year now and I have a network of nearly 28k devices (routers / switches / WLCs / FWs ) that I need to manage. With that multithreaded version, I was able to…
How to use Scrapli for Network Automation
Scrapli stands for scrape cli very cleverly joined together in one word. Althought he source documentation of this network devices interaction library is really wonderful and can be found here, this is my journal on my path to learning various libraries for device interactions and understand how they differ from each other and which one…