From Python to Go 014. Basic SSH Interaction With Network Devices.

Hello my friend,

As mentioned in the previous blogpost, we started talking about practical usage of Python and Go (Golang) for network and IT infrastructure automation. Today we’ll take a look how we can interact with any SSH-speaking device, whether it is a network device, server, or anything else.

You Put So Much Content For Free Online, Why To Join Trainings Then?

Our ultimate goal is to make you successful with software developing for IT infrastructure management. Out blogs are the first step so that you can get up to speed if you already well equipped with fundamentals as protocols, data formats, etc. We believe that sharing is caring, hence we share back our knowledge with you, so that your path could be a little bit easier and quicker, so that you have more time to focus on what matters. If that’s enough for you to move forward, that’s great.

At the same time, if you feel you need more, you want to have finely-curated labs, slack support and deep dive not just in coding, but really in fundamentals, our training programs are here for you:

We offer the following training programs in network automation for you:

Vast Data Builds Out Data Platform With Block Storage And Kafka Streams

If you are going to be audacious enough to call the thing you are creating Universal Storage, then by definition it has to do everything – meaning support every kind of data format and access protocol, and do so with good performance on all fronts.

Vast Data Builds Out Data Platform With Block Storage And Kafka Streams was written by Timothy Prickett Morgan at The Next Platform.

Choosing the Right Transport Protocol: TCP vs. UDP vs. QUIC

We often think of protocol choice as a purely technical decision, but it’s a critical factor in the user experience and how your application is consumed. This is a high-impact business decision, making it crucial for the technical team first to understand the business situation and priorities. Choosing the right transport protocol — TCP, UDP or QUIC — profoundly impacts scalability, reliability and performance. These protocols function like different postal services, each offering a unique approach to delivering messages across networks. Should your platform prioritize the reliability of a certified letter, the speed of a doorstep drop-off or the innovation of a couriered package with signature confirmation? This decision-making framework breaks down the strengths, weaknesses, and ideal use cases of TCP, UDP and QUIC. It gives platform engineers and architects the insights to choose the proper protocol for their systems. Overview of Protocols Most engineers are familiar with TCP and have heard of UDP. Some may even have hands-on experience with QUIC. However, to make the right choice, it’s helpful to align on how these protocols compare before diving into the decision-making framework. TCP: The Certified Letter

Run BGP Across a Firewall

When I asked my readers what they would consider a good use case for EBGP multihop (thanks again to everyone who answered!), many suggested running BGP across a layer-3 firewall (Running BGP across a “transparent” (bump-in-the-wire) firewall is trivial). I turned that suggestion into a lab exercise in which you have to establish an EBGP multihop session across a “firewall” simulated by a Linux host.

If you haven’t set up your own lab infrastructure, click here to start the lab in your browser using GitHub Codespaces. After starting your codespace, change the directory to basic/e-ebgp-multihop and execute netlab up.

High-Performance Kubernetes Networking with Calico eBPF

Kubernetes has revolutionized cloud-native applications, but networking remains a crucial aspect of ensuring scalability, security, and performance. Default networking approaches, such as iptables-based packet filtering, often introduce performance bottlenecks due to inefficient packet processing and complex rule evaluations. This is where Calico eBPF comes into play, offering a powerful alternative that enhances networking efficiency and security at scale.

Understanding Kubernetes Networking

Kubernetes networking consists of two primary components:

  1. Physical Network Infrastructure – Connects cloud resources to external networks, ensuring communication between nodes and the broader internet.
  2. Cluster Network Infrastructure – Manages internal workload communication within the Kubernetes cluster, including service-to-service traffic and pod-to-pod interactions.

Choosing the right data plane is critical for optimal performance. Factors such as cluster size, throughput, and security requirements should guide this choice. Poor networking choices can lead to congestion, excessive latency, and resource starvation.

Data Plane Options in Kubernetes Networking

Networking in Kubernetes is an abstract idea. While Kubernetes lays the foundation, your Container Networking Interface (CNI) is in charge of the actual networking. To better understand networking, we usually divide it into two sections: a control plane and a data plane.

Arista Can Ride AI Up Past $10 Billion In 2026

In many ways, Arista Networks still behaves like a startup even though it was founded twenty years ago, rollout out its first products a little more than a decade and a half ago, went public a decade ago, and now as over 10,000 customers and over 100 million Ethernet ports sold that generated a cumulative $32 billion in revenues for hardware, software, and support.

Arista Can Ride AI Up Past $10 Billion In 2026 was written by Timothy Prickett Morgan at The Next Platform.

Python Getters, Setters and @property Decorator

Python Getters, Setters and @property Decorator

When I first started working with Python classes, some of the most confusing topics were getters, setters, and @property. There are plenty of tutorials on how to use them, but very few actually explain why do we need them or what problem do they solve. So, I thought I’d write a dedicated post covering what they are and the problems they solve. Let’s get to it.

As always, if you find this post helpful, press the ‘clap’ button. It means a lot to me and helps me know you enjoy this type of content.

Python OOP - Method vs Function and the Mystery of ‘self’
I just realized how much I didn’t understand about Python Object-Oriented Programming. I thought I knew the basics, but a few days ago, while going through a Python course, I found out I was wrong.
Python Getters, Setters and @property Decorator

Python Classes

Before diving in, let's have a quick look at a Python class. Here’s a simple example of a Person class with two attributes name and age.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

I'm going to create an instance of the class called p1, passing Continue reading

Do You Need To Answer That Question?

Photo by Pixabay on Pexels.com

We’ve all been in a situation where we’re listening to a presentation or in a class where someone is sharing knowledge. The presenter or expert finishes a point and stops to take a breath or move on to the next point when you hear a voice.

“What they meant to say was…”

You can already picture the person doing it. I don’t need to describe the kind of person that does this. We all know who it is and, if you’re like me, it drives you crazy. I know it because I’ve found myself being that person several times and it’s something I’m working hard to fix.

Info to Share

People that want to chime in feel like they have important things to share. Maybe they know something deeper about the subject. Perhaps they’ve worked on a technology and have additional information to add to the discussion. They mean well. They’re eager to add to the discussion. They mean well. Most of the time.

What about the other times? Maybe it’s someone that thinks they’re smarter than the presenter. I know I’ve had to deal with that plenty of times. It could be an Continue reading

Goodbye, Cumulus Community Vagrant Boxes

Last Monday, I decided to review and merge the “VXLAN on Cumulus Linux 5.x with NVUE” pull request. I usually run integration tests on the modified code to catch any remaining gremlins, but this time, all the integration tests started failing during the VM creation phase. I was completely weirded out, considering everything worked a week ago.

Fortunately, Vagrant debugging is pretty good1 and I was quickly able to pinpoint the issue (full printout):