【问题标题】:AWS Testing/Staging/Development EnvironmentAWS 测试/暂存/开发环境
【发布时间】:2023-02-05 22:18:21
【问题描述】:
我有一些使用 CodePipeline 构建的现成管道。假设我希望将它们链接到测试环境(无论是在 EC2 还是 ECS 上)。我怎样才能做到这一点?
我很欣赏有人从高层次的角度提到这些步骤/过程。
到目前为止,我已经尝试了以下内容:1. 在将它们合并到主/工作分支之前,在不同的分支上重新运行当前管道。
2.创建EC2实例临时测试后端API
【问题讨论】:
标签:
amazon-web-services
amazon-ec2
pipeline
amazon-ecs
aws-code-deploy
【解决方案1】:
从高层次的角度来看,您通常在 CodePipeline 中有单独的步骤,用于在每个环境中进行测试和部署。常见的流程如下所示:
- 代码已签入
- 管道被触发
- 代码已构建并经过测试(例如单元测试)
- 工件被部署到测试环境
- 应用程序已测试(例如集成测试、冒烟测试等)
- 工件被部署到生产环境
- 应用程序已测试
理想情况下,阶段也通过不同的 AWS 账户分开,例如一个账户用于开发(可能包括管道本身),一个用于测试,一个用于生产。请参阅下图和related blog post 以获取插图和更多信息。
虽然这适用于常见的基于主干的开发模型,但听起来您可能想要在单独的分支上运行流水线。
为此,您可以实施一种机制,无论何时创建新分支,该机制都会使用 CloudFormation 模板创建新管道。高级概念如下图所示。 This blog post 提供了有关如何实施该方法的完整详细信息。
【解决方案2】:
可以通过创建暂存环境并将其链接到托管在 Route 53 区域内的测试域来利用 Amazon ECS。此外,该暂存环境可以链接到 Amazon CodeSuite(CodeBuild 和 CodeDeploy w/ Code Pipeline)。
这同样适用于 EC2。