Look, I’m a Debian user for 15 years, I’ve worked in F/OSS for a long time, can take care of myself.
But I’m always on a lookout for distros that might be good fit for other people in my non-tech vicinity, like siblings, nieces, nephews… I’m imagining some distro which is easy for gaming but can also be used for normal school, work, etc. related stuff. And yeah, also not too painful to maintain.
(Well, less painful than Windows which honestly is not a high bar nowadays… but don’t listen to me, all tried in past years was to install Minecraft from the MS store… The wound is still healing.)
I have Steam Deck and I like how it works: gaming first, desktop easily accessible. But I only really use it for gaming.
So I learned about Bazzite, but from their description on their main site I’m not very wise:
The next generation of Linux gaming [Powered by Fedora and Universal Blue] Bazzite is a cloud native image built upon Fedora Atomic Desktops that brings the best of Linux gaming to all of your devices - including your favorite handheld.
Filtering out the buzzwords, “cloud native image” stands out to me, but that’s weird, doesn’t it mean that I’ll be running my system on someone else’s computer?
Funnily enough, I scrolled a bit and there’s a news section with a perfectly titled article: “WTF is Cloud Native and what is all this”.
But that just leads to some announcements of someone (apparently important in the community) talking about some superb community milestone and being funny about his dog. To be fair, despite the title, the announcement is not directed towards people like me, it’s more towards the community, who obviously already knows.
Amongst the cruft, the most “relevant” part seems to be this:
This is the simplest definition of cloud native: One common way to linux, based around container technology. Server on any cloud provider, bare metal, a desktop, an HTPC, a handheld, and your gaming rig. It’s all the same thing, Linux.
But wait, all I want to run is a “normal” PC with a Linux distro. I don’t necessarily need it to be a “traditional” distro but what I don’t want is to have it running, or heavily integrated in some proprietary-ish cloud.
So how does this work? Am I missing something?
(Or are my red flags real: that all of this is just to make a lot of promises and get some VC-funding?)
Hi I’m the guy who posted the report. Your quote is exactly what it is, we use cloud native server tech to make Bazzite. Things like bootc, podman, OCI containers, etc.
That’s exactly what’s happening!
It does, just not ours, Valve runs that part. 😼 I’m happy to answer specific questions if you have any!
As someone who builds and deploys software in the cloud all day, seeing the term “cloud native” used for a desktop OS just reads as jibberish to me, no offense. Nobody can seem to explain clearly in simple terms what is actually meant by it.
Does it just mean all of the compilation of binaries and subsequent packaging have all been designed and set up to run in a uniform build pipeline that can be executed in the cloud? Or is bazzite just basically RancherOS (RIP) but for the desktop? I am seeing people in this thread talking along the lines of both of these things, but they are not the same.
Can you explain what the term “cloud native” means as it relates to bazzite in a way that someone who can build Linux from scratch, understands CI/CD, and uses docker/kubernetes/whatever to deploy services in the cloud, could grok the term in short order?
Yes, it’s a container like an app container you would deploy on docker or kubernetes.
It starts with a dockerfile with a
FROM fedora
, the difference is there’s an entire OS in there, with a kernel and everything. Then an action runspodman build
on that container every day, which is then shoved into an OCI registry (in this case ghcr.io).Then instead of each client doing package updates via a package manager it effectively does the equivalent of a
podman pull
on your laptop, and then stages the update for deployment on the device. Everything is running on the bare metal on the device, the cloud native part is the build process, pipeline, and delivery. Then rinse and repeat for updates.It’s a bit like rancherOS except using podman.
Dude, thank you for this. IMO reducing that down to simply “cloud native” is doing a disservice to how absolutely cool that methodology is.
I loved RancherOS in the server space, and always wished there could be a desktop version of it, but I realize that the isolation of docker on docker would be very difficult to deal with for desktop applications. From your description, I feel like Bazzite has done the next best thing.
If I may frame things in RancherOS terms and perspective briefly, given your description of what’s going on with Bazzite, the System Docker container image is being built in the cloud every day, and you could pull it down, reboot, and have the latest version of the OS running. The difference, I am gathering from context, is that while RancherOS “boots” the system image in docker, Bazzite simply abandons RancherOS’s hypervisor-esq system docker layer, and does something like simply mount the image layers at boot time (seeing as how the kernel is contained within the image), and boots the kernel and surrounding OS from that volume. The image is simultaneously a container volume and a bare metal volume. In the cloud, it’s a container volume for purposes of builds and updates, which greatly simplifies a bunch of things. Locally, the image is a bootable volume that is mounted and executed on bare metal. Delivery of updates is literally the equivalent of “docker pull” and a boot loader that can understand the local image registry, mount the image layer volumes appropriately, and then boot the kernel from there.
Do I have this roughly correct?
The methodology IS cloud native, we didn’t invent this. 😼 People will update their terminology, we’re not doing anything new, Linux in infrastructure went through this a decade ago. It’s an update in vocabulary because it’s a shift away from the traditional distro model and has more in common with the rest of industry (k8s, docker, etc) than a desktop. The desktop is just the payload.
We know some people will complain but whatever, it’s our job to help people understand the tech and there are proper definitions for this stuff - The whole “immutables” or whatever slang people are making up doesn’t really make sense but we can’t control what people think, we can just do our thing and keep pushing out updates.
RancherOS doesn’t exist anymore, but a difference here is everything on the machine runs on the metal except whatever workload you have. Here’s people who do a way better job explaining it:
Our systems share the same tooling as Fedora CoreOS so this is probably a better example. You can make custom server images – we build on top of that too, similar to Bazzite but for server nerds: https://github.com/ublue-os/ucore - basically if you can script it, you can make an OS image out of it. Here’s bootc upstream where people are hanging out: https://github.com/containers/bootc/discussions
Hope this helps!
That’s great, thanks! I really appreciate the detailed response and the links.
Ok great. Is it also fair to say that cloud native is the methodology? Or is cloud native a higher order concept that the methodology can fall into? I.e. rock is music, but music is not rock.
Thanks Jorge. Just confirming that this is the single most complete reply. I couldn’t have asked for a better explanation.