Текущая архитектура проекта описана здесь.
Новая архитектура будет основываться на CI/CD методологии, где основным инструментом будет использоваться Gitlab. А использование Docker позволит избежать лишних проблем с виртуальными окружениями и проблемами сборки. При обновлении репозиториев проекта Gitlab в автоматическом режиме обновит проверит исходный код, протестирует его и соберет образ на сервере. Далее Gitlab по расписанию запустит контейнер.
В данном случае разработчику не требуется подключатся удаленно на сервер и взаимодействовать с ним, а также программы изолируются от сервера благодаря контейнеризации.
Пример использование архитектуры можно увидеть в репозитории адаптера Zulip
Основная проблема старой архитектуры заключается в том, что разработчик взаимодействует с сервером напрямую, и, следовательно, без должных знаний серверной части и качественного подхода к тестированию и мониторингу, разработанная программа может привести к критическим последствиям или вовсе иметь неконтролируемое поведение.

В старой архитектуре требуется разработать скрипт запуска адаптера, который будет защищен от внешних факторов, это позволяет избежать использование Docker. Разработчику больше не требуется продумывать как изолировать используемый компилятор от компилятора другой программы, а также как настроить логирование и как с ним в дальнейшем взаимодействовать. Логирование исправляет Gitlab, так как вся логируемая информация отправляется напрямую в Gitlab, а значит получить доступ к ней можно через веб-интерфейс сервиса.
