Create Your Own Server Playgrounds (and Black Friday deal)


Hello, fellow server dweller πŸ‘‹

I've got two exciting announcements to make.

Starting with the shorter one, this year, I decided to give Black Friday a try. This is an experiment - iximiuz Labs hasn't done sales before and won't have any in the foreseeable future, at least not until next November. So, if you wanted to get a premium membership but the price felt too high, this is your rare chance to get it with a 50% discount. The offer is limited to exactly one week.

Now, to the second, much more technical, announcement πŸš€

Custom playgrounds come to iximiuz Labs

I often use iximiuz Labs playgrounds in my day job. For instance, with my current focus on producing high-quality container images, I might spin up an ephemeral VM with Docker to try building someone else's Dockerfile. Playgrounds boot almost instantly and come with batteries included, so it's as handy as building that Dockerfile locally, and it also reduces the risk of compromising or breaking my primary system(s).

However, a steady percentage of my use cases require additional setup. For instance, I often need some image-scanning tools in the playground that are too specific to make them part of the "standard" suite, but installing them on every boot is pretty annoying. Or I might be dealing with a certain Helm chart, but manually applying it at every start is a little (too) tedious.

Every time I'd perform the same playground setup two or more times in a row, the "cloud-init" word would start ringing in my head.

What if there was an easy way to add a setup script to an off-the-shelf playground to install and/or configure extra software tailored for a specific problem and then persist the result as a reusable template?

Meet labs.iximiuz.com/playgrounds/new!

​

The implementation took me much more effort than I'm willing to admit, but now it's possible to create new iximiuz Labs playgrounds in a matter of seconds. Just check out the video.

Share your custom playgrounds with the world

After adding the support of custom init scripts (and tabs), making the resulting playgrounds sharable became the natural next step. Such playgrounds can be used for:

  • Demos - create a sample setup and include it in your blog post or "take it with you" to a conference (and forget about the cranky demo gods).
  • Collaboration - illustrate your problem or a design idea to your colleagues and friends (with a shareable link).
  • Workshops - give all your students an identical starting point for a lesson or a home assignment (potentially restricting access to a limited number of users).

Here are two public custom playgrounds I prepared in almost no time:

The latter is particularly interesting because it demonstrates the usage of a custom default tab with a built-in web page. Should be particularly handy for embedding a piece of HTML (or markdown) documentation right into the playground.

New Kubernetes "Omni" Playground

Using the new setup script machinery and the (advanced) "init conditions" feature, I prepared a new iximiuz Labs official Kubernetes playground.

This playground is a multi-node cluster provisioned with kubeadm (yay, finally), and it comes with two tuning knobs:

  • Container runtime (containerd, cri-o)
  • Networking plugin (none, flannel, cilium).

Yes, you got it right - it's a 6-in-1 playground! You can use it as-is or clone it to create your own custom playground based on it. Honestly, I cannot think of a better way to prepare for CKA, CKAD, or CKS certification, so go give it a spin πŸ§ͺ

Wrapping up

I have been calling iximiuz Labs a platform since day one. It was definitely a platform for me because I used it for my own content production. But with the release of custom playgrounds, it became a true platform for everyone:

  • If you're writing posts on your own blog, you can prepare and link a playground for your readers to try out your examples.
  • If you need to illustrate your problem, you can use iximiuz Labs as a StackBlitz or JSFiddle-like service.
  • If you're teaching students or conducting internal workshops, you can prepare identical environments and scale them to dozens (or even hundreds) of people.

The latter is something I'm particularly interested in exploring deeper. Last month, there were a couple of successful experiments, and if you feel like becoming an early adopter, do reach out, and I might build something specifically for your needs.

Until next time,

Ivan

P.S. Don't forget - it's Black Friday 😎

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 November's roundup of all things Linux, Containers, Kubernetes, and Server Side πŸ§™ What I was working on This month was (extremely) development-heavy. Two-thirds of it went into the implementation of custom playground machinery and a new Kubernetes "Omni" playground, and in the last part, I was unexpectedly busy with expanding the platform's capacity and launching a new server in India πŸŽ‰ The latter became possible thanks to the support of all of you who got the premium...

Hello πŸ‘‹ It's this time of the month again! My traditional roundup of all things Linux, Containers, Kubernetes, and Server Side, delivered straight into your inbox πŸ“¬ What I was working on October was very productive for me - I shipped no major iximiuz Labs features (it's always hard to resist the temptation!) and instead dedicated all my available time to content work. The main focus was on Container Images. It's the subject of the first module of my "panoramic" Docker course, and it is almost...

Hey there, I’ve just finished putting together everything I know about Node.js container images and figured you might find the write-up useful. If you’re working with Node.js in Docker, chances are you’ve been hit by the dilemma of which base image to use. Do you go for the default node:latest, the slimmer node:22-slim, or something super minimal like a distroless image? What about Bitnami’s alternative β€” how does it stack up? Before you jump headfirst into your next build, you might want to...