Ivan on Containers, Kubernetes, and Backend Development


Hey, hey!

It's Ivan Velichko, a software engineer and a technical storyteller. I brought you a monthly roundup of all things Containers, Kubernetes, and Backend Development from iximiuz.com.

What I Was Writing

November was the most successful month for my blog so far. It started from one of my recent posts hitting the front page of Hacker News. Honestly, I didn't see that coming when I've decided to take a deeper look at the difference between Docker Containers and Kubernetes Pods. For me, it was just genuine curiosity, and I've learned a lot about Linux namespaces and cgroups on the way. And apparently, the write-up turned out to be helpful for other people as well.

twitter profile avatar
Ivan Velichko
Twitter Logo
@iximiuz
October 30th 2021
206
Retweets
735
Likes

However, another blog post of mine attracted even more attention this month. I spent a few years learning and writing about containerization tech, and I tackled the domain from many different angles. Over time, I've come up with a certain learning order that might ease the task of grasping Docker, Kubernetes, and containers in general. So, instead of trying to explain the whole topic of containerization in one write-up, I decided to share my personal learning path. And it was accepted really well not only on Hacker News (twice in one month!) but also by a much more pretentious audience of r/programming.

twitter profile avatar
Ivan Velichko
Twitter Logo
@iximiuz
November 14th 2021
220
Retweets
809
Likes

Other things I was sharing this month:

What I Was Reading

​How to get useful answers to your questions by Julia Evans - this post is dope! The tips there are helpful for both parties - people who ask questions and people who try to explain things efficiently. My 2 cents - while asking, be proactive! Don't just listen to the explanation. Instead, interrogate (kindly) the person in front of you. Use their brain as a search engine. While answering, keep it a conversation. Pause and listen back.

​Observations of the Lindy Effect and Chesterton's Fence are two short write-ups by Matt Rickard. Matt used to be a Kubernetes contributor, and that's probably how I started following him. However, that's not why I keep following him - Matt publishes short daily essays on all things tech, and he seems to be what I would call a thinker.

​How I Motivate Myself to Write by Gergely Orosz. Gergely is a former software engineer turned engineering manager who happened to work in Big Tech (Microsoft, Uber). Recently, he left his well-paid job at Uber and now makes a comparable living from writing online. But I'm not surprised! The content he shares is just invaluable for those who want to navigate the software engineering market efficiently. Here are some gems:

​The AWS Managed NAT Gateway is Unpleasant and Not Recommended by Corey Quinn - if you are on AWS, beware of this trap.

​How Kubernetes Validates Custom Resources by Daniel Mangum. Daniel is the person behind the Crossplane project - an attempt to turn the Kubernetes Control Plane into a universal control plane to manage, well, anything. Of course, with the help of Custom Resources. So, this guy must know how this stuff works under the hood. I didn’t understand all the details in the article, but it does seem like a good read for more experienced folks. Also, I absolutely love the diagrams on Daniel's blog.

​Build Kubernetes pods with Podman play kube - this feature resembles the docker-compose thingy, but it uses Kubernetes-native Pod manifests instead of compose files. Sounds handy for local experimentation. I also enjoyed the naming change podman tries to promote - Containerfile makes much more sense to me than Dockerfile.

Tech News I've Come Across

🎬 Using Generics in Go - generics are coming. And I have some concerns. Go is a simple language, and this is its superpower. With generics, the learning curve can become exponentially steeper. Where you'd typically need to stop for a moment and decide whether to use a concrete struct or an Interface, now you’d need to start considering Generics as well. And not using generics won't be a helpful piece of advice for beginners either - they’ll have to deal with code written by some bearded guys who (ab)used generics just because they could.

​Two NPM Packages With 22 Million Weekly Downloads Found Backdoored - this sort of attack becoming more and more widespread. That’s why I use disposable and isolated dev environments and never install dev tools on my host OS.

​Trojan Source: tricks (no treats) with Unicode - I'm getting more and more paranoid... The attack seems to be pretty scary. But is it real yet?

​Dockershim removal is coming. Are you ready? - not a big deal, thanks to Kubernetes Container Runtime Interface (CRI) introduced back in 2016. Check out my visual explanation of it.

Stay Tuned

I'm giving a shot to serverless, so probably expect a write-up covering my journey in the coming week. Apart from that, I'll likely take a short break from writing in December and focus on my Skunkworks project instead - I'm still keen on the idea of augmenting my blog with some interactive playgrounds to make the learning experience truly hands-on.

Another biggish idea I have in mind is a series of articles on writing Kubernetes Controllers (or Operators, if you will). Starting from taking a look at the Kubernetes API itself, then jumping to the client-go project, and gradually moving toward more advanced stuff like Kubebuilder and Operator SDK. But it'll be likely a topic for me in January-February.

Last but not least, feel free to send me an email or drop a message on Twitter! I'm always more than just happy to chat about interesting technical challenges, and I love getting (any kind of) feedback on my content!

Stay safe!

Cheers,

Ivan Velichko

P.S. If you find this newsletter helpful, please spread the word - forward this email to your friend :)

Ivan Velichko

Building labs.iximiuz.com - a place to help you learn Containers and Kubernetes the fun way πŸš€

Read more from Ivan Velichko

Hello πŸ‘‹ Ivan's here with a slightly delayed September roundup of all things Linux, Containers, Kubernetes, and Server Side πŸ§™ What I was working on This month, I worked on an assorted set of topics. Skill Paths First off, the skill paths! I finally finished the underlying machinery, and now iximiuz Labs supports a new type of content - short roadmaps that you can use to develop or improve a specific skill: how to debug distroless containers, how to copy images from one repository to another,...

Hello friends! Ivan's here with another monthly roundup of all things Linux, Containers, Kubernetes, and Server Side πŸ§™ The issue's main topic is iximiuz Labs' largest-ever upgrade: Fresher and more streamlined look of the frontend UI πŸ’™ A new 5.10 Linux kernel built with nftables support (finally, we can try out kube-proxy's nftables mode). New default playground user - laborant (yep, rootless containers learning for). New playgrounds: Ubuntu 24.04, Debian Trixie, Fedora, and Incus (yay! more...

Hello friends! Ivan's here with a slightly delayed July roundup of all things Linux, Containers, Kubernetes, and Server Side πŸ§™ What I was working on This month, I got nerd-sniped by cgroups. It all started when I ran into a pretty significant difference in how Docker and Kubernetes handle the OOM events. When you limit the memory usage of a multi-process Docker container, the OOM killer often terminates only one of the processes if the container runs out of memory. If this process is not the...