profile

Ivan Velichko

Ivan on Containers, Kubernetes, and Backend Development

Published 3 months agoΒ β€’Β 3 min read

Hello friends!

Ivan's here - with my traditional monthly roundup of all things Linux, Containers, Kubernetes, and Server-Side craft πŸ§™


What I was working on

After my announcement of the iximiuz Labs GA earlier this month, the platform's usage has more than doubled, so I had to focus on the system's stability and UX. As a result, I increased observability and test coverage, added one more bare-metal server, streamlined a bunch of use cases, and fixed a few bugs.

The most notable user-facing change was the fully reworked Task UI component. A few people complained that after completing a task, it would become impossible to see its original message, so I made the task component expandable. However, this new UI also opened room for adding more information to the element, so I went ahead and enhanced the solution checker, too, and now it supports dynamic hints. Depending on your actions in the playground, the solution checker daemon can send various messages to the browser page, and they will be reflected in the (collapsed by default, so no spoilers) task element!

​

video preview​

​

I also added four new Linux playgrounds (Debian, AlmaLinux, Arch Linux, Kali Linux) and upgraded all the others. The freshest possible versions of K3s, Docker, Go, and the like are at your disposal and are just one click away.

Last but not least, there have been a lot of "Author Experience" improvements. I'm trying to ramp up the content production, potentially opening the platform for other content creators later this year, and for that adding new tutorials or challenges should be as seamless as using the platform as a student. A long way to go, but at least I've started πŸ™ˆ


A minute of shameless bragging

It's been only about three weeks since the GA announcement, and I've already got some exciting numbers to share! πŸš€

In January, more people registered on the platform than in December and November combined!

The new content format (that marked the GA release) - interactive DevOps Challenges - gained quite some popularity (the motley lines on the graph below), but the usage of the free-play sandboxes (the orange areas on the graph) also increased by almost 100%.

I finally integrated a proper payment processor (via Gumroad) and put quite some effort into the "get premium" page (yes, its ugly design is my doing, too), and I still cannot fully comprehend what happened next 🀯

I've made almost $2,000 in sales of the premium status! I truly appreciate everyone who expressed their support for iximiuz Labs this way πŸ™, but what's probably even more heartwarming is that this tiny fraction of users who purchased premium access actually are responsible for as much as 30% of the platform usage!

For comparison, try spotting the blue bar on the user registration chart above 🧐

January truly strengthened my belief in the bright future of the platform! It's still a side-project of mine, so the amount of time I can put into it is fairly limited, but maybe one day... Who knows. πŸš€


What I was writing

Challenges all the way down. The grand total of 8, divided into two series.

Networking 101 - Port Forwarding

Containers 101 - Starting Containers

Go give them a try if you haven't!


What I was reading

Unfortunately, not much - it's been really hard to find a spare minute for the past few months.

​SadServers - A very cool project by Fernando Duran. "Troubleshoot and make a sad server happy!" Or "Like LeetCode but for Linux." Do recommend - it's definitely complementary to my labs.

​The Kubernetes documentation is SO wrong about Namespaces - A better way to think of Namespaces in Kubernetes. Isolation is a good idea even with single-tenant clusters - different apps can definitely use different Namespaces.

🎬 [6:22] Why Service Is the Worst API in Kubernetes, & What We’re Doing About It (slides here) - when one starts talking on Twitter about service discovery in Kubernetes Joe Beda and Tim Hockin show up with a bunch of invaluable insight. Turns out, the original designers of Kubernetes networking are unhappy with the Service abstraction doing way too many things.

​Retries - An interactive study of common retry methods - This is a very long way to say retries should be done with exponential backoff and random jitter, but the blog post is one piece of art. I starred at the visualization for way too much time πŸ™ˆ


Wrapping up

That's it for January. It was quite a month for me, and I'm truly looking forward to February, where my only goal will be content production! πŸ’ͺ Happy learning!

Cheers

Ivan

​
​

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

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

3 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