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.
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!
Hello Jorge, you rock man! Thanks for all your Ublue contributions. I saw your YouTube video and article in the docs and now I’m planning on installing Bluefin on a thumb drive to use on my work laptop. On my desktop I’ve been running Bazzite for a year, it’s been rock solid. Except for that one time when you did an oopsie with the keys 🤣, at first I felt inconvenienced, but then when you took full responsibility, I immediately thought you made a mistake like any human would, but you fixed it like a real hero. I want to use a distro made by people like you.
Thank you so much for everything you do.
Awesome, glad it’s working for you!
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.
I would say it is the methodology. To distill it a bit more in the context of bazzite and universal blue:
- Focus on automation (we do this via gitops) - everything is driven by git
- Declarative definitions: all the components of the base images (the kernel, base packages, etc. are all defined up front), and then the custom images (bazzite) do the same thing on top of that. That makes it easier for someone else to start with a small thing and “make my own bazzite” either from scratch, off of a base image, or if you want to just
FROM bazzite
you can start from there. - Iterate fast: basically be able to change anything in the OS and rebuild on the spot locally as fast as possible.
- Everything is an OCI artifact
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.
The buzz word is not aimed at the regular gaming nerd. It is aimed at gaming nerds who are also developers.
I’m a gaming nerd and a developer and I did not get it.
Lot of explanations in this thread seem to be: “we just use cloud spec for testing and deployment”. That’s absolutely fine.
But context matters a lot. If I open a main page of the project, I don’t have my developer’s hat on. I will assume that the main page is intended to describe the core value of the project. What the heck does “cloud native” mean? To a gamer? Pretty much nothing. (At best they will think you want to run their games like Google Sheets, I guess). To a SW engineer with 8 years of experience in distro QE? Pretty much nothing. It’s the kind of lingo you hear on meeting with C-suites. (Before you go back to your office, sit down with your PO and tech lead and try to decrypt/guess what they want us to do.) I mean, seriously, who talks like that? I’m pretty sure it’s neither SW engineers nor gamers.
Don’t get me wrong, I appreciate your explanation, it’s really well written. Given what I’ve learned from this thread, Bazzite seems like worth trying out.
Just the marketing seems weird. I mean, the whole reason I even found the page is because I’m someone who cares about whose SW I’m using and how it’s ran and maintained. And I do understand tech. Tossing around meaningless terms at me is not going to make me feel a lot of trust…
I’m sorry, but it is a software engineering term. Maybe not from the area you are familiar with, but cloud native was the raging buzzword…about 10 years ago on the server side. Now it’s just a standard way to develop software and it’s part of the common parlance. It is the philosophical background, if you will, of snaps, flatpaks, kubernetes, docker, pods. I mean, the entire business model of AWS and dozens of cloud providers, data centers, mass hosting solutions, saas, etc. is based on the cloud native idea. You use the term and everyone in the room knows exactly which principles and development pipeline you’ll use.
Just like all language, it is just a shortcut to convey a complex meaning. Like, I don’t know what distro QE stands for. But that’s not my area of expertise. I bet there’s a good reason it is abbreviated and that you use it on your résumé. It might convey something to a recruiter or not, about what your general expertise and skills could be. Same here, it’s just a term that describes the important and distinctive part of the project. Because for everything else there’s nothing out of the ordinary on bazzite, not even the gaming stuff. The makers don’t even like to call it a distro because they use other people’s distros. What’s unique is the delivery pipeline and the config, and that sounds even worse, marketing wise. I’ll share you some interviews later.
This is an interview with Jorge, who was around here on the thread earlier answering questions.
And here’s an interview on the fedora podcast with bazzite makers.
Thank you for the post, especially the interview links; I’ll check them out.
I’m sorry, but it is a software engineering term. Maybe not from the area you are familiar with, but cloud native was the raging buzzword…about 10 years ago
I guess my point would be the same, but conclusion is the opposite. Yes, I’ve heard “cloud native” tons of times, but that is the problem with buzzwords: because they are overused (and often used a lot by people who don’t really know what they are talking about), for many people like me, they lose meaning in that period. It’s like “AI” nowadays, or “NFT” few years ago. The term loses its specificity (if it ever had one), and collects all the “bad smell” from people overusing – not just the term but sometimes also the methodology behind.
Honestly, for me rpm-ostree and Flatpak would be excellent terms to convey the architecture of Bazzite. I did have to go to here and to Wikipedia to learn that.
Yeah, that’s absolutely valid. But you run into the same problems again, what the hell is an ostree? Would ask the average gamer. Even some newer changes to bootc will make rpm-ostree unnecessary in the future. Flatpaks are not mandatory even. You could run bluefin or bazzite entirely on appimages.
At least the term cloud native is standardized by the cloud native computing foundation, it has a long story, it’s already known or familiar to a lot of people. And the most important, I think, it is technology agnostic. Even if docker dies and another tech takes its role, or if kubernets are replaced with something else, or even is rpm-ostren is no longer used, cloud native still means the same thing. As for bad smells, that’s just language, words can mean many things at once, we just live with it.
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
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.
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 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?