Skip to main content

Posts

Showing posts from July, 2024

Featured Post

The magic of eBPF III: Development playground

Introduction  At some point, we had to dive into developing programs in eBPF, and that time has finally come. In this post, we'll explore several different approaches to writing eBPF programs, including powerful tools like Cilium and BCC. I'll highlight the methods that I find most efficient and convenient, because as developers, our goal is to write code quickly and effectively, without unnecessary complications. So let's get straight to the point and see how we can streamline our eBPF development workflow.  I think I should clarify, my go-to method of coding eBPF programs is with Cilium and their bpf2go library. A spectacular and simple way of coding programs in kernelspace, with C like syntax, and a very comfortable way of adapting the userspace with Golang. It turns out that all you need to do that is the big brain of the people in Cilium. I won't spoil anything just yet, but keep in mind that all my tinkering with eBPF has been done with bpf2go .   I st

The magic of eBPF II: The not-so-good side

 Introduction     Hey there, tech enthusiasts! If you've been following along, you’re probably as a bit more familiar on what eBPF is and how it works. If not, do not fret. You can go an read my first post, The magic of eBPF I , where we’ve seen how this technology lets us peer into the depths of the Linux kernel, optimize performance, and bolster security. But like all powerful tools, eBPF isn’t all sunshine and rainbows.      Welcome to Part 2 of our eBPF series, where we delve into the flip side of this shiny new toy: the Challenges and Limitations . We’ll talk about the steep learning curve you might face, issues of compatibility with different kernel versions, potential performance overheads , and the security considerations you need to keep in mind when working with eBPF. Consider this your eBPF bootcamp, preparing you for the real-world hurdles you might encounter. Challenges and Limitations Learning curve complexity     Diving into eBPF is like jumping into the deep end