

# SUS06-BP04 提高构建环境的利用率
<a name="sus_sus_dev_a4"></a>

 提高资源利用率，以开发、测试和构建工作负载。

 **常见反模式：**
+  手动预置或终止构建环境。
+  使构建环境保持独立于测试、构建或发布活动运行（例如，在开发团队成员的工作时间之外运行环境）。
+  为构建环境过度预置资源。

 **建立此最佳实践的好处：**通过提高构建环境的利用率，您可以提高云工作负载的整体效率，同时将资源分配给构建者以进行高效的开发、测试和构建。

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

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

 使用自动化和基础设施即代码功能，在需要时启动构建环境，并在不使用时将其关闭。一种常见模式是安排与开发团队成员的工作时间相吻合的可用时段。您的测试环境与生产配置非常相似。但是，寻找机会使用具有容量爆增的实例类型、Amazon EC2 竞价型实例、自动扩展数据库服务、容器和无服务器技术，以使开发和测试容量与使用容量保持一致。限制数据量，使之刚好满足测试要求。如果在测试中使用生产数据，请探索共享生产数据，而无需四处移动数据的可能性。

 **实施步骤** 
+  **使用基础设施即代码：**使用基础设施即代码来预置构建环境。
+  **使用自动化：**使用自动化功能来管理开发和测试环境的生命周期，并最大限度地提高构建资源的效率。
+  **实现利用率最大化**：使用策略来最大程度地利用开发和测试环境。
  +  使用最小可行代表性环境来开发和测试潜在的改进。
  +  如果可能，请使用无服务器技术。
  +  使用按需型实例来补充您的开发人员设备。
  +  使用具有容量爆增的实例类型、竞价型实例和其他技术，使构建容量与使用容量保持一致。
  +  采用原生云服务来实现安全的实例 Shell 访问，而不是部署堡垒主机群。
  +  根据构建作业自动扩展构建资源。

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

 **相关文档：**
+  [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) 
+  [Amazon EC2 具爆发能力的实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) 
+  [什么是 AWS CloudFormation ？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [什么是 AWS CodeBuild ？](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [AWS 实例调度器](https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/) 

 **相关视频：**
+  [AWS re:Invent 2023 - Continuous integration and delivery for AWS](https://www.youtube.com/watch?v=25w9uJPt0SA) 