

# OPS05-BP08 使用多个环境
<a name="ops_dev_integ_multi_env"></a>

 使用多个环境来试验、开发和测试您的工作负载。当环境接近于生产环境时，逐步加强控制，以确保工作负载在部署后能够按预期运行。 

 **常见反模式：** 
+  您正在共享开发环境中执行开发，另一位开发人员将覆盖您的代码更改。 
+  共享开发环境上严苛的安全控制令您无法试验新的服务和功能。 
+  您在生产系统上执行负载测试，导致用户停机。 
+  生产中发生了严重错误，导致数据丢失。在生产环境中，您尝试重新创建导致数据丢失的条件，以便能够确定它是如何发生的，并防止它再次发生。为了防止在测试期间再次丢失数据，您被迫采取措施，让用户无法使用应用程序。 
+  您正在运行多租户服务，无法支持客户对专用环境的请求。 
+  您不可能每次都测试，但在生产环境中会执行测试。 
+  您认为单一环境的简单性比更改在环境中的影响范围更加重要。 

 **建立此最佳实践的好处：** 通过部署多个环境，可以让您为多个同时进行的开发、测试和生产环境提供支持，而不会在开发人员或用户社区间造成冲突。 

 **未建立此最佳实践暴露的风险等级：** 中 

## 实施指导
<a name="implementation-guidance"></a>
+  使用多个环境：为开发人员提供控制机制最少的沙盒环境，以便支持试验。提供单独的开发环境以便支持并行工作，并提高开发的灵活性。在接近生产的环境中实施更严格的控制，让开发人员能够创新。使用基础设施即代码和配置管理系统来部署与生产环境中的控制机制配置一致的环境，以便确保系统在部署后按照预期运行。关闭不使用的环境，以免空闲资源（例如晚上和周末的开发系统）产生费用。在负载测试时部署与生产等效的环境，以便实现有效结果。 
  +  [什么是 AWS CloudFormation？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [如何使用 AWS Lambda 按固定间隔停止和启动 Amazon EC2 实例？](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 

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

 **相关文档：** 
+  [如何使用 AWS Lambda 按固定间隔停止和启动 Amazon EC2 实例？](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 
+  [什么是 AWS CloudFormation？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 