Задача автоматизировать процесс репликации софта на новых устройствах.
Софт представляет из себя набор микросервисов (что то в виде бинарника, собираемого из С++ кода, что то на питоне), который запускается на одноплатнике с ARM процом и Ubuntu Linux в качестве ОС.
Как сейчас происходит.
Кто то что то пишет в коде сервиса, тестирует у себя на своем железе. Потом возникает задача сделать еще одно устройство. Берем чистый одноплатник (стоит только Ubuntu), ставим руками все зависимости (что то ставится через apt install, что то собирается руками на одноплатнике, что то через pip install), затем стягиваем с гитхаба все сервисы, создаем systemd сервисы для автозапуска, проверяем наличие конфиг файлов для сервисов. В итоге простейшая задача копирования софта на новый одноплатник растягивается на часы.
Как хочется.
Все сервисы сгруппированы по докер контейнерам. В репозитории лежит docker compose файл. Берем новый одноплатник, ставим на него докер, затем одной командой запускаем установку контейнеров по compose файлу и получаем готовое устройство.
Если внесли изменения в софт, то где то запускаем команду, она берет исходники сервиса, собирает образ docker и складывает его с каким то тегом в registry, откуда мы руками переносим его в тег latest и делаем руками обновление docker compose на всех устройствах.
Нужно организовать такой процесс на наборе описанных сервисов и дать инструкции, как это сделано и как с этим работать. Описание сервисов в ТЗ во вложениях
Опубликован 21.10.2023 в 13:08
Заказ находится в архиве