A satellite project of labs.iximiuz.com - an indie learning platform to master Linux, Containers, and Kubernetes the hands-on way ๐
Hello there ๐ It's Ivan, with a double portion of good news! After more than a month of being head-down with the backend redesign, I shipped an almost complete system overhaul that brought the expressive power of iximiuz Labs playgrounds to a totally different level. Here is what's now possible:
The new capabilities make the playground VMs look and feel even closer to regular servers. This means that students can now practice in more realistic environments, and authors and trainers can prepare even more diverse learning scenarios. I personally have already started leveraging them in my most recent challenges:
The Playgrounds 2.0 is a huge milestone, and I'm very happy with what has been accomplished. However, it has also been a significant investment from my end. So, to restore the balance and share my happiness with you all, for the next week (or so), I'm offering the premium membership with a substantial 30% discount (on top of the traditional PPP): Playgrounds 2.0 in a NutshellAt the end of April - beginning of May, I came up with a wild idea that I could implement the "persistent playgrounds" in a week or two. Being able to save progress in the VM and return to it the next day has been by far the most frequently requested feature by both the student and trainer parts of the iximiuz Labs audience. I couldn't be more off with my estimate... The support for persistent playgrounds is definitely coming to iximiuz Labs. But as far as I can see, it's still "two weeks" away from now. The thing is that for adding the rootfs persistence support, the system should have used proper abstractions of the rootfs source, and read-only (base) and copy-on-write (snapshot) volumes. Historically, the code baking playground filesystem images from the "raw" rootfs images has been tightly coupled with the code cloning these images for starting individual playgrounds. This code was also making too many assumptions about the origin of the raw rootfs (my private GHCR repo). You can see it in the above diagram that I drew back in April. A lot of work in May went into refactoring Bender's code to support arbitrary sources of rootfs images, then converting these images into shared base volumes, which are, in turn, snapshotted into private CoW volumes for individual VMs. This is how the above naive architecture evolved into this: At the moment, two sources of rootfs images are supported:
And S3-compatible storage of rootfs images and/or volumes is coming next. The rest of the playground enhancements, like multi-network playgrounds or multi-drive VMs, have been on my TODO list for ages, and (finally) implementing them now became well-justified because the moment the playgrounds stop being fully ephemeral, changing the format (of pretty much anything) will become much more time-consuming. Playgrounds 2.0 DemoI'll do my best to prepare a dedicated issue going over the individual capabilities of the new playgrounds. For now, check out this video - it shows how to create a multi-node playground using the new "FlexBox" base and then add extra drives to the VMs, including using external rootfs sources: Or, if you find a mute 6-minute-long video too boring (I wouldn't blame you), give the new constructor a try - you'll likely get a much better taste of it, potentially even quicker. Another good way to explore the new features is by using labctl. For instance, here is how you can launch a new playground based on the standard K3s playground but tweaking some of its parameters with a Kubernetes-style manifest at start time: The labctl CLI probably deserves its own newsletter issue, but for now, here is a quick recap of how to launch remote VM playgrounds from the comfort of your local terminal: And an emerging (hot) use case highlight: Run Claude Code (or any other agent) in a playground - don't risk your host OS being compromised ๐ Status Update: iximiuz Labs for Authors & Trainersiximiuz Labs continues to attract an increasing number of outstanding authors and trainers. A large(r) part of the training & learning materials that have been published on the platform so far were for private or internal use, so I cannot share them here (but I wish I could!) Having said that, Mรกrk Sรกgi-Kazรกr keeps rocking with his Dagger, Vault, and OpenBao tutorials and playgrounds (and I know he also has some great Kubernetes and HAProxy stuff in the works):
Mรกrk has also conducted two in-person workshops in May-June, and the feedback was rather positive, so I guess iximiuz Labs is useful in this capacity, too: In the Challenges category, Adithya Vardhan published four amazing Kubernetes problems - do recommend solving them:
And two completely mind-blowing achievements ๐ University: A real-world course has been conducted via iximiuz Labs by Maksym Prokopov: Industry: Constanze Roedig and Reinhard Kugler went all in with their Kubernetes security training and offer it entirely on the iximiuz Labs platform ๐ So, if you're looking for a place to publish your technical materials or for a learning environment-as-a-service for your trainings, I've got a platform for you! Wrapping upI hope you'll find Playgrounds 2.0 useful for your learning and experimentation. As always, feedback is greatly appreciated and welcomed. If you encounter a bug or discover a missing feature, please don't hesitate to reply or join our Discord. If you wanted to become a premium member but have been postponing the purchase, don't miss your chance to get Premium with a sizeable discount! A sale like this is not something I do or plan to do often - the next one will not be until Black Friday, which is half a year from now. And if you are already on the premium tier, thank you! The development and maintenance of iximiuz Labs is fully funded by the community, and I truly appreciate your support ๐ Happy hacking! Ivan |
A satellite project of labs.iximiuz.com - an indie learning platform to master Linux, Containers, and Kubernetes the hands-on way ๐