Объявление Apple о поддержке местной контейнеризации в MacOS 26 Tahoe отмечает значительный сдвиг в ландшафте контейнеризации. Новая структура контейнеризации и сопровождающий инструмент Cli Container официально отмечают вход Apple в экосистему времени выполнения контейнера. Это решение из с открытым исходным кодом направлено на то, чтобы предоставить разработчикам нативную альтернативу традиционным инструментам контейнеризации, такими как Docker, специально оптимизированные для среда Apple Silicon и MacOS.
Структура вводит принципиально различный архитектурный подход к изоляции контейнеров. В отличие от обычных решений, которые полагаются на общие виртуальные машины, реализация Apple создает выделенные, легкие виртуальные виртуальные машины для каждого контейнера. В этом техническом инновациях решают давние проблемы эффективности и безопасности, которые преследуют контейнеризацию на платформах MacOS.
Идея картирования каждого контейнера с выделенной виртуальной машиной не совсем нова. Hyper (теперь несуществующий), один из стартапов, попытался сделать этот подход несколько лет назад. То же самое относится и к проекту Intel Clear Containers (теперь устаревшего). Оба проекта в настоящее время объединены в контейнеры KATA, которые составляют основу для основной архитектуры проекта Apple Containerization.
Давайте поближе посмотрим на структуру контейнеризации и сравним ее с настольным компьютером Docker.
Архитектурный фонд Apple VM-Pon-Container Model
Структура контейнеризации Apple реализует уникальную архитектуру One-Vm-Container. Каждый контейнер Linux работает в своей собственной выделенной легкой виртуальной машине, используя структуру виртуализации MacOS для изоляции аппаратного уровня. Этот подход резко контрастирует с традиционными моделями контейнеризации, где несколько контейнеров имеют одну большую виртуальную машину.
Фтруктура создает эти виртуальные машины с использованием оптимизированной конфигурации ядра Linux, специально предназначенной для быстрого времени загрузки. Контейнеры достигают времени запуска подсекунды посредством тщательной оптимизации ядра и минимальной корневой файловой системы, содержащей только важные компоненты. Система устраняет ненужные основные утилиты, динамические библиотеки и реализации LIBC, чтобы уменьшить поверхность атаки и повысить производительность.
Система vminitd init
В основе каждого контейнера VM запускает Vminitd, пользовательскую систему Init, написанную полностью в Swift. Этот минималистский процесс инициализма обрабатывает критические задачи виртуализации, включая назначение IP-адресов для сетевых интерфейсов, монтаж файловой системы контейнерных блочных устройств, запуск и надзор процесса и управление API для связи с хост-контентером.
Система Vminitd работает в чрезвычайно ограниченной среде путем проектирования. Он работает без стандартных основных утилит, динамических библиотек или традиционных реализаций LIBC. Этот урезанный подход значительно снижает потенциальную поверхность атаки, сохраняя при этом существенную функциональность для контейнерных операций.
Swift-National реализация
Весь фреймворк широко использует возможности Swift, включая Swift Static Linux SDK, что позволяет перекрестно компилировать статические двоичные файлы Linux непосредственно из MacOS. Система использует Musl для статической связи поддержки, позволяя создавать автономные двоичные файлы, которые не требуют внешних зависимостей. Этот подход обеспечивает по -настоящему портативные реализации контейнеров при сохранении оптимизации производительности для архитектур кремния Apple.
Docker Desktop Architecture на подходе традиционной виртуализации macOS
Docker Desktop на MacOS работает через принципиально различную архитектурную модель. Система создает единственную большую виртуальную машину Linux, которая одновременно размещает все контейнеры. Этот общий подход виртуальной машины требует, чтобы Docker использовал либо гипервизор гиперкитов (устаревшего), либо виртуализацию Apple. Фроналка для создания базовой среды Linux.
Архитектура Docker включает в себя несколько вариантов управления виртуализацией. Пользователи могут выбирать между Docker VMM, Apple Virtuization Framework или QEMU (устаревшим на Apple Silicon). Каждый вариант предоставляет различные характеристики производительности и наборы функций, но все поддерживают общую модель виртуальной машины для выполнения контейнеров.
Проблемы управления ресурсами
Общая архитектура VM Docker создает несколько сложностей управления ресурсами. VM Linux должна быть выделена достаточными ресурсами для обработки всех одновременных контейнеров, что может привести к потенциально неэффективному использованию ресурсов. Когда контейнеры не работают активно, фоновая виртуальная машина продолжает потреблять системные ресурсы, влияя на общую производительность системы.
Синхронизация файловой системы между MacOS и VM Linux исторически была значительной узкой местом производительности. В то время как недавние версии Docker Desktop улучшились с такими функциями, как Virtiofs и режим Saver, фундаментальные архитектурные ограничения общей модели VM остались.
Сравнение архитектуры безопасности Apple изоляция на уровне гипервизора
Подход Apple для виртуальной машины Apple предоставляет каждому контейнеру одинаковый уровень изоляции, что и традиционная виртуальная машина. Эта изоляция на уровне гипервизора гарантирует, что контейнеры не могут получить доступ к пространствам памяти друг друга или мешать операциям системной системы. Архитектура устраняет уязвимости распределения ядра, обычную в традиционных подходах к контейнеризации.
Структура реализует конфиденциальность по принципам проектирования посредством обмена гранулярными каталогами, где только конкретный контейнер, запрашивающий доступ к хост -каталогам, получает этот доступ, тем самым предотвращая непреднамеренно добывать общие ресурсы. Этот мелкозернистый контроль конфиденциальности превосходит традиционные механизмы выделения контейнеров.
Безопасность сети и изоляция
Каждый контейнер Apple получает свой собственный специальный IP-адрес, устраняя необходимость пересылки портов и сокращение сетевых векторов атаки. Этот подход упрощает конфигурацию сети, обеспечивая более сильную сетевую изоляцию между контейнерами. Разработчики могут получить доступ к службам непосредственно через IP -адреса контейнеров, а не управлять сложными схемами отображения портов.
Выделенная сетевая модель также повышает производительность за счет сокращения накладных расходов сетевого перевода. Приложения могут связываться со стандартными портами в своих контейнерах без конфликтов, упрощения конфигураций развертывания и снижения потенциальных неправильных сборов безопасности.
Модель безопасности Docker
Модель безопасности Docker полагается в первую очередь на пространства имен ядра Linux и C -графы для изоляции контейнера. Несмотря на эффективное, этот подход означает, что все контейнеры имеют одно и то же ядро, что потенциально создает уязвимости безопасности, если обнаружены эксплойты ядра. Архитектура общей виртуальной машины также требует тщательного управления разрешениями файловой системы и контроля доступа к сети.
Недавние версии Docker реализовали дополнительные функции безопасности, включая сканирование изображений, подписанные изображения и мониторинг времени выполнения. Тем не менее, эти улучшения работают на уровне приложения, а не обеспечивают изоляцию оборудования, предлагаемое подходом Apple Hypervisor.
Опыт разработки и экосистема Apple Container CLI и рабочий процесс
Инструмент контейнера CLI предлагает знакомые операции командной строки для управления контейнерами. Разработчики могут вытащить изображения из стандартных реестров, соответствующих OCI, запускать интерактивные сеансы и управлять жизненными циклами контейнеров, используя простые команды. Инструмент поддерживает совместимость с существующими форматами изображений контейнеров, обеспечивая бесшовную интеграцию с существующими рабочими процессами разработки.
Подход Apple подчеркивает простоту и собственную интеграцию в средах разработки MacOS. На основе Swift Toolchain естественным образом интегрируется с XCode и другими инструментами разработки Apple, что потенциально обеспечивает более сплоченный опыт разработки для разработчиков iOS и MacOS.
Docker Ecosystem зрелость
Docker сохраняет существенное преимущество экосистемы с обширным инструментом, платформами оркестровки и сторонними интеграциями. Экосистема Docker включает в себя Docker Compose для мультиконтонных приложений, рой Docker для оркестровки и комплексные интеграции CI/CD.
Зрелая экосистема Docker предоставляет функции предприятия, включая централизованные консоли управления, комплексное сканирование безопасности и варианты профессиональной поддержки. Эти предприятия в настоящее время превышают то, что предлагает зарождающаяся структура контейнеризации Apple.
Ограничения и соображения.
Структура контейнеризации Apple в настоящее время требует MacOS 26 Tahoe для оптимальной функциональности. В то время как основные операции работают над Sequoia MacOS 15, значительные сетевые ограничения влияют на удобство использования на более старых системах. Фреймворк также требует Apple Silicon Adnuge для оптимальной производительности, что ограничивает его принятие Mac на основе Intel.
Экосистема вокруг контейнеров Apple остается ограниченной по сравнению с обширным ландшафтом Docker. Отсутствующие функции включают инструменты оркестровки, эквивалентные Docker Compose, комплексные решения для мониторинга и возможности управления предприятиями.
Продолжающиеся проблемы Докера
Несмотря на улучшения, Docker на MacOS все еще сталкивается с архитектурными ограничениями. Общая модель виртуальной машины создает накладные расходы ресурсов и потенциальные узкие места производительности, особенно для рабочих процессов разработки, включающих несколько параллельных контейнеров. Срок службы батареи и тепловое управление остаются обеспокоенными интенсивными работами в области разработки в области контейнер.
Проблемы кроссплатформенной совместимости сохраняются, особенно при сравнении архитектур ARM и X86. В то время как перевод Rosetta 2 помогает, штрафы за производительность могут быть значимыми для вычислительно интенсивных рабочих нагрузок.
Заключение
Структура контейнеризации Apple представляет собой значительную техническую инновацию в архитектуре времени выполнения контейнеров. Модель VM-Per-Container обеспечивает превосходную изоляцию безопасности и устраняет многие проблемы производительности, связанные с традиционной контейнеризацией на macOS. Внедрение и оптимизация Swift для Apple Silicon демонстрирует приверженность Apple к оптимизации производительности, специфичной для платформы.
Тем не менее, экосистема Docker и кроссплатформенная совместимость продолжают обеспечивать существенные преимущества для большинства сценариев разработки. Обширные инструменты, предприятия и широкое внедрение промышленности делают Docker более безопасным выбором для развертывания производства и сложных рабочих процессов развития.
Выбор между Apple Containers и Docker в конечном итоге зависит от конкретных вариантов использования, требований безопасности и экосистемных зависимостей. Организации, приоритетные безопасность и производительность на платформах Apple, могут найти подход Apple убедительным, в то время как те, кто требует обширного инструментального и кроссплатформенного совместимости, вероятно, по-прежнему будут полагаться на зрелую экосистему Docker.
По мере развития структуры контейнеризации Apple и развивается ее экосистема, она может стать жизнеспособной альтернативой для рабочих процессов разработки, ориентированных на MacOS. Технический фонд является прочной, но широко распространенное принятие потребует значительного развития экосистемы и вовлечения сообщества, чтобы соответствовать всесторонним возможностям Docker.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Janakiram MSV является основным аналитиком в Janakiram & Associates и адъюнкт -преподавателем Международного института информационных технологий. Он также является квалифицированным Google Cloud Developer, сертифицированным архитектором решений Amazon, сертифицированным разработчиком Amazon, … Подробнее от Janakiram MSV