profile

Ivan Velichko

Ivan on Containers, Kubernetes, and Backend Development

Published over 2 years ago • 4 min read

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

Software Engineer at day. Tech Storyteller at night. Helping people master Containers.

Read more from Ivan Velichko

Hello friends! Ivan's here - with a well overdue February roundup of all things Linux, Containers, Kubernetes, and Server-Side craft 🧙 What I was working on A lot of stuff on the dev side - not so much on the content side. But things are soon to reverse 🤞 Announcing labCTL - the long-awaited iximiuz Labs CLI A dozen people have asked me over the past year-ish if there'll be access to the playgrounds from the local terminal and not only from the browser. And while I myself wanted this feature...

about 2 months ago • 7 min read

Hello there! 👋 Debugging containerized applications is... challenging. Debugging apps that use slim variants of container images is double challenging. And debugging slim containers in hardened production environments is often close to impossible. Before jumping to the DevOps problems that I prepared for you this week, let's review a few tricks that can be used to troubleshoot containers. If the container has a shell inside, running commands in it with docker exec (or kubectl exec) is...

2 months ago • 1 min read

Hey hey! Are you ready for your next DevOps challenge? Last week, we all witnessed yet another terrifying cyber-security event, and this time, it was a direct hit - researchers from Snyk discovered a way to break out of containers! 🤯 The vulnerability was found in the fundamental component of the containerization ecosystem - the most popular implementation of the (low-level) OCI container runtime - runc. Notice how, on the diagram above, most high-level container runtimes actually rely on the...

3 months ago • 1 min read
Share this post