Контейнеры
с мастером и подчиненными устройствами jenkins являются очень хорошим вариантом, поскольку вы можете программно управлять обновлениями и операциями, и вы полностью независимы от уровня хостинга. Вы можете собрать все на своем ноутбуке и переместить его в облако или виртуальную машину за считанные минуты.
Не существует универсального лучшего решения, и поэтому многие люди любят Jenkins, поскольку он может адаптироваться к любым потребностям.
Вопросы:
какая нагрузка будет ли он у вас во время сборки (какой код вы собираете)?
он вам нужен постоянно / можете ли вы позволить себе выключить его в нерабочее время?
вам нужно часто увеличивать / уменьшать выделенные ресурсы?
Я использую для своего личного проекта экземпляр виртуальной машины google GCP, на котором размещены главный и два ведомые устройства (один для java и один для мобильных приложений). Я использую docker -compose для управления конфигурацией контейнеров. Для сохранения данных я использую корзину, в которую копирую с заданием всю домашнюю папку (а не рабочую область сборки). Все это умещается в бесплатном слое GCP, и я уверен AWS тоже.