balena — платформа для разработки, развертывания и управления встроенными и периферийными устройствами на базе Linux, ориентированная на использование контейнеров для обеспечения изоляции, обновляемости и масштабируемого управления флотом устройств. Платформа сочетает инструменты для сборки и упаковки приложений в контейнеры, механизмы доставки обновлений «по воздуху» (over-the-air, OTA) и облачные сервисы для мониторинга, логирования и управления состоянием устройств. Архитектура предусматривает работу с различными аппаратными платформами и дистрибутивами Linux, позволяя запускать несколько сервисов в контейнерах и упрощая переносимость приложений между устройствами.
Исторически проект развивался как ответ на потребность в удобных средствах управления большим количеством устройств интернета вещей (IoT) с центральной точки, с акцентом на безопасность и надёжность обновлений. В состав типичного стека входят инструменты для создания образов, реестр контейнеров, агент на устройстве, который обеспечивает связь с облаком и применение обновлений, а также интерфейсы для управления конфигурацией и групповой оркестрации. Платформа часто применяется в сценариях удалённого развёртывания промышленных контроллеров, цифровых вывесок, устройств сбора данных и прототипирования умных устройств.
- Контейнеризация приложений: поддержка разработки и запуска сервисов в контейнерах для изоляции и переносимости.
- OTA-обновления: механизмы безопасного распределения и применения обновлений на флоте устройств.
- Управление флотом: облачные и локальные инструменты для мониторинга состояния, логов и конфигурации устройств.
- Агент на устройстве: компонент, обеспечивающий связь с облачной частью платформы и координацию операций.
- Поддержка множественных аппаратных платформ: совместимость с распространёнными одноплатными компьютерами и другими Linux-устройствами.
- Разграничение окружений: возможность одновременного запуска нескольких сервисов и управления зависимостями между ними.
- Безопасность и изоляция: применение контейнеров и механизмов управления доступом для снижения риска вмешательства и ошибок при обновлениях.
- Инструменты сборки и CI/CD: интеграция с конвейерами сборки для автоматизации создания и развёртывания образов.