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?)
Everyone else seems to have addressed the cloud part, which I was a little skeptical about too. I understood it is a development aspect, not an end user aspect, so I decided to use it. I’ve been using it as my daily driver for about 6 months and have had no problems.
The atomic part was the biggest hurdle for me, since I wasn’t familiar with rpm-ostree, but I’m getting the hang of it. It’s had the added benefit of keeping me from breaking things through stupid mistakes since I can just roll back my changes.
The buzz word is not aimed at the regular gaming nerd. It is aimed at gaming nerds who are also developers. Universal blue, the project behind Bazzite, Bluefin, and Aurora, aims to market to developers to use their systems first, on the basis of the tech backend. So then they make the cool FOSS things that the nerd public can use. Cloud native just means that something is engineered and made to make use of the container based devops pipeline.
For example, an atomic immutable OS that is meant to be developed and distributed via the container infrastructure (this is what Universal Blue is). So, instead of working on making an OS the regular way, collecting packages and manually connecting and tidying up absolutely every puzzle piece so it fits together, then pushing it through the installer packaging wizard, etc. This OSs are made by taking an already existing distribution, in this case Fedora atomic distros (but this is by no means mandatory), then customizing some things. Like installing libraries, applications, firmware, kernels and drivers. Then putting it all into a container image, like you would do with a docker or a podman server image. This way, on the user side, they don’t need to install the OS, instead they already have the minimal atomic system handling framework and just copy and boot into that OS image. This automates a lot of the efforts required for bundling and distributing an OS, and it makes new spins on existing distros really fast and efficient to make. It also means that users don’t need to be tech savvy about stuff like directory hierarchies or package management, and updates, installs, upgrades can all be automated to the point of the user barely even noticing them.
On a similar note, these distros, as development workstations, are usually pre-configured to make use of a container based dev pipeline. Everything is flatpacks and development is handled all via docker, pods, etc. Keeping the system clean from the usual development clutter that sediments over time on a traditional development cycle. As a happy coincidence, this makes the dreaded “works on my machine” issue less prevalent, making support of software a tad easier.
Hey there, I’m the founder of Bazzite. Just wanted to confirm that we have no interest in VC funding. It says it’s cloud native because it’s cloud native, not because we’re marketing to people with too much money and a lack of sense.
Hey there, I’m the founder of Bazzite.
Hey man, so great you are here! What an opportunity that you came here to provide clarity. Thanks for being here!
Just wanted to confirm that we have no interest in VC funding. we’re [not] marketing to people with too much money and a lack of sense
That’s super great to hear. Refreshing in fact.
Putting a whole distro together is a monumental task. Why have you gone to all the effort to do so? What does Bazzite bring to the table that can’t be found by using any other distribution? For everyone who is currently using, say, fedora, why should they all switch to Bazzite today? (I am currently running fedora and I am thinking about a change, can you give me a reason to jump?)
It says it’s a tautology because it’s a tautology.
It sounds like the OS is using an image like how a docker container would use an image, is that an accurate comparison?
Yes, bootc containers are OCI containers, the major difference is there’s a kernel in there.
What exactly does “cloud native” mean? I’ve used Silverblue and I get the immutability etc, but what is the definition of "cloud native?
I’m guessing it’s like the definition used by the Cloud Native Computing Foundation since some Bazzite members apparently worked there.
Hm, ok, so the official definition is: “It is characterized by loosely coupled systems that interoperate in a manner that is secure, resilient, manageable, sustainable, and observable.”
it’s really bad marketing, i had to look it up to make sure there wasn’t any weird cloud shit in the distro
bazzite is now my daily driver 3 machines
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.
all I want to run is a “normal” PC with a Linux distro.
That’s exactly what’s happening!
I don’t want is to have it running, or heavily integrated in some proprietary-ish cloud.
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?
Dude, thank you for this. IMO reducing that down to simply “cloud native” is doing a disservice to how absolutely cool that methodology is.
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.
The methodology IS cloud native
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.
I’ve noticed that almost everyone has missed the most “cloud-native” aspect of the Universal Blue project: The build process.
What’s really cool about this is that the images are built in a “cloud-native” way. Right now, they’re just using Github’s actions pipeline to push images. This does a couple of very cool things.
First: It means that any image that gets sent to your device was already built on a system and checked as OK. It’s still technically possible that a bad image could get pushed, but the likelihood is extremely low because they are tested as a single cohesive unit before being sent to anyone else’s device.
With traditional distros packages are built on a system and tested, but they’re not necessarily tested in a single common environment that is significantly similar between everyone’s device. This largely deals with dependency hell, and weirder configurations that cause hard-to-diagnose problems.
Second: It also simplifies the build process for the Universal Blue team because they are able to take the existing cloud native images from fedora and just apply some simple patches on top of that. While doing this in a traditional distro way as I understand it would be far more complicated. This is why Universal Blue was able to update their images to Fedora 41 like… 24 hours after release? It was crazy fast.
The creator of Universal Blue is also on the fediverse! I don’t know if this will actually ping them, but it’s worth a try.
“Cloud native” means in this context, that the images are being built centrally by “the cloud” (in this case, it’s GitHub actions, but could be replaced by something else) and then the identical copies of the OS are distributed downstream.
Contrary to traditional package manager based distros, this is more efficient and reliable.
At least that’s the mission from what I know, but I also might be wrong. Then please correct me :)
That’s pretty much the gist of it. They even have instructions for doing it yourself, using whatever upstream OCI image you want (including one of the uBlue projects).
BlueBuild is a spinoff project based on the same build concepts that was originally part of UniversalBlue, but they diverged completely due to eventually having a completely different scope.
They even have instructions for doing it yourself, using whatever upstream OCI image you want (including one of the uBlue projects).
Do you have a link for these instructions? Really interested in making a hybrid of Aurora-DX & Bazzite.
Start here for everything Universal Blue. Read here to see how the sauce is made.
Yep. Here you go:
Do you have a link for these instructions?
In addition to the template linked by dustyData, there’s also BlueBuild if you prefer YAML over containerfiles.
It used to say “container-native”. They recently changed the wording, but there was no technical change.
It’s a Linux distro that runs locally, like any other. It has no particular tie-in with any cloud services. If Flatpak, Docker/Podman, Distrobox, Homebrew, etc. are “cloud” just because they involve downloading packages hosted on the internet, then I don’t know why you wouldn’t call “traditional” package managers like apt, dnf, zypper, etc. “cloud” as well. 🤷 So yeah, I feel your confusion.
The big difference compared to something like Debian or vanilla Fedora is that Bazzite is an “immutable” distro. What this means is that the OS image is monolithic and you don’t make changes directly to the system. Instead, you install apps and utilities via containers, or as a last resort you can apply a layer on top of the OS using rpm-ostree.
The only thing cloud-related about any of this is that atomic OS images and containers are more common in the server space than the desktop space.
I must have seen a dozen posts ripping into Bazzite for “cloud native”. This is a dumb decision that they need to run away from.
Founder here, the more I see this whining the more I want to keep it on the website.
It’s the accurate definition.
Does it matter if it’s accurate if it gives everyone the wrong impression?
Yes
Could you elaborate?
No
I think you nailed the first paragraph.
My comment is just to remind that OP is already running an immutable distro on the Steam deck. Valve OS is an arch based immutable distro.
Bazzite was assembled, by some very cool people, to bring the same features of the Steam deck using the already tested atomic editions of fedora to a multitude of “PCs”. Saves time on managing the “Linux” system and focuses on the gaming features, apps and drivers.Funny enough I had not fully realized this about Steam Deck myself, because I kind of made a special exception for Steam Deck to prevent myself from nerding out on it too much: this is strictly for fun!
(That’s why I only changed hostname, replaced the default terminal emulator and set up Syncthing. Oh, and SSH access but that’s it, I promise! :D)
Bazzite was assembled, by some very cool people
but then again, why these cool people keep saying things like “cloud native”… is a mystery to me…
Thanks, I think I’ve already heard about this architecture, although I don’t think there was any standard term for that. Maybe it’s time to try one of these out one day…
It’s still weird that hey would sprinkle “cloud native” all over the place just to confuse people like me. (But then again, maybe I’ve been living under a rock…)
If it matters, I’ve been running Bazzite on my main laptop (including gaming) for maybe 6 months now, and it’s been fantastic. The whole immutable thing took a bit to get used to but now I really like it.
Nothing about it uses a cloud.
This same Bazzite discussion came up last week. I claimed I hadn’t heard so much marketing bullshit since when everything was called Object Orientated.
There’s nothing cloud about it. It’s a bad marketing term.
There’s nothing cloud about it. It’s a bad marketing term.
…you mean, what if … what if the cool Linux/FOSS hackers are somehow also very bad at marketing?
You know, that’s probably something every Linux dev team could use: a volunteer marketing team. Devs volunteer their time, and not everyone can or wants to code, so it seems to me that there should be space made for other skillsets.
I recall Jorge talking on one of the podcasts, and heard a line like (paraphrased) “You can just run your own, integrated into your own CI/CD system that you’re running”
Even though I’ve been running Linux for a long time, I feel like suddenly got a glimpse of what normal people might feel when we try to get them to use Linux at all.
Yeah, we’ve replaced “you can build your own kernel and install own grub” with “it’s cloud native”.
Not sure it’s better…
They call Bazzite cloud native because they use a lot of technology often used in the cloud, but it’s still a locally run OS with no dependence on the internet apart from getting new updates.
Unlike traditional distros, it uses flatpak for apps, comes with podman (similar to docker) if you want to use containers, and has a more robust update mechanism.
Ignore the buzzwords, it’s just another atomic flavor with a Fedora 41 base. If you don’t like it, just re-base to another flavor like kinoite. The main focus is on handhelds and gaming-rigs. They have some tools for that. That’s it.
They do a few other opinionated things, like using the fsync kernel and layering Steam rather than having people use the flatpak, but it’s essentially as you say: atomic Fedora, pulling from Kinoite or Silverblue as the base before making their changes.
I’ve heard Bazzite mentioned repeatedly as a popular distro for Linux gaming (and I plan to test drive it on my old laptop soneday when I get around to it). My understanding is that it’s a standalone distro you can run locally, same as Debian/Arch/Ubuntu/etc. I suspect the “cloud native” marketing term in this context just means you can run the same image file in a vm, vps, bare metal, whatever.
If I’m dead wrong, hopefully my reply will be sufficiently inflammatory to trigger a correction, lol.
I have no idea what they mean with “cloud native”. It is just important to understand the concept of immutables/atomic flavors. I struggled at first with the whole concept, coming from “classic” distros. But you get the idea very quick and after that you can enjoy a stable rig. That is my experience after 7 months with bazzite on my main machine.
I think this is very much it yes. I run bazzite on my laptop as is such basically an atomic distro. That’s it
I suspect the “cloud native” marketing term in this context just means you can run the same image file in a vm, vps, bare metal, whatever.
…yeah that’s what makes it suspicious. Alone it can be a good thing but why rush to mention it for a fricking gaming/home distro? As if running gaming/home distro anywhere else than as close to the hardware as possible was somehow inherently normal or even good.
(The idea of cleanly separating “user user space” does sound inherently good, if achievable…)
Again, who are they marketing to?
It’s a normal atomic/immutable distro
@netvor I guess cloud-native stands for service-provider lock-in, as their development workflow heavily relies on GitHub Actions.