分期有什么意义?


18

我以为我可以解决这个问题,但是在阅读了《持续交付》(优秀书籍)之后,我有点困惑。他们谈论拥有用于以下目的的服务器:

  • 发展
  • 各种形式的自动化测试
  • 用户验收测试(UAT)-即与客户坐下来并向他们演示,然后让他们进行探索性测试。内部测试人员也可以使用此设置进行探索性测试。
  • 分期
  • 生产。

我一直认为分期提供UAT功能,但它们似乎将分期作为一个单独的级别。因此,在该方案中,登台服务器将提供什么功能?


10
我不能说我同意这种方法。UAT应该始终在尽可能接近实时系统的条件下(即登台)进行。我无法数出完成UAT的次数,并且每个人都抱怨速度问题,对此我们不得不解释一千次,“实时系统会更快”。然后,由于代码中的错误或SQL查询,实时系统的运行速度变得不快时,您必须自己吃个饭。
Mark Henderson

UAT =用户验收测试,对吗?
马丁·托马

Answers:


13

分阶段将把完整的产品系统部署到位,但尚未实际使用它们。当它们投入使用将是“生产”。您应该将所有东西放置在适当的位置,进行测试,然后翻转开关。

UAT通常使用“测试”环境,该环境与将在生产环境中使用的硬件/软件/配置有很大不同。

例如,在我工作的地方,我们让客户在服务器上运行的VM环境中测试所有内容。当他们的系统上线时,它将在他们的硬件上,在他们的设施上运行,可能与他们现有的系统集成在一起。它将与我们的服务器或测试环境完全无关(除非已从那里复制了代码和某些配置...)


通常也要在登台服务器上进行更多测试,而不仅仅是在UAT上-在即将投入生产之前。
jftuga

3
@jftuga,请参阅第一段的最后一句...
克里斯·S

@Chris S:如果我对您的理解是正确的,那么就没有“登台服务器”之类的东西,而只是生产服务器不在池中,当前不为最终用户服务。这是有道理的,并且是我遵循的一种方法,但是我不将那些服务器称为“登台服务器”,而只是生产服务器(不在池中)。由于我在所有使用登台服务器的地方都将它们作为单独的服务器,因此我认为您对登台服务器的描述不是该术语的标准用法。一个好主意,但通常不是“登台服务器”的含义(以我的经验,无论如何)。
iconoclast 2012年

1
@Brandon根据您的经验,什么是“登台服务器”?这可能是区域差异,例如“启动”服务器。
克里斯·S

在我看来,因组织而异。我已经看到它用作UAT服务器,用作开发人员将应用程序放置在假定与生产环境相同的环境中的服务器,也许还有其他东西。(我个人认为唯一的好策略是使用一个真正的生产服务器进行登台。)随着不同组织发展自己的文化,我认为他们也发展自己的词典,因此通常在整个行业中应该具有标准含义的单词不幸的是没有。
iconoclast

17

我在一家大型互联网公司的发布管理团队中工作。我们基本上使用了您上面概述的过程,并且我们故意选择了该过程。在我们的方法中,分段充当最终生产中测试级别的分支机构。

显然,您想要在投入生产之前进行所有测试,但是在拥有大量用户的大型复杂环境中,这是一个非常困难的目标。特别是,实际上不可能在QA中充分加载测试软件。功能测试比负载测试容易得多。当您有成千上万的用户访问您的服务器时,事情就会变得奇怪而难以预测。

所以这是我们的工作:

  • 发展历程
    • 包括持续集成和自动化测试
  • 发布测试
    • 我的小组分析发布本身
    • 查看安装日志
    • 测试回滚
  • 质量检查
    • 用户验收测试

这就是我们在登台和生产之间进行分支的地方。我们使用火车模型进行发布,每隔几周就会有新的火车开始。偶数编号的火车会转到登台服务器(正在生产中)。奇数编号的火车没有。

在偶数训练之间,开发人员可以将单独的更改推送到登台服务器(当然这些更改已通过质量检查进行了测试)。这使他们能够验证其软件在实际生产环境中是否按预期运行。通常将其保留给那些被认为具有较高风险的组件,我们不会将每一个细小的组件都推到阶段。

然后,每个人都知道,当下一个偶数火车开始时,它将清除登台服务器上的内容并将它们重新设置为火车基线。开发人员要么确保他们的更改已准备就绪,要么决定尚未准备好将其普遍使用,在这种情况下,这些更改只会在登台服务器上被擦除。

总之,简短的答案(至少对我们而言)是不可能在质量保证中完全测试复杂的系统。分阶段提供了进行有限的生产测试的安全方法。

与此相关的是,这是我刚刚发布的幻灯片的幻灯片,介绍了发布过程的工作原理。


5

登台的最简单解释是测试您的部署过程并使用真实数据源进行测试。某些系统将阶段与测试环境结合在一起,但是对于大型系统,部署过程可能非常复杂,或者一旦连接到实时/生产数据源,它们可能是额外的测试步骤。在这种情况下,暂存环境使您可以测试部署过程并使用实时数据检查最后一刻的错误,然后在验证一切正常后,可以快速将暂存环境切换到生产环境。

例如Windows Azure,它需要5到25分钟的时间来部署新版本,但是您可以部署到暂存环境中,执行测试,然后立即交换生产和暂存环境


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.