Building an XDP eBPF Program with C and Golang: A Step-by-Step Guide is a comprehensive tutorial that walks readers through the process of building an XDP (eXpress Data Path) eBPF (extended Berkeley Packet Filter) program using C and Golang. The article provides a clear overview of XDP and eBPF, highlights the project’s goal of creating a simple chaos engineering tool, and guides readers through each step of the development process. From setting up the development environment to writing the XDP eBPF program in C and the accompanying Golang application, readers will gain hands-on experience and learn important concepts such as packet processing, perf event handling, and statistics tracking. By the end of the article, readers will have a solid understanding of how to leverage XDP and eBPF for networking and performance optimization purposes
This is a brief follow up to my article on Docker networking: Network Namespaces, Docker Bridge and DNS
Docker uses OverlayFS to manage the file system of its containers. When a container is run, Docker creates a new layer for the container’s file system on top of the base image. This allows the container to have its own file system that is isolated from the host system and other containers.
Ever wondered how docker compose lets you communicate between services? This article takes a high level look at network namespaces, Dockers internal DNS and Docker bridge.
Network namespaces are a powerful feature in Linux that allows for the isolation of network stacks, creating multiple virtual networks on a single host. This concept is particularly useful for scenarios such as containerization, where each container needs its own independent network stack. In this article we’ll take a look at how docker / docker compose utilize this technology to grant containers network isolation and also take a look at how docker handles cross-container networking.
The advice I wish I had been given As someone with two decades of experience in the tech industry, I have been fortunate to have enjoyed success, but my path has been far from deliberate. In hindsight, there are some steps I could have taken to have increased my ability to be a better engineer and ultimately to have reached my goals sooner. If I could time travel, this is the advice I would give to my younger self:
When faced with a Python script how can you go about learning how it works / debugging issues? In this article I provide insight into my own flow which might help you wrangle that snake. This is a follow-up to my Golang debugging flow https://www.petermcconnell.com/posts/golang_debugging/