

# OPS05-BP04 使用构建和部署管理系统
<a name="ops_dev_integ_build_mgmt_sys"></a>

 使用构建和部署管理系统。这些系统可以减少手动过程引起的错误，并减少部署更改的工作量。

 在 AWS 中，您可以使用 [AWS 开发人员工具](https://aws.amazon.com/products/developer-tools/)（例如 [AWS CodeBuild](https://aws.amazon.com/codebuild/)、[AWS CodePipeline](https://aws.amazon.com/codepipeline/) 和 [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)）等服务，来构建持续集成/持续部署（CI/CD）管道。

 **期望结果：**构建和部署管理系统支持组织的持续集成/持续交付（CI/CD）系统，该系统提供使用正确配置自动进行安全部署的功能。

 **常见反模式：**
+  在开发系统上编译代码后，将可执行文件复制到生产系统中，但它无法启动。本地日志文件显示这是因为缺少依赖项所致。
+  成功在开发环境中构建了具有新功能的应用程序，并将代码送交质量检查（QA）。由于缺少静态资产，它没有通过质量检查。
+  星期五，经过大量的努力，成功地在开发环境中手动构建了应用程序，包括新编码的功能。星期一，无法重复支持成功构建应用程序的步骤。
+  执行为新版本创建的测试。花费了接下来一周的时间来设置测试环境，并执行所有现有的集成测试，然后执行性能测试。新代码产生了难以接受的性能影响，因此必须重新开发并测试。

 **建立此最佳实践的好处：**制定相应机制来管理活动的构建和部署。这样，可以减少执行重复任务的工作量，让团队成员腾出时间专注于高价值的创造性任务，还可以减少手动程序导致的错误。

 **在未建立这种最佳实践的情况下暴露的风险等级：**中 

## 实施指导
<a name="implementation-guidance"></a>

 构建和部署管理系统用于跟踪和实施变更，减少手动流程导致的错误，并减少安全部署所需的工作量。将集成和部署管道完全自动化，从代码签入到构建、测试、部署和验证都包含在内。这可以缩短准备时间，降低成本，鼓励更频繁地进行更改，减少工作量并增进协作。

### 实施步骤
<a name="implementation-steps"></a>

![\[图中显示了使用 AWS CodePipeline 和相关服务的 CI/CD 管道\]](http://docs.aws.amazon.com/zh_cn/wellarchitected/latest/framework/images/deployment-pipeline-tooling.png)


 

1.  使用版本控制系统来存储和管理资产（例如文档、源代码和二进制文件）。

1.  使用 CodeBuild 来编译源代码，运行单元测试，并生成可供部署的构件。

1.  使用 CodeDeploy 作为部署服务，可以自动将应用程序部署到 [Amazon EC2](https://aws.amazon.com/ec2/) 实例、本地实例、[无服务器 AWS Lambda 函数](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)或 [Amazon ECS](https://aws.amazon.com/ecs/)。

1.  监控部署。

## 资源
<a name="resources"></a>

 **相关最佳实践：**
+  [OPS06-BP04 自动测试和回滚](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **相关文档：**
+  [AWS 开发人员工具](https://aws.amazon.com/products/developer-tools/) 
+  [什么是 AWS CodeBuild ？](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+  [什么是 AWS CodeDeploy ？](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **相关视频：**
+ [AWS re:Invent 2022 - AWS Well-Architected best practices for DevOps on AWS](https://youtu.be/hfXokRAyorA)