Группа Microsoft Linux Systems недавно выпустила новый дистрибутив Linux: CBL-Mariner. Дистрибутив является частью инфраструктуры Azure, используемой для пограничных сетевых служб.
Сотрудничество Microsoft и Linux обычно ассоциируется с работой по созданию оптимизированного ядра Linux подсистемы Windows для Linux (WSL). Но ядро R03;R03;WSL2 – не единственное предложение Microsoft для Linux.
У Microsoft существует официальная группа Linux Systems, которая ведет большую часть проектов компании с Linux. Эта команда выпустила новый дистрибутив Linux: CBL-Mariner.
CBL-Mariner
CBL-Mariner – это внутренний дистрибутив Linux для облачной инфраструктуры, а также периферийных продуктов и услуг Microsoft. Дистрибутив предназначен для создания согласованной платформы устройств и служб.
Он расширяет возможности Microsoft в отношении обновлений Linux. Эта инициатива является частью растущих инвестиций Microsoft в широкий спектр технологий Linux, таких как SONiC, Azure Sphere OS и Windows Subsystem for Linux (WSL). CBL-Mariner публикуется в открытом доступе в рамках приверженности Microsoft принципам открытого исходного кода и внесения своего вклада в сообщество Linux.
CBL-Mariner был разработан с учетом того, что небольшой общий базовый набор пакетов может удовлетворить универсальные потребности сторонних облачных и пограничных сервисов. Это позволит отдельным группам размещать дополнительные пакеты поверх общего ядра для создания образов своих рабочих нагрузок. Такая возможность появилась благодаря простой системе сборки, с помощью которой можно:
- создавать желаемый набор пакетов RPM из файлов SPEC и исходных файлов;
- создавать артефакты образов, такие как ISO или VHD, из заданного набора пакетов.
Вне зависимости от того, развернута ли она в качестве контейнера или хоста, CBL-Mariner потребляет ограниченные ресурсы диска и памяти. «Легкие» характеристики CBL-Mariner также обеспечивают быстрое время загрузки и минимальную поверхность для атак.
По умолчанию CBL-Mariner имеет только базовые пакеты, необходимые для поддержки и запуска контейнеров, используя тот же подход, что и CoreOS. По сути, контейнеры Linux – это изолированное пользовательское пространство. Сведение к минимуму общих ресурсов снижает уязвимость ОС хоста, гарантируя, что контейнеры приложений не могут зависеть от нее.
CBL-Mariner использует знакомые инструменты Linux для добавления пакетов и управления обновлениями безопасности. Обновления доступны либо в виде пакетов RPM, либо в виде полных образов, которые можно развернуть по мере необходимости. Использование RPM позволяет добавлять собственные пакеты в базовый образ CBL-Mariner для поддержки дополнительных функций и услуг по мере необходимости.
Контейнерный хост Microsoft Linux
Инвестиции в облегченный Linux, такой как CBL-Mariner, оправданы, учитывая инвестиции Microsoft в контейнерные технологии. Экономика облака требует, чтобы хосты использовали как можно меньше ресурсов. Это позволяет таким сервисам, как Azure, получить высокую степень производительности. В то же время контейнеры Kubernetes требуют меньше накладных расходов, позволяя использовать больше узлов на каждый модуль и запускать новые узлы быстрее.
То же касается периферийного оборудования, особенно пограничных узлов следующего поколения, предназначенных для использования с сетями 5G. Здесь, как и в общедоступном облаке, важнее всего рабочие нагрузки, которые перемещают их и данные ближе к пользователям. Microsoft использует растущее количество периферийного оборудования как часть сети доставки контента Azure за пределами основных центров обработки данных. Контент кешируется из веб-приложений Azure, а также с размещенных видео- и файловых серверов.
В прошлом Red Hat CoreOS была предпочтительным хостом для контейнеров Linux, но недавнее прекращение поддержки означает, что она больше не подходит для этих целей. В качестве альтернативы, Microsoft предлагает форк Flatcar Linux CoreOS для пользователей Azure в рамках партнерства с разработчиками Kinvolk. Наличие собственного дистрибутива гарантирует, что он может обновлять и управлять экземплярами хоста и контейнера по собственному расписанию.
Публичная разработка доступна всем, кто хочет создавать и использовать свои сборки или внести новые функции для оптимизации, например, добавить поддержку новых сетевых функций.