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?)
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 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)
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…)
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?
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?
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.
Why even use the word “cloud” then? Seems completely unrelated to how the word is used in popular parlance, and unnecessarily confusing.
Because the Linux Foundation says so. I would guess it’s because most of the relevant tech started as cloud products or services and got generalised, such as Kubernetes (the big one in CNCF).
The naming wasn’t up to Bazzite or uBlue to decide, that’s for sure, and the term “cloud native” has won the mindshare of developers.
The irony hits hard when you’re logging into an on-prem Kubernetes cluster in your company’s wholly owned data centre. At that point, “cloud” isn’t even someone else’s computer (as the FSF would say).
“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:
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.
It sounds like the OS is using an image like how a docker container would use an image, is that an accurate comparison?
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?)
I did a couple interviews on this just recently, you can see them here:
https://www.youtube.com/watch?v=xhwNgfE5BwU
https://www.youtube.com/watch?v=SnQze1dMf2U&t=41m42s
If you have any further questions after these, let me know and I’ll be happy to expand on it further!
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.
Oh man, I freaking love you. Thank you so much for Bazzite! I’ve been rocking it for a year and I haven’t had a single issue with it. I absolutely love it.
The one thing I think you guys could improve is the Waydroid parts. BlendOS and others have a more streamlined process which is very fool proof. Click yes, next, next, next… done. Usable Android apps. It would be awesome if you could add something like that.
Thanks! Our entire ujust/first run process is very much a work in progress and we’re trying to improve it asap.
If you ever need inspiration for what a great first run UX/UI could look like, I recommend you look at Crystal Linux’ Jade-gui (it’s what BlendOS uses), and Vanillas OS Installer, both similar, both stellarly crafted 1st run experiences.
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 runs podman 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?
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.