Ivan on the Server Side


Hello friends!

It's time for my traditional monthly roundup of all things Linux, Containers, Kubernetes, and Server-Side craft πŸ§™

Before we get started, I want you to know that this newsletter's previous issue (dispatched mid-May) was delivered to only about 1/5th of my usual email audience due to an unfortunate DNS misconfiguration. The good news is that you can still find it and all previous issues on newsletter.iximiuz.com. Also, if you reply to this email, it'd help to restore the domain's reputation πŸ™


What I was working on

In May, I finally put the development of iximiuz Labs on pause and concentrated on delivering content πŸš€

​

Computer Networking Basics For Developers, DevOps, and Platform Engineers

I revamped and extended half a dozen of my older blog posts to create a course I wish existed when I was starting my software engineering career. It's a heavily illustrated introduction to L2-L3 networking with bite-sized sections and tens of hands-on exercises. Do recommend checking it out before you start learning Docker or Kubernetes networking!

​

Do you want to master the server-side craft faster? Learning-by-doing is one of the best ways! Get access to powerful online playgrounds and high quality learning materials with iximiuz Labs Premium and accelerate your DevOps career.

Does your company have a learning and development budget? Then this expense most likely can be reimbursed.

​

An Alternative Introduction to Dagger: Understanding the Core Concepts

This course is still in the works, but I just finished the second lesson, and it should be valuable on its own. Dagger has been on my radar for years as a fascinating piece of technology. However, my earlier attempts to start practicing it ended unsuccessfully due to various (at the time) rough UX edges. But the recently added Dagger Functions have finally made it useful for me, and I cannot stop enjoying writing my automation scripts in Go and running them in containers.

If you want to start writing Dagger Functions to automate your development workflow too, and/or are curious about the implementation details, check this lesson out:

​Writing Your First Dagger Function and Digging Into Its Runtime​

And if you want to learn what Dagger is and why you might want to use it, the first lesson should help you with that (by the way, I fully rewrote it since the original publication a couple of weeks ago πŸ™ˆ).

​

Docker Scout: Remediating CVEs in a Container Image

​The first guest challenge on the platform πŸŽ‰

Many thanks to Felipe Cruz of Docker for making it happen!

​

How-To: Kubernetes Automation Development in Go

Recorded a new video and compiled a collection of resources to help you get started with development programs that talk to Kubernetes API.

video preview​

​

Keeping iximiuz Labs playgrounds up to date πŸš€

Traditionally, upgraded all 24 DevOps playgrounds:

  • Kubernetes 1.30.1
  • Docker 26.1.3
  • Dagger 0.11.5
  • Alpine 3.20
  • Go 1.22.3
  • Node.js 22.2.0 …and more!

You can try them out:


How the platform is doing

May was the best/second-best (depending on the metric) month for iximiuz Labs since its release slightly more than a year ago.

During this year, almost 10,000 users registered on the platform, and 45,000 microVMs were fired up.

I'm enjoying working on it, and the growth is promising, but I'm still doing it in my free time and at my own expense. Here is what running the platform currently costs me:

  • $165 - worker nodes (Hetzner bare metal)
  • $65 - MongoDB cluster
  • $55 - frontend app (fly .io's machines)
  • $100 - newsletter (ConvertKit) πŸ€¦β€β™‚οΈ
  • $170 - tax consultant πŸ™ˆ
  • $40 - misc (domains, email, etc)

Total: ~$600/mo

I'm currently at $900 MRR with Gumroad and Patreon combined, and occasional sales of the lifetime access make it closer to $1,500/mo (but there is no steady pattern for the latter yet).

This makes my "profit" from iximiuz Labs something like $300-900 a month, which already covers a day or two of work πŸ’ͺ

Will I reach the escape velocity this year? It would mean so much more content and new features! 😍

If you find iximiuz Labs or my other work helpful, the best way to support me is to get iximiuz Labs Premium, either a subscription or a lifetime deal. This will mean really a lot to me, but you will also get access to more powerful playgrounds, premium challenges, and all future premium content & features.


What I was reading

🎬 Debugging Distroless Images with Kubectl Debug and CDebug - A great demo by Adrian Mouat showing the limitations of kubectl debug and how to overcome them by either using well-crafted debugging images (kudos to Chainguard’s Alpine variant) or more user-friendly debugging tools like cdebug by yours truly. Make sure also to check out this iximiuz Labs challenge I prepared a while ago to demonstrate the same set of problems.

​Debugging Distroless Images with kubectl and cdebug - a short and sweet post by Adrian Mouat extending the ideas from the previous video.

​Shrink images & debug your Docker & Kubernetes with MinToolkit (aka DockerSlim) - continuing the topic of debugging containers, Kyle Quest demos some true container wizardry on Bret Fisher’s show, including using a specialized AI assistant to guide you through the process of using mint ❀️‍πŸ”₯

​Recent Docker BuildKit Features You’re Missing Out On - A helpful read by Martin Heinz on some less-known features of docker buildx. I particularly liked docker buildx debug --invoke /bin/sh to troubleshoot failing image builds and, maybe not very recent, but extremely handy usage of here-docs in RUN and COPY instructions.


Wrapping up

That's it for May. It was a fruitful month, but it also laid a solid foundation for further content production - a few tasty things are already in the works! πŸ’ͺ

Happy learning!

Cheers

Ivan

P.S. A bit of an unusual shout-out, but I finally started learning Dutch, and I cannot recommend highly enough my teacher (and his learning platform)! It's super fun to run into someone as passionate about his edu work as I am. And nope, I'm not getting a discount for this πŸ™ˆ

video preview​

​

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...