Finch, инструмент разработки командной строки для создания, запуска и публикации контейнеров Linux.
Несколько дней назад компания Amazon объявила в своем блоге о запуске проекта с открытым исходным кодом "Finch", который разрабатывает набор инструментов для создания, публикации и запуска контейнеров Linux в формате OCI (Open Container Initiative).
Упоминается, что главная цель проекта «Finch» — упростить работу с контейнерами Linux на хост-системах, не использующих Linux.
Finch — клиент с открытым исходным кодом для разработки контейнеров. Его простой установщик предоставляет минимальный собственный клиент, а также объективное распространение других компонентов с открытым исходным кодом. Вместо того, чтобы создавать еще больше возможностей для размышлений и выбора, Finch стремится способствовать продвижению других проектов, упрощая их установку и использование, одновременно предлагая простой собственный клиент, который свяжет все это воедино.
О Финче
Проект Finch опирается на несколько проектов с открытым исходным кодом, включая nerdctl, containerd, BuildKit и Lima. Это позволяет начать работу немедленно, без необходимости разбираться и настраивать все эти компоненты по отдельности (хотя запуск контейнеров в системах Linux — задача нетривиальная, создание среды для запуска контейнеров Linux в Windows и macOS — совсем другое дело).
Для работы мы предлагаем собственную утилиту Finch, которая скрывает детали работы с каждым компонентом за единым интерфейсом. Для начала просто установите предоставленный пакет, включающий в себя все необходимое, после чего вы сможете сразу создавать и запускать контейнеры.
Для построения интерфейса командной строки в Finch используются разработки проекта nerdctl, который предоставляет набор Docker-совместимых команд для сборки, запуска, публикации и загрузки контейнеров (build, run, push, pull и т.д.), таких как а также дополнительные дополнительные функции, такие как работа без root-доступа, шифрование изображений, распространение изображений P2P с использованием IPFS и сертификация изображений с цифровой подписью.
Кроме того, упоминается, чтоContainerd используется в качестве среды выполнения для управления контейнерами, набор инструментов BuildKit используется для создания образов в формате OCI, а Lima используется для запуска виртуальных машин Linux, настройки общего доступа к файлам и переадресации сетевых портов.
Что касается функций Finch, то к основным преимуществам относятся поддержка постоянного доступа к дискам, улучшение времени инициализации виртуальных машин, сокращение времени запуска для разработчиков вдвое, экспериментальная поддержка платформы виртуализации Apple, предоставление дополнительных ускорений производительности в виртуальных машинах Finch, а также инструмент для проверки производительности, который запускается при каждом коммите и подтверждает существующие показатели производительности.
В настоящее время Finch использует версию 1.0, которая отмечена как первая стабильная версия, подходящая для производственного развертывания и ежедневного использования на платформе macOS. Поддержка клиентов для Linux и Windows планируется добавить в будущих выпусках.
Мы хотим, чтобы Finch был стабильным и эффективным инструментом разработки во время выполнения, который позволял бы пользователям легко выполнять свои задачи по разработке, создавая и запуская контейнеры локально и взаимодействуя с реестрами контейнеров. Эта версия 1.0 отражает наше убеждение в том, что Finch готов к использованию в качестве повседневного инструмента разработчика контейнеров на macOS.
В рамках проекта Amazon также подготовила несколько расширений, которые были портированы в основную часть проекта nerdctl. В частности, подготовлены компоненты для цифровой подписи образов, а также поддержка создания и запуска образов с использованием технологии SOCI (Seekable OCI), изначально созданной для AWS и позволяющей существенно ускорить загрузку образов контейнеров (SOCI позволяет начать запуск без ожидание полной загрузки образа и загрузка необходимых для работы частей по мере необходимости).
Для тех, кто интересуется проектом, код Финча написан на Go и распространяется под лицензией Apache 2.0 на GitHub . Подробности о релизе можно найти в оригинальном объявлении в блоге AWS.