Как выполнить частичное повторное развертывание в SAP Cloud Foun dry в сине-зеленом режиме? - PullRequest
0 голосов
/ 09 июля 2020

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

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

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 09 июля 2020

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

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

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

Florian

...