0

我们正在使用 mta 来构建由多个微服务组成的应用程序。使用 SAP Cloud SDK 管道( Piper Project -> cloudFoundryDeploy步骤)以蓝绿模式将 mtar 文件部署到 SAP Cloud Foundry 。

在尝试使用蓝绿策略进行部分部署时,我们遇到了以下问题。

问题:如果重新部署具有相同 ID 的 MTA,管道会创建新的 MTA 颜色(蓝色到绿色,反之亦然),并且所有具有旧颜色的应用程序都将被删除。这种方法在部分部署期间会产生问题。

例如 - 使用蓝绿部署方法,假设我们已经将 10 个微服务部署到 SAP CF 空间。修复错误后,我们只想对几个微服务进行部分重新部署。

在这种情况下,如果我们使用相同的 MTA ID 并且仅在 mta.yaml 中包含两个微服务,则管道会删除已部署到 SAP CF 的其他 8 个微服务。

我们尝试更新 MTA 版本,但没有任何区别。

由于这个问题,我们不必要地再次重新部署所有 10 个微服务,尽管只对几个微服务进行了修复。

另一方面,如果我们使用不同的 MTA ID 重新部署这两个微服务,管道会将其视为初始部署并触发与标准部署类型相同的操作。这会导致停机并违背蓝绿部署方法的目的。

感谢有人可以在这里帮助我们使用蓝绿策略解决部分部署的问题,并指导我们遵循最佳实践。

4

1 回答 1

1

我认为目前这是不可能的,构建它的正确位置可能是multiapps-cli-plugin。我认为最好在那个 repo 中打开一个问题。

另一方面:由于“部分部署”的要求,我不确定 MTA 是否是最佳选择。有需要 MTA 的理由吗?如果每个微服务有一个 maven 项目,每个都有一个管道,这将更接近微服务的一般概念,每个单元都可以独立部署。

希望这可以帮助

弗洛里安

于 2020-07-09T14:50:52.270 回答