Skip Navigation

So what the boink is Bazzite "cloud native" blah?

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?)

90 comments
  • 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.

    • Why even use the word "cloud" then? Seems completely unrelated to how the word is used in popular parlance, and unnecessarily confusing.

    • 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.

  • 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.

    @j0rge@lemmy.ml

    @j0rge@kbin.social

  • 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.

  • Generally the industry shifted in a direction where it heavily relies on containers for running cloud applications. This solves many problems with traditional server systems where you'd be sticking to certain distro, so certain dependencies are in fixed versions, which brings some limitations. Container is an environment to run process in an isolated way so that it had its own root filesystem, its own view on what resources are available, sort of like it was separate machine, but it’s still running on the same machine natively using the same kernel as the host. You can then have multiple of such containers, all serving its narrow purpose and they all come with the complete fs and whatever distro release they are tested with. Nowadays cloud computing is all about containers and they come from images that are built in OCI format using Dockerfile syntax. After building an image, it is typically pushed into registry where it can be pulled from over network to be utilized across different nodes, which makes it pretty easy to scale and propagate changes in cloud environments.

    Now what that means to Bazzite/Universal Blue is that it uses similar tech to deploy the system, though the target here is your local machine. Of course some of the characteristics aren’t relevant in this scenario, but it solves some of the same problem - build predictable and reproducible environment that can be thoroughly tested before publishing. The general idea is similar to how devops build cloud apps: there is CI pipeline that runs the build using giant Dockerfile (or Containerfile, same thing) inside of which they include everything that the system needs (running traditional package manager and act as it was normal Linux distro during the build), which then results as image that’s being pushed to registry. Bazzite users then install updates by pulling new version of the image and 'rebasing' to it. It is called rebasing here, because rpm-ostree lets users add additional layers with more packages on top of that.

    EDIT: here’s the Containerfile I've been talking about: https://github.com/ublue-os/bazzite/blob/main/Containerfile Might give you some idea on how this works.

  • @netvor I guess cloud-native stands for service-provider lock-in, as their development workflow heavily relies on GitHub Actions.

90 comments