Applications self hosted on The Edge will use the last to date version of the Debian operating system. The respective container images are published on the image server of Linux Containers.
Applications self hosted on The Edge will use container images of other Linux distributions published on the image server of Linux Containers, such as Ubuntu and ArchLinux, when Debian would be unsupported by the application or for any other practical reason. Imagine that our team would stumble and fall because of blocking issues related to the usage of Debian, while it works well on Ubuntu. In addition, there is software which is packaged only for some operating systems.
To facilitate potential future automation of the installation and upgrade of applications on The Edge the support of many operating systems run within Linux containers is impractical. We would like to stick to a single operating system as much as possible. The consistent approach will also help administrators of The Edge with installing and maintaining applications manually.
In order to make a decision, we need to consider the following questions.
Is the operating system run within a Linux container
Serious about backward compatibility?
As slim as possible?
Supported by the majority of applications self hosted on The Edge and their dependencies?
Reliable when updating system packages?
Providing frequent updates for system packages?
Providing up to date software packages?
The matrix of the possible options is below. The used scale for points is 1 - 5, where 1 point is the least and 5 points are the highest score.
Criterium | ArchLinux | Debian | Ubuntu |
---|---|---|---|
Backward compatibility | 1 | 5 | 5 |
Slim and well performing | 4 | 5 | 3 |
Wide app and library support | 5 | 5 | 5 |
Reliable update of system packages | 3 | 5 | 5 |
Frequent updates | 5 | 3 | 3 |
Up to date system packages | 5 | 3 | 3 |
Total score | 23 | 26 | 24 |
Thus Debian will be the preferred operating system for applications self hosted on The Edge. We will be using the latest version of the Debian Cloud image published on the image server of Linux Containers.
ArchLinux has many merits and backward compatibility is definitely not one of them. Up to a point The Liberated Edge was relying on ArchLinux containers. On a couple of occasions the philosophy of ArchLinux - being a rolling release distribution - to upgrade immediately to the newest versions of software without providing out of the box alternatives for backward compatibility caused headaches with maintenance and required emergency actions.
ArchLinux upgraded irreversibly to PHP 8.2 when Nextcloud was only supporting PHP 8.1.
Every year PostgreSQL releases a new major version. Then ArchLinux immediately picks it up. When the current version of PostgreSQL is upgraded to a new major version, a data migration workflow needs to be followed in order for the upgraded database server to get back to running state. This is a pain in the neck when many applications depend on their own instances of the PostgreSQL database engine. Rolling back to the previous version of PostgreSQL and prohibiting its upgrade is also not a good long term solution as the libraries are updated so often that sooner rather than later the database server may not work again and the data migration would be mandatory.
Debian has not presented any issues with updating packages or upgrading to a next major version in a Linux container yet.
Similar to Debian.
The numbers below are not indicative for the performance of any Linux distribution. They should not be perceived as benchmarking of any kind. Measurements have also been performed in an ad-hoc and non-representative way. Images are also changing, so none of these numbers are set in stone. They are just snapshots of proxy metrics that form the basis of our simple hypothesis around performance and slimness of the stock images of different Linux distributions published on the image server of Linux Containers.
Criterium | ArchLinux | Debian | Ubuntu |
---|---|---|---|
Image size (MiB) | 189 | 122 | 436 |
Number of running systemctl services* | 14 | 5 | 9 |
Used memory (MiB)* | 87 | 22 | 27 |
* Measured for a newly launched stock container.
All of the explored Linux distribution have very wide app and package support. The AUR is often referred to as the biggest software package repository, though the quality of the packages there is often far from ideal.
Every now and then the upgrade procedure is halted because of some issues that require manual work in order to unblock the process, e.g. signing issues.
Debian has not presented any issues with updating system packages yet.
Similar to Debian.
ArchLinux updates are by far most frequent of all.
The latest Debian release is updated relatively frequently. When there is a newer Debian release, OS upgrade within Linux containers has been tested as non problematic.
Similar to Debian.
Cutting edge.
The latest Debian release contains relatively up to date packages.
Similar to Debian.