什么是分期的重点?

我以为我已经完成了这个工作,但是在阅读“ 连续交付” (优秀书)之后,我有点困惑。 他们谈论有服务器:

  • 发展
  • 各种forms的自动化testing
  • 用户验收testing(UAT) – 即与客户坐下来展示给他们,并让他们进行探索性testing。 内部testing人员也可以使用这个设置进行探索性testing。
  • 分期
  • 生产。

我一直认为提供UATfunction,但他们似乎有一个单独的级别。 那么在这个scheme中,登台服务器会提供什么function呢?

分期将把完整的产品系统,但实际上还没有使用它们。 当它们投入使用将是“生产”。 你应该把所有的东西都放好,testing,然后翻转开关。

UAT通常使用与将在生产中使用的硬件/软件/configuration显着不同的“testing”环境。

例如,在我工作的地方,我们有客户testing运行在我们服务器上的虚拟机环境中的所有内容。 当他们的系统上线时,它们将在他们的硬件上,在他们的设施上运行,可能与他们现有的系统集成; 它将完全与我们的服务器或testing环境无关(除了代码和一些configuration已经从那里复制…)

我在一家非常大的互联网公司工作,发布pipe理团队。 我们基本上使用了上面概述的stream程,而且我们select了这个stream程。 在我们的方法论中,分期作为最终生产testing水平的分支机制。

很明显,在你投入生产之前,你想做所有的testing,但是在一个拥有大量用户的庞大而复杂的环境中,这是一个非常难以实现的目标。 特别是,在质量保证中充分加载testing软件几乎是不可能的。 functiontesting比负载testing更容易自动化。 当有成千上万的用户访问你的服务器时,事情就会变得很奇怪,很难预测。

所以这就是我们所做的:

  • 发展
    • 包括持续集成和自动化testing
  • 发布testing
    • 我的小组分析了发行本身
    • 检查安装日志
    • testing回滚
  • QA
    • 用户验收testing

这就是我们在舞台和制作之间分道扬</s>的地步。 我们使用火车模型发布,每隔几周就有一列新火车开始。 偶数列车进入登台服务器(正在生产)。 奇数列车不。

在偶数列之间,开发人员有能力对登台服务器进行个别更改(当然这些更改已通过QAtesting)。 这使得他们可以validation他们的软件在真实的生产环境中按预期执行。 这通常是被认为是较高风险的组件,我们不推动每一个小块进行升级。

然后,每个人都明白,当下一个列车开始时,它将清除登台服务器上的内容,并将其重新设置到列车基线。 开发人员要么确保他们的变化上火车,要么决定他们还没有准备好通用,在这种情况下,这些变化只会在登台服务器上被抹去。

总而言之,简短的回答(至less对我们来说)是不可能完全testingQA中的复杂系统。 分期提供了一个安全的方式来进行有限的生产testing。

在一个相关的说明,这是我刚刚给我们的发布过程如何工作的演示文稿的幻灯片 。

分阶段最简单的解释是testing您的部署过程并使用真实的数据源进行testing。 有些系统将分段与testing环境相结合,但是对于大型系统,部署过程可能非常复杂,或者在连接到实时/生产数据源时可能需要额外的testing步骤。 在这种情况下,临时环境可让您testing部署过程,并使用实时数据检查最后一分钟的错误,然后一旦事情经过validation,您可以快速将舞台环境切换到生产环境。

一个例子就是Windows Azure,它需要5-25分钟才能部署一个新版本,但是你可以部署到一个临时环境,执行testing,然后立即交换生产和临时环境 。

我刚刚遇到这篇文章关于分期环境说

分期是您validation系统的已知未知数的地方。

这篇文章非常值得一读。