La société SUSE a publié le deuxième prototype de la plateforme ALP « Punta Baretti » (Adaptable Linux Platform), présentée comme la suite du développement de la distribution SUSE Linux Enterprise. La principale différence d'ALP réside dans la séparation de la base de la distribution en deux parties : une « host OS » réduite pour fonctionner sur le matériel et une couche de prise en charge des applications, axée sur l'exécution dans des conteneurs et des machines virtuelles. Les builds sont préparés pour l'architecture x86_64. ALP est initialement développé en utilisant un processus de développement ouvert, où les builds intermédiaires et les résultats des tests sont publiquement accessibles à tous.
L'architecture ALP repose sur le développement d'un environnement « host OS », minimalement nécessaire pour supporter et gérer le matériel. Toutes les applications et composants de l'espace utilisateur doivent être exécutés non dans un environnement mixte, mais dans des conteneurs séparés ou dans des machines virtuelles, exécutés au-dessus du « host OS » et isolés les uns des autres. Cette organisation permettra aux utilisateurs de se concentrer sur les applications et d'abstraire les flux de travail, en les séparant de l'environnement système de bas niveau et du matériel.
Le produit SLE Micro, basé sur les avancées du projet MicroOS, est utilisé comme base pour le « host OS ». Pour une gestion centralisée, des systèmes de gestion de configuration Salt (préinstallé) et Ansible (option) sont proposés. Pour le lancement de conteneurs isolés, des outils comme Podman et K3s (Kubernetes) sont disponibles. Parmi les composants système, ceux qui sont vraisemblablement mis en conteneurs incluent yast2, podman, k3s, cockpit, GDM (GNOME Display Manager) et KVM.
Parmi les caractéristiques de l'environnement système, on mentionne l'utilisation par défaut du chiffrement complet du disque (FDE, Full Disk Encryption) avec la possibilité de stocker les clés dans le TPM. La partition racine est montée en mode lecture seule et n'est pas modifiée en cours d'exécution. L'environnement utilise un mécanisme d'installation atomique des mises à jour. Contrairement aux mises à jour atomiques basées sur ostree et snap, utilisées dans Fedora et Ubuntu, ALP utilise le gestionnaire de paquets standard et le mécanisme de snapshots dans le système de fichiers Btrfs.
Un mode d'installation automatique des mises à jour est prévu (par exemple, il est possible d'activer l'auto-installation uniquement pour les correctifs des vulnérabilités critiques ou de revenir à une confirmation manuelle de l'installation des mises à jour). Des live patches sont pris en charge pour mettre à jour le noyau Linux sans redémarrer et sans suspendre le fonctionnement. Pour maintenir la résilience du système (self-healing), le dernier état stable est enregistré à l'aide de snapshots Btrfs (en cas d'anomalies détectées après l'application des mises à jour ou des modifications de configuration, le système est automatiquement restauré à l'état précédent).
La plateforme utilise une pile logicielle multi-version — grâce à l'utilisation de conteneurs, il est possible d'utiliser simultanément différentes versions d'outils et d'applications. Par exemple, il est possible de lancer des applications nécessitant différentes versions de Python, Java et Node.js en séparant les dépendances incompatibles. Les dépendances de base sont fournies sous forme d'ensembles BCI (Base Container Images). L'utilisateur peut créer, mettre à jour et supprimer des piles logicielles sans affecter d'autres environnements.
Les principales modifications dans le deuxième prototype d’ALP :
- Un installateur D-Installer a été mis en place, dans lequel l'interface utilisateur est séparée des composants internes de YaST et qui permet l'utilisation de divers front-ends, y compris un front-end pour la gestion de l'installation via une interface web. L'interface de base pour la gestion de l'installation est construite en utilisant des technologies web et inclut un gestionnaire fournissant l'accès aux appels D-Bus via HTTP, ainsi qu'une interface web. L'interface web est écrite en JavaScript en utilisant le framework React et des composants PatternFly. Pour garantir la sécurité, D-Installer prend en charge l'installation sur des partitions chiffrées et permet l'utilisation d'un TPM (Trusted Platform Module) pour déchiffrer la partition de démarrage, en utilisant des clés stockées dans la puce TPM au lieu de mots de passe.
- L'exécution de certains clients YaST (bootloader, iSCSIClient, Kdump, firewall, etc.) dans des conteneurs séparés a été assurée. Deux types de conteneurs ont été mis en œuvre : des conteneurs de gestion pour travailler avec YaST en mode texte, en GUI et via l'interface Web, ainsi que des conteneurs de test pour effectuer des tests automatisés. Plusieurs modules ont également été adaptés pour être utilisés dans des systèmes avec des mises à jour transactionnelles. Une bibliothèque libyui-rest-api avec la mise en œuvre d'une API REST est proposée pour l'intégration avec openQA.
- L'exécution dans un conteneur de la plateforme Cockpit a été mise en œuvre, sur laquelle l'interface web du configurateur et de l'installateur est construite.
- La possibilité d'utiliser un chiffrement de disque complet (FDE, Full Disk Encryption) a été assurée pour les installations sur matériel ordinaire, et pas seulement dans des systèmes de virtualisation et des systèmes cloud.
- GRUB2 a été utilisé comme le chargeur de démarrage principal.
- Des configurations ont été ajoutées pour le déploiement de conteneurs pour la construction de pare-feux (firewalld-container) et la gestion centralisée des systèmes et clusters (warewulf-container).
Source : opennet.ru
