Как выполнить частичное повторное развертывание в SAP Cloud Foundry в сине-зеленом режиме?

Мы используем mta для структурирования нашего приложения, состоящего из нескольких микросервисов. Файл mtar развертывается в SAP Cloud Foundry в сине-зеленом режиме с помощью конвейера SAP Cloud SDK (шагPiper Project -> cloudFoundryDeploy).

При попытке частичного развертывания с сине-зеленой стратегией мы столкнулись с указанной ниже проблемой.

Проблема: при повторном развертывании MTA с тем же идентификатором конвейер создает новый цвет MTA (с синего на зеленый и наоборот), и все приложения со старым цветом удаляются. Такой подход создает проблемы при частичном развертывании.

Например, используя сине-зеленый подход к развертыванию, предположим, что мы развернули 10 микросервисов в пространстве SAP CF. После исправления ошибок мы хотим выполнить частичное повторное развертывание только для пары микросервисов.

В этом случае, если мы используем тот же идентификатор MTA и включаем только две микросервисы в mta.yaml, конвейер удаляет другие 8 микросервисов, которые уже развернуты в SAP CF.

Мы пробовали обновить версию MTA, но это не имеет никакого значения.

В результате этой проблемы нам без надобности необходимо повторно развернуть все 10 микросервисов, хотя исправление было сделано только для пары микросервисов.

С другой стороны, если мы используем другой идентификатор MTA для повторного развертывания двух микросервисов, конвейер рассматривает их как начальное развертывание и запускает действие, аналогичное стандартному типу развертывания. Это приводит к простою и противоречит цели сине-зеленого подхода к развертыванию.

Будем признательны, если кто-то может помочь нам решить эту проблему частичного развертывания с использованием сине-зеленой стратегии и дать нам рекомендации, которым следует следовать.

1 ответ

Я не думаю, что в настоящее время это возможно, и подходящим местом для этого, вероятно, будет multiapps-cli-plugin. Я думаю, было бы лучше, если бы вы открыли вопрос в этом репо.

С другой стороны: с этим требованием "частичного развертывания" я не уверен, что MTA - лучший выбор. Есть ли причина, по которой вам нужен MTA? Если бы у вас был один проект maven на микросервис, с одним конвейером для каждого, это было бы ближе к общей концепции микросервисов, где каждый модуль можно развернуть независимо.

Надеюсь это поможет

Флориан

Другие вопросы по тегам