在生产环境旁边拥有多个测试环境的最佳方法是什么?
我们有多个编程团队,他们经常使用 Active Directory 构建解决方案。我们尝试了不同的方法,首先是他们自己的域控制器(位于同一子网中),或者在我们的生产 AD 中增加其他 OU,团队可以控制这些 OU,并可以在该 OU 内创建/删除帐户。
我们想到了 4 种可能的解决方案:
- 在 OU 生产环境中设置单独的 OU。
contoso.com
为我们的域创建子域test.contoso.com
,something.contoso.com
并将控制权委托给团队(我们是否需要额外的 DC,或者我们已经拥有的两个 DC 是否足以容纳它?- 设置对我们的主域具有信任的附加测试域控制器,并且所有团队都可以随意使用测试域控制器。
- 为每个团队/项目设置单个域控制器。
我们正在考虑所需的资源量、安全性(例如,拥有多个域控制器和多个密码可能会导致用户使用更简单的密码)以及此场景的整体最佳实践。
更新:在 90% 的情况下,它将是针对 SharePoint、BizTalk、CRM 等的身份验证。在其他情况下,它可以是 SPN、kerberos 身份验证和证书颁发机构的测试。
答案1
这取决于您要测试的内容以及它在 AD 中需要执行的操作。我对您的解决方案的看法:
- 如果你只是测试账户创建/删除,那么没问题,就像你在问题中说的那样。只要全部或者最多您的产品的作用是什么。
- 是的 - 每个域至少需要一个 DC - 最好有两个,以防一个出现故障。即使是测试环境。这样他们就可以随心所欲地胡闹了。
- 这是个糟糕的主意。他们连接到您域中的哪个 DC 并不重要 - AD 是一个多主数据库,因此在一个地方所做的更改将被复制到所有地方。您没有保护任何东西 - 如果您允许他们在任何地方添加/删除帐户,他们可能会意外删除所有帐户或在您的生产网络上执行其他操作。恢复网络后的第一个任务将是大量解雇通知,而且可能是您的系统管理员,而不是开发团队。
- 在当今这个虚拟化技术盛行的时代,您最好为每个人创建至少一个测试域(与生产域之间没有信任关系),并根据您的公司和网络布局,根据需要为每个人创建额外的测试域,或者让每个开发人员在自己的机器上的虚拟机中或立方体中的第二个桌面上运行一个(或更多)DC。还有很多其他架构选项;取决于您的预算和需求。