Let's ClearLinux*
It has been a couple of Months, that I have participated in OpenStack Summit. During the summit have met an Old Friend, Eric from Intel. He wanted to run some demo of their Product which accelerates AI and Machine Learning complex Algorithm using GPU, Kata Containers and some custom kernel module. But for me, something was shining at the time which was a new shiny Linux environment with some extraordinary command line interface. It has also some strange command that I haven’t seen them before. So yes it was the first time I have ever seen clear Linux interface. So I start to figure it out and Installed on a virtual machine but after a while, I realized it is exactly what I like to have as default Distro.
Clear Linux has awesome features. Rolling Update, Bundles, Mixers Features, and the most enthusiastic one clr-restart-service. I may explore some of them here with samples but I highly suggest you try it out - At least on top of a Virtual Machine.
Swupd:
The Package manager of ClearLinux* but it has some awesome features Like Versioning, Update Integrity and efficiency. It also has a really fun feature called Auto-Update which is a bit strange in Linux world. But when you can decide whether you need it or not, why not it’s a considerable feature.Basically swupd acts at the individual file level instead of a package level. Therefore updates are small and fast.
On many Linux* distributions, updates to a particular software package require the whole software package to be downloaded and replaced –even for one line of code.In Clear Linux OS, updates are generated using the mixer tool. Mixer calculates the difference between two Clear Linux OS versions and makes available binary deltas, which contain only the changed portion of files
Swupd also supports versioning which means it allows us to update a specific version of an update either a customized version one - Using Mixin
With Clear Linux OS swupd, versioning happens at the individual file-level. This means Clear Linux OS generates an entirely new OS version with any set of software changes to the system (including software downgrades or removals). This rolling release versioning model is similar to git internal version tracking, where any of the individual file commits are tracked and move the pointer forward when changed.
Bundles are another admirable feature that suwpd has. Bundles are pre-associated software and each Bundle has a specific Purpose. It helps by preparing all the required upstream open-source projects and packages into one logical unit.You may check following link regarding to bundles:
Mixers:
ClearLinux* is a highly customizable distribution powering Mixer. Mixer by itself provides two other sub-concepts.
- mix : to create a distinct derivative of the Clear Linux OS that contains your custom software.
- mixin: to add custom bundles but also keep updating the OS from upstream.
I highly suggest to take a look at this link in order to get a better understanding of mixers:
Autospec:
You may ask which packages can be installed on ClearLinux* comparing to traditional Linux distros. I am pretty sure that ClearLinux* has been written from scratch but there is a tool which helps you to install RMP packages. even better than RED-IBM. As you know a standard rpm build uses a tarball and .spec but here in ClearLinux* we may trust autospec to run build procedure for us. I can compare this with makepkg in the arch Linux world.
Restart System Services after patching the OS:
It is always exhausting in the production world to keep the whole system up to date. Some services which are on loads needs to restart after an Upgrade. Sometimes the OS itself needs to restart after an Update. So if you are dealing in your Operation and Administration team all the time with a long conversation about them you may try ClearLinux* as well.
In a similar word, these features enable us to keep downtime as less as possible. clr-service-restart uses procfs which provided by Kernel and therefore it is just two reasons to restart a service daemon:
- A new version replaces the executable file itself.
- A new version replaces a library component used by a service daemon.
It also checks systemd whether the demon is a background task or running process is part of a service system. ClearLinux* also provides a Telemetry, with which we can send and receive telemetric data if at some point clr-service-restart failed or something unexpected happened.