开发环境蔓延

Development --> Staging --> Production 

非常典型的工作stream程。 这可以。

“很好,你想要一个”testing“环境向一些用户/客户炫耀,而这些用户还没有准备好迎接黄金时段。”

 Development --> Staging --> Beta \-> Prod 

“什么意思是'前期制作'?这就是演出的目的。”

我已经看到了一些可能会被要求更多的案例,比如经过严格审计的行业,这些行业需要进行精细的testing,但是即使它们似乎也是非常有用的。 (我曾经在一个有11个独立环境的地方工作过!)

有没有人看到这个环境蔓延? 我们如何pipe理认为这些“重要”的开发人员(和pipe理层)?

即使我对增加成本和复杂性的请求似乎也被忽略了,感觉就像是懒惰的一些原因。 超过4-5的环境,我的spidey感觉开始刺激…

这种典型的工作stream程之外有很多有效的理由。 我们没有像@CamelBlues所build议的QA环境,毕竟代码在标记为完成之前应该是QA的,并且准备好转移到分期。 我们在开发时使用QA,因此不需要质量保证环境。

无论哪种方式,对代码的重大更改(如UIreplace或导致需要额外的开发分支的事情)通常也需要与主开发环境不同的地方进行testing和分级。

例如,如果我正在replace我的UI并将我的应用程序移植到新的MVC系统中,我可能会创build一个新的分支来在源代码控制库中完成此操作。 但是,我不能一起运行我的遗留代码和新的MVC代码,所以我们需要一个新的环境来托pipe该分支,直到它完成。 特别是如果你仍然需要修复错误。

只要记住…这是虚拟机的用途。 您甚至可以从Microsoft获得60-90试用版许可证(如果这是您的平台)用于开发和testing目的。 实际上应该有多less环境无关紧要(在合理范围内并与团队规模比较),因为您应该拥有一个平台,可以轻松快速地将机器旋转起来,这就是大多数大型开发工厂的运作方式,实际上允许开发人员和testing人员检查 – 使用虚拟机。

更新:刚刚检查了我们的环境,我们也有一个预生产。 它由发布和部署团队用来testing说明和修复,以便在实际接触生产箱之前进行干运行。 给他们一个缓冲区。

我不一定称之为“蔓延”,因为它看起来像缺less质量保证环境。

开发 – >质量保证 – >分期 – >生产

是另一个您可以使用的工作stream程。

开发和QA可以是内部开发和pipe理环境,而分期和生产可以是客户面对的。

[编辑]

您可能希望查看最多4个环境,并严格控制谁可以部署到哪个环境(以防止心脏病发作)。 如果pipe理层开始要求beta或pre-beta等环境,请将它们发送到QA或分段,并告诉他们这是“testing”环境。

我认为locking访问权限将有助于控制蔓延。 如果您正在运行CI服务器,则可以通过在构build作业configuration中添encryption码字段,并将生成脚本与硬编码到脚本中的密码进行核对,将部署限制为生产。 即:

 if [ $PASSWORD == 'foo' ] build_app(); else exit 1; 

是的,这是一个彻头彻尾的黑客和人为的安全措施,但是它具有让人们不用部署到生产高级猪瘟的心理效应,而是留在最容易部署的环境中。