开发工具应该安装在主机上还是在项目级别的标准化环境中?

47次阅读
没有评论

问题描述

在开发主机上,您是否认为安装开发工具(编译器、解释器、包管理器、测试工具等)仍然值得?还是开发人员应该通过在项目级别标准化的环境中与这些工具进行交互,以确保团队内部和与生产环境一致的开发堆栈?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在许多公司(例如银行),需要知道代码的来源和可追溯性。这通常通过拥有一个受控的构建环境来实现。发布构建将二进制文件上传到无法被覆盖的位置。然后,这些二进制文件通过可以追溯到个人和经过批准的变更请求的任意数量的机制进行部署。这个模型通常被称为“流水线”。
在这种模型下,“开发主机”或“开发环境”可以拥有开发人员想要的任何东西。它可以使用比生产环境中可用的软件版本更新的版本。这完全取决于上下文,是否会导致代码在类似生产环境的测试中失败。通常,在将发布构建的代码推送到生产环境之前,会将其通过至少一个测试环境。该环境尽可能与生产环境保持一致。

方案2

在某些情况下,无法在项目级别(如容器/虚拟机解决方案)上使用标准化环境,以有效地在任何类型/状态的主机上使用。例如,我们有一些大型构建项目,为了性能原因,我们使用了经过精心调整的裸机,比运维团队能提供的最高性能环境快约40%。所以我们在这种情况下使用了主机。
但是,这并不意味着您不能在项目级别上标准化主机配置(这就是我们所做的)。或者,更好的方法是,在标准配置的主机上运行标准化环境 – 这可能允许您通过使用现有主机资源而不是在每个环境中从头开始构建来实现更高的优化水平 – 如果这是您真正想要的。

正文完