- 最新
- 投票最多
- 评论最多
【以下的回答经过翻译处理】 我了解到以下事项:
- 目前前端和后端应用有两个不同的流水线。
- 前端和后端应用位于不同的BitBucket存储库中。
- 需要在一个CICD流水线中管理前端和后端的最佳实践。
- 必须将前端和后端部署到一个ECS集群中,目前正在部署到2个集群。
请确认问题的总结和理解是否正确。
最佳实践
根据AWS上的CICD最佳实践,建议:
“为每个分支和团队使用多个不同的流水线”
在这种情况下,最佳实践是为每个存储库使用不同的流水线。
尽管如此,仍然有可能将每个容器运行在自己的服务中,但部署到一个集群中。请参见第2步:创建您的持续部署流水线中的第6步,添加部署阶段,指定现有的ECS集群和服务。前端和后端流水线之间的区别在于它们指定相同的ECS集群但不同的服务。
程序相关的第三方教程使用了云形成(CFN)提供者在部署阶段中创建了一个Fargate ECS集群,其中包含一个VPC、2个子网以及负载平衡器。该解决方案创建了基底层基础设施,因此,当在2个不同的管道上使用时,会创建2个集群。一个建议是单独部署CFN模板,这样基础设施只创建一次,并将ECS集群作为现有集群包含在管道中。 请注意,在定制解决方案方面的援助超出了通常提供的支持水平。因此,我没有亲自实施此自定义解决方案,并在尽最大努力的基础上提供了有关此方面的指导。 更新自定义解决方案 也就是说,如果您仍然希望实现1个管道来将前端和后端容器部署到单个集群,这是可能的。但是,请注意,实现这样的解决方案意味着,如果从1个存储库部署了更改,则将对两个存储库执行管道部署。 更新源阶段 可以将管道配置为从多个源中提取。如果配置了多个源输入工件,例如前端和后端BitBucket存储库,请确保也配置了多源输出工件。 更新构建阶段 更新构建阶段输入工件以包括多个源输出工件。根据自定义解决方案,在构建中操作源输出工件,并包含一个文件imageDetail.json作为构建输出工件。必须更新构建以包括前端应用程序和后端应用程序的输出工件。 更新部署阶段 更新部署阶段输入工件以包括多个构建输出工件。此外,更新ParameterOverrides以包含前端和后端应用程序的图像URI。 更新Fargate-Cluster.yml 更新Fargate-Cluster.yml以包含前端和后端应用程序的TaskDefinition(2个任务在一个集群中运行)或更新TaskDefinition的ContainerDefinitions以包括前端和后端应用程序的容器(1个任务在包含2个容器的集群中运行。 更新自定义解决方案所需的步骤摘要如下: *注意:如果从1个存储库部署了更改,则将对这两个存储库执行管道部署。 *更新源阶段以包括多个源输入和输出工件(用于前端和后端)。 *更新生成阶段: *包括多个输入工件。 *更新构建本身以创建并包含多个输出工件。 *更新部署阶段: *包括多个输入工件。 *更新ParameterOverrides以包含前端和后端应用程序的映像uri。 *将任务定义更新为: 包括每个应用程序的任务定义。 或更新TaskDefinition以包含每个应用程序的容器。
请注意,由于对自定义解决方案的帮助超出了通常提供的支持级别,我已在尽最大努力的基础上提供了对定制解决方案所需更改的高级别概述。
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 个月前