Компания SUSE опубликовала второй прототип платформы ALP “Punta Baretti” (Adaptable Linux Platform), позиционируемой как продолжение развития дистрибутива SUSE Linux Enterprise. Ключевым отличием ALP является разделение базовой основы дистрибутива на две части: урезанную “host OS” для работы поверх оборудования и слой для поддержки приложений, ориентированный на запуск в контейнерах и виртуальных машинах. Сборки подготовлены для архитектуры x86_64. ALP изначально развивается с использованием открытого процесса разработки, при котором промежуточные сборки и результаты тестирования публично доступны всем желающим.
Архитектура ALP основана на развитии в “host OS” окружения, минимально необходимого для поддержки и управления оборудованием. Все приложения и компоненты пространства пользователя предлагается запускать не в смешанном окружении, а в отдельных контейнерах или в виртуальных машинах, выполняемых поверх “host OS” и изолированных друг от друга. Подобная организация позволит пользователям сфокусировать внимание на приложениях и абстрагировать рабочие процессы, отделив их от низкоуровневого системного окружения и оборудования.
В качестве основы для “host OS” задействован продукт SLE Micro, основанный на наработках проекта MicroOS. Для централизованного управления предлагаются системы управления конфигурацией Salt (предустановлена) и Ansible (опция). Для запуска изолированных контейнеров доступны инструментарии Podman и K3s (Kubernetes). Среди системных компонентов, вынесенных в контейнеры, присутствуют yast2, podman, k3s, cockpit, GDM (GNOME Display Manager) и KVM.
Из особенностей системного окружения упоминается использование по умолчанию дискового шифрования (FDE, Full Disk Encryption) с возможностью хранения ключей в TPM. Корневой раздел монтируется в режиме только для чтения и не меняется в процессе работы. В окружении применяется механизм атомарной установки обновлений. В отличие от атомарных обновлений на базе ostree и snap, используемых в Fedora и Ubuntu, в ALP вместо построения отдельных атомарных образов и развёртывания дополнительной инфраструктуры доставки применяются штатный пакетный менеджер и механизм снапшотов в ФС Btrfs.
Предусмотрен настраиваемый режим автоматической установки обновлений (например, можно включить автоустановку только исправлений критических уязвимостей или вернуться к ручному подтверждения установки обновлений). Для обновления ядра Linux без перезапуска и приостановки работы поддерживаются live-патчи. Для поддержания живучести системы (self-healing) осуществляется фиксация последнего стабильного состояние при помощи снапшотов Btrfs (в случае выявление аномалий после применения обновлений или изменения настроек система автоматически переводится в предыдущее состояние).
В платформе применяется многоверсионный программный стек – благодаря применению контейнеров можно одновременно использовать разные версии инструментов и приложений. Например, можно запускать приложения, использующие в зависимостях разные версии Python, Java и Node.js, разделяя несовместимые между собой зависимости. Базовые зависимости поставляются в форме наборов BCI (Base Container Images). Пользователь может создавать, обновлять и удалять программные стеки не затрагивая другие окружения.
Основные изменения во втором прототипе ALP:
- Задействован инсталлятор D-Installer, в котором пользовательский интерфейс отделён от внутренних компонентов YaST и имеется возможность использования различных фронтэндов, в том числе фронтэнда для управления установкой через web-интерфейс. Базовый интерфейс для управления установкой построен с использованием web-технологий и включает обработчик, обеспечивающий доступ к вызовам D-Bus через HTTP, и непосредственно web-интерфейс. Web-интерфейс написан на JavaScript с использованием фреймворка React и компонентов PatternFly. Для обеспечения безопасности D-Installer поддерживает установку на шифрованные разделы и позволяет использовать TPM (Trusted Platform Module) для расшифровки загрузочного раздела, используя вместо паролей ключи, хранимые в TPM-чипе.
- Обеспечено выполнения некоторых клиентов YaST (bootloader, iSCSIClient, Kdump, firewall и т.п.) в отдельных контейнерах. Реализовано два типа контейнеров – управляющие для работы с YaST в текстовом режиме, в GUI и через Web-интерфейс, и тестовые для проведения автоматизированного текстирования. Ряд модулей также адаптированы для использования в системах с транзакционными обновлениями. Для интеграции с openQA предложена библиотека libyui-rest-api с реализацией REST API.
- Реализовано выполнение в контейнере платформы Cockpit, на базе которых построен web-интерфейс конфигуратора и инсталлятора.
- Обеспечена возможность использования полнодискового шифрования (FDE, Full Disk Encryption) в установках поверх обычного оборудования, а не только в системах виртуализации и облачных системах.
- В качестве основного загрузчика задействован GRUB2.
- Добавлены конфигурации для развёртывания контейнеров для построения межсетевого экрана (firewalld-container) и централизованного управления системами и кластерами (warewulf-container).