

# SUS 6 您的组织流程如何支持您的可持续发展目标？
<a name="sus-06"></a>

寻找机会，通过对开发、测试和部署实践进行更改来降低可持续性影响。 

**Topics**
+ [SUS06-BP01 采用可以快速引入可持续性改进的方法](sus_sus_dev_a2.md)
+ [SUS06-BP02 让您的工作负载保持最新状态](sus_sus_dev_a3.md)
+ [SUS06-BP03 提高构建环境的利用率](sus_sus_dev_a4.md)
+ [SUS06-BP04 使用托管式设备场进行测试](sus_sus_dev_a5.md)

# SUS06-BP01 采用可以快速引入可持续性改进的方法
<a name="sus_sus_dev_a2"></a>

采用方法和流程来验证潜在的改进、最大限度降低测试成本和带来一些小改进。

 **常见反模式：** 
+  仅在项目开始时才完成一次审核应用程序可持续性。 
+  工作负载变得过时，因为发布过程过于繁琐，无法为提高资源效率而引入微小的更改。 
+  未制定相应的机制来提高工作负载的可持续性。 

 **建立此最佳实践的好处：**通过建立流程以引入和跟踪可持续性改进，您将能够不断采用新特性和功能、消除问题和提高工作负载效率。 

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

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

 在将潜在可持续性改进部署到生产环境之前，对其进行测试和验证。在计算改进的潜在未来收益时，考虑测试成本。开发低成本的测试方法，以实现细微的改进。 

 **实施步骤** 
+  在您的开发待办事项中添加可持续性改进要求。 
+  使用迭代[改进流程](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/improvement-process.html)来识别、评测、测试和部署这些改进并确定其优先顺序。 
+  持续改进和简化您的开发流程。例如，[使用持续集成和持续交付（CI/CD）管道测试和部署潜在的改进，自动完成软件交付过程](https://aws.amazon.com/getting-started/hands-on/set-up-ci-cd-pipeline/)，从而减少工作量和减少手动操作引起的错误。 
+  使用最小可行代表性组件开发和测试潜在改进，从而降低测试成本。 
+  持续评测改进的影响并根据需要作出调整。 

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

 **相关文档：** 
+  [AWS 支持可持续性解决方案](https://aws.amazon.com/sustainability/) 
+ [基于 AWS CodeCommit 的可扩展敏捷开发实践](https://aws.amazon.com/blogs/devops/scalable-agile-development-practices-based-on-aws-codecommit/)

 **相关视频：** 
+ [提供可持续、高性能的架构](https://www.youtube.com/watch?v=FBc9hXQfat0)

 **相关示例：** 
+  [Well-Architected 实验室 - 将成本和使用情况报告转化为效率报告](https://www.wellarchitectedlabs.com/sustainability/300_labs/300_cur_reports_as_efficiency_reports/) 

# SUS06-BP02 让您的工作负载保持最新状态
<a name="sus_sus_dev_a3"></a>

让您的工作负载保持最新状态，采用高效功能、消除问题和提高工作负载的整体效率。

 **常见反模式：** 
+ 假设当前的架构是静态的，不会随着时间的推移而更新。
+  您没有任何系统（也不会定期）评估更新的软件和软件包是否与您的工作负载兼容。 

 **建立此最佳实践的好处：**通过建立一个及时更新工作负载的流程，您可以采用新的特性和功能，解决问题，并提高工作负载效率。

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

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

 最新的操作系统、运行时、中间件、库和应用程序可以提高工作负载效率，并简化更高效技术的采用。最新的软件可能还包括更准确地衡量工作负载对可持续性的影响的功能，因为供应商提供的功能是为了满足其自身的可持续性目标。定期更新，以便使用最新的功能和版本让您的工作负载保持最新。 

 **实施步骤** 
+  定义一个流程和计划来评估工作负载的新功能或实例。利用云中的敏捷性，快速测试新功能如何改善工作负载以： 
  +  减小对可持续性的影响。 
  +  提升性能效率。 
  +  为计划改进消除障碍。 
  +  提高衡量和管理可持续性影响的能力。 
+  盘点工作负载软件和架构，并确定需要更新的组件。 
  +  您可以使用 [AWS Systems Manager 清单](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html)从 Amazon EC2 实例收集操作系统（OS）、应用程序和实例元数据，并快速了解哪些实例正在运行您的软件策略所需的软件和配置，以及哪些实例需要更新。 
+  了解如何更新工作负载的组件。     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/wellarchitected/2023-04-10/framework/sus_sus_dev_a3.html)
+  采用自动化更新流程，以减少部署新功能的工作量，并减少手动过程引起的错误。 
  +  您可以使用 [CI/CD](https://aws.amazon.com/blogs/devops/complete-ci-cd-with-aws-codecommit-aws-codebuild-aws-codedeploy-and-aws-codepipeline/) 自动更新 AMI、容器映像以及与您的云应用程序相关的其他构件。 
  +  您可以使用 [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 等工具自动执行系统更新流程，并使用 [AWS Systems Manager 维护窗口](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html)安排活动。 

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

 **相关文档：** 
+  [AWS 架构中心](https://aws.amazon.com/architecture) 
+  [AWS 新增功能](https://aws.amazon.com/new/?ref=wellarchitected&ref=wellarchitected) 
+  [AWS 开发人员工具](https://aws.amazon.com/products/developer-tools/) 

 **相关示例：** 
+  [Well-Architected 实验室 - 清单和补丁管理](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 
+  [实验室：AWS Systems Manager](https://mng.workshop.aws/ssm.html) 

# SUS06-BP03 提高构建环境的利用率
<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/)

 **相关视频：** 
+ [持续集成最佳实践](https://www.youtube.com/watch?v=77HvSGyBVdU)

# SUS06-BP04 使用托管式设备场进行测试
<a name="sus_sus_dev_a5"></a>

使用托管式设备场在一组具有代表性的硬件上高效地测试新功能。

 **常见反模式：** 
+  在各个物理设备上手动测试和部署应用程序。 
+  未在真实的物理设备上使用应用测试服务进行测试以及与应用（例如，Android、iOS 和 Web 应用）互动。 

 **建立此最佳实践的好处：**使用托管式设备场来测试具有云功能的应用程序，这提供了许多好处： 
+  包括可在各种设备上测试应用程序的更高效功能。 
+  无需使用内部基础设施进行测试。 
+  提供多种设备类型（包括不太常用的较旧硬件），从而不需要进行不必要的设备升级。 

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

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

使用托管式设备场有助于简化在一组有代表性的硬件上测试新功能的过程。托管式设备场提供多种设备类型，包括不太常用的较旧硬件，并避免不必要的设备升级对客户可持续性的影响。

 **实施步骤** 
+  定义您的测试要求和计划（例如，测试类型、操作系统和测试时间表）。 
  +  您可以使用 [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 收集和分析客户端数据并制定测试计划。 
+  选择可支持您的测试要求的托管式设备场。例如，您可以使用 [AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) 来测试和了解您的更改对一组具有代表性的硬件的影响。 
+  使用持续集成/持续部署（CI/CD）来安排和运行测试。 
  + [将 AWS Device Farm 与 CI/CD 管道集成，以便运行跨浏览器的 Selenium 测试](https://aws.amazon.com/blogs/devops/integrating-aws-device-farm-with-ci-cd-pipeline-to-run-cross-browser-selenium-tests/)
  + [使用 AWS DevOps 和移动服务构建和测试 iOS 和 iPadOS 应用](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/)
+  持续审核测试结果，必要时进行改进。 

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

 **相关文档：** 
+ [AWS Device Farm 设备列表](https://awsdevicefarm.info/)
+ [查看 CloudWatch RUM 控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-view-data.html)

 **相关示例：** 
+ [适用于 Android 的 AWS Device Farm 示例应用](https://github.com/aws-samples/aws-device-farm-sample-app-for-android)
+ [适用于 iOS 的 AWS Device Farm 示例应用](https://github.com/aws-samples/aws-device-farm-sample-app-for-ios)
+ [适用于 AWS Device Farm 的 Appium Web 测试](https://github.com/aws-samples/aws-device-farm-sample-web-app-using-appium-python)

 **相关视频：** 
+ [使用 Amazon CloudWatch RUM 通过最终用户洞察优化应用程序](https://www.youtube.com/watch?v=NMaeujY9A9Y)