Finch, інструмент розробки командного рядка для створення, запуску та публікації контейнерів Linux
Кілька днів тому Amazon оголосила у своєму блозі про запуск свого проєкту з відкритим кодом «Finch» , який розробляє набір інструментів для створення, публікації та запуску контейнерів Linux у форматі OCI (Open Container Initiative).
Згадується, що головною метою проекту "Finch" є спрощення роботи з контейнерами Linux на хост-системах, що не базуються на Linux.
Finch — це клієнт із відкритим кодом для розробки контейнерів. Його простий інсталятор забезпечує мінімальний рідний клієнт разом із об’єктивним розподілом інших компонентів з відкритим кодом. Замість того, щоб створювати ще більше можливостей для міркувань і вибору, Finch прагне сприяти просуванню інших проектів, спрощуючи їх встановлення та використання, водночас пропонуючи простий нативний клієнт, щоб зв’язати все разом.
Про Фінча
Проєкт Finch спирається на кілька проєктів з відкритим кодом, включаючи nerdctl, containerds, BuildKit та Lima. Це дозволяє вам негайно розпочати роботу, не потребуючи окремого розуміння та налаштування всіх цих компонентів (хоча запуск контейнерів у системах Linux не є тривіальним завданням, створення середовища для запуску контейнерів Linux у Windows та macOS таким не є).
Для роботи ми пропонуємо власну утиліту Finch, яка ховає деталі роботи з кожним компонентом за єдиним інтерфейсом. Щоб розпочати, просто встановіть наданий пакет, який містить усе необхідне, після чого ви зможете одразу створювати та запускати контейнери.
Для створення інтерфейсу командного рядка у Finch використовуються розробки проекту nerdctl, який надає набір команд, сумісних із Docker, для створення, запуску, публікації та завантаження контейнерів (build, run, push, pull тощо), таких як а також додаткові додаткові функції, такі як безкоренева робота, шифрування зображень, розповсюдження зображень P2P за допомогою IPFS і сертифікація зображень із цифровим підписом.
Крім того, згадується, що containerd використовується як середовище виконання для керування контейнером, тоді як набір інструментів BuildKit використовується для створення зображень у форматі OCI, а Lima використовується для запуску віртуальних машин Linux, налаштування спільного доступу до файлів і переадресації мережевих портів.
Що стосується функцій Finch, то серед основних можна назвати підтримку постійного диска, покращення часу ініціалізації віртуальної машини, скорочення часу запуску вдвічі для розробників, експериментальну підтримку системи віртуалізації Apple, додаткове прискорення продуктивності у Finch VM та інструмент для тестування, який запускається на кожному коміті для перевірки існуючих показників продуктивності.
Наразі Finch працює у версії 1.0, яка позначена як перша стабільна версія, придатна для робочого розгортання та щоденного використання на платформі macOS. Підтримку клієнтів для Linux і Windows планується додати в наступні випуски.
Ми хочемо, щоб Finch був стабільним і ефективним інструментом розробки під час виконання, який полегшує користувачам виконання завдань розробки шляхом створення та запуску контейнерів локально та взаємодії з реєстрами контейнерів. Ця версія 1.0 демонструє наше переконання, що Finch готовий до використання у виробництві як щоденного інструменту розробника контейнерів у macOS.
У рамках проекту Amazon також підготував кілька розширень, які були перенесені в основну частину проекту nerdctl. Зокрема, підготовлені компоненти для цифрового підпису зображень, а також підтримка створення та запуску зображень за допомогою технології SOCI (Seekable OCI), яка спочатку була створена для AWS і дозволяє значно швидше завантажувати зображення-контейнери ( SOCI дозволяє починати запуск без очікування повного завантаження зображення та завантаження частин, необхідних для роботи, у міру необхідності).
Для тих, хто зацікавлений у проєкті, код Фінча написаний на Go та розповсюджується за ліцензією Apache 2.0 на GitHub . Ви можете знайти деталі релізу в оригінальному анонсі в блозі AWS.