Запустите несколько экземпляров тестового приложения на общем сервере с помощью Docker & Jenkinsfile
У нас есть система Jenkins CICD, на которой мы запускаем сервер тестовой среды каждый раз, когда мы собираемся из master.
Мы используем Jenkinsfile для создания образа Docker на сервере сборки Docker, затем помещаем образ Docker в наш собственный репозиторий Docker, затем на следующем этапе Jenkinsfile мы извлекаем этот образ Docker и запускаем контейнер для тестового приложения. Но у нас есть разные узлы jenkins для каждого приложения, которое мы создаем. Поэтому, когда у нас будет много микросервисов, наш Jenkins будет переполнен, так как нам придется создавать узлы для каждой тестовой среды Microservice.
Идеальной ситуацией было бы иметь несколько мощных серверов, выполняющих роль подчиненных узлов Jenkins, работающих под управлением docker, и каждый раз, когда сборки jenkins позволяют jenkins решать, какой подчиненный узел использовать для запуска приложения.
Это невозможно сделать прямо сейчас, потому что нам нужно жестко закодировать в Jenkinsfile узел, где мы хотим, и может быть только один узел с одним именем. Итак, в какой-то момент мы столкнемся с узким местом, когда разработчику необходимо взглянуть на подчиненные узлы Jenkins, чтобы решить, какой из них использовать в Jenkinsfile нового приложения.
Есть ли способ обдумать это? Поскольку кажется, что несмотря на использование docker, мы создали наши собственные контейнеры (те ведомые устройства для каждого приложения), которые в свою очередь запускают docker. Таким образом, весь процесс контейнеризации докером становится излишним.