Replies: 1 comment 1 reply
-
|
Hi John, Mike here again. I would be all for a portable containerised SpamTagger IF there were bulletproof "how to" guides on how to spin up the latest Linux/whatever build ground-up from the OS to include adding a containerisation system, and everything else needed to get it working to the extent that I can use a GUI to configure it. The reason for the GUI is because some of us have little or no Linux/Unix knowledge (as you know) having come from a Windows background, and if you want to appeal to those of us running MS Exchange deployments (which is likely to be a large proportion of your userbase) then we're used to the Windows way of doing things. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I've made a comment in this issue with this idea, but will try to be a little more clear with the thoughts behind this are here and then welcome all comments (TL;DR at the bottom, but please read everything if you would like to comment).
Note that I'm not unbiased. I've been thinking about this for a few weeks and am very enthusiastic about the idea. I will try to be clear with the advantages and also the draw-backs, but note that I will be using a lot of negative language to describe the current distribution model since I have vivid knowledge of the problems involved and want to make it clear what problems I'm looking to solve.
The Problem(s)
There are several challenges with distributing software in the way that MailCleaner has been (ie. long-running VM images with the software spread across the filesystem and no mechanism for update integrity):
apt-get dist-upgradeeven if the application code could easily be migrated. This means that it requires a migration to a new VM.The Proposal
Technology to produce bootable container images is rapidly evolving. The foremost of these seems to be the BootC project, lead by the Cloud Native Computing Foundation (CNCF) the stewards of many other well-regarded projects such as Kubernetes, Podman, Prometheus Helm and many others.
The proposal would be to migrate to deploying via BootC OCI containers. These provide a read-only root filesystem which is versioned and atomically updated so that all installations will have an identical root filesystem and updates are guaranteed to install successfully, including across OS versions. The "bootable" component means that these containers can be installed to bare metal or a hypervisor by providing a bootloader and kernel so that it can operate as a traditional server/desktop without a container runtime and host OS (although it would remain possible to run under a Docker/Podman runtime also). Open Source tools exist to automatically build and host images and ISOs.
This would solve all of the above problems:
bootc rollbackand reboot to return to the version you were running prior to the last update.Sounds good? What's the catch?
These improvements are huge! However, nothing is without it's downsides.
/etcand/varwhich are writable. Custom templates and other supported customizations would be fetched from/etc/spamtaggerinstead of the current location in/usr. Additional software must be installed via Docker/Podman, Brew, PIP, NPM, Distrobox, or any other package manager which can install to a writable directory. Some documentation would be included on this, but unsupported modifications would be discouraged. We would prefer that additional packages just be added to the official builds after some testing if they may be applicable for other users. We could potentially have different tagged releases for add-ons (eg. 'stable-eset' to add ESET antivirus to the stable release) which would come bundled with the read-only image and you would add or remove these by usingbootc switchto reboot into the version with/without that package.My experience
I've been using similar technology on my desktop computers for years, starting with Fedora Silverblue 32 and Fedora CoreOS for my server since version 38. These use the same paradigm for distributing the operating system, whether you call it "immutable" (the common description, which advocates are trying to move away from), "atomic", "cloud native" or "image based". From these and other Fedora Atomic desktop spins, I've moved on to UBlue which is the foundation of the very popular gaming OS Bazzite which demonstrates feasibility for an appliance-like device (although I'm not a gamer, so I've never personally used it).
I've been getting some experience with these tools from a development perspective over the last couple of months. UBlue has recently moved to using BootC to provide bootable container images instead of using the older
rpm-ostreetool to install and manage the read-only filesystem snapshots and has dropped support for my preferred flavour (theSwaywindow manager version), so I've taken to building my own BootC images for my desktops.TL;DR
The proposal is to change SpamTagger distribution to use bootable containers instead of perpetual VMs:
x86_64VM image formats./etc/and/varare writable. The base operating system and application code cannot be changed except by updating and rebooting to the next pristine image.apt-getanddpkgas well as the ability to apply changes directly to the root filesystem and application source code. However, modifications and adding additional packages is - and has always been - strongly discouraged./etcand/varwithout risk to the operating system or application. This means that you can install via methods like Docker/Podman, Brew, PIP, NPM, Distrobox, etc.Feedback
What are your thoughts on this possible change?
I don't expect anyone to be an expert on any of these tools and methodologies in order to comment. I'm mostly looking for general sentiments.
Package availability on CentOS Stream 10 are not significantly different from Debian Bookworm or Trixie, so any work that still needs to be done for a new Debian release still needs to be done for CentOS and not a lot of significant new work would be required. However, it would still be better to begin a transition sooner rather than later. The most significant difference would be in the build infrastructure, but given that there are already other projects being built using CentOS BootC images it will probably actually be easier to proceed under the proposed scenario since much of that work is already being done for us by another active and excited team of developers.
Beta Was this translation helpful? Give feedback.
All reactions