一些公司会跳过演示或模拟(staging)环境直接把新的代码覆盖到生产(production)环境中,这种情况是怎么发生的呢?

        软件应用开发的经典模型有这样几个环境:开发环境(development)、集成环境(integration)、测试环境(testing)、QA验证,模拟环境(staging)、生产环境(production)。在实际应用中,特别是在今天,其中的若干环境被精简或被合并在一起。随着软件的不断发展,重新审视我们在使用的开发模型是值得的。今天,我们来看一下环境之一的”模拟环境(staging)”。许多开发人员已经放弃了这一环境,而把承担检验工作的风险直接放在生产环境,那么问题来了:我们真的需要模拟环境吗?

        没有一刀切的开发模式,下面给出五个可以让你重新考虑演示环境的原因:

1.通常设计一个演示环境的需求已不存在

        在我们深入的思考这个问题之前,让我们先看一下为什么模拟环境要放在第一位。当应用将要被摆上货架的时候,并没有一个可控的生产环境供测试或收集数据。为了解决这种情况,模拟环境应运而生。为了使发布的应用及测试时有一个“真实”的环境,演示环境应该完全模仿生产环境。最终,整个过程都是一个模拟器,但是模拟器上可以告诉你很多有用的数据。

        随着网络流量和错误报告的到来,开发者首先可以得到实际的生产数据。虽然这不是及时和活跃的,但是还是可以发掘出演示数据的价值,因为它是真正有价值的数据。现在很多应用已移植到SaaS(软件即服务)环境中,这个环境可以通过软件一直运行着,现在就可以在一个完整而丰富的生产环境中收集需要的数据。简单的说,原来的演示环境已不再存在。特别是对现代使用瀑布模型的开发团队来说,他们甚至都不需要访问他们的生产环境。

2.演示环境需要大量的维护

        现在产品发布更新节奏很快,每个月、两周、甚至更频繁的修复升级程序。通道没有时间单独发布到演示环境中去测试产品的bug,而对很多开发者的现实 情况是直接发布到生产环境。如果你不在意,你的演示环境将会开始不能正常运行。每次小的修改都直接发布到生产环境而忘记更新到演示环境,长此以往演示环境就会中断运行。

        除了版本要保持一致,演示还需要时刻的关注、监控并测试。由于演示环境应该是你生产环境的快照,演示环境通过应该和生产环境具有相同的软硬件环境,包括相同的服务或相同的位置。而且演示环境需要频繁的测试以监控风险。

3.演示环境的数据并不是很好

        模拟环境最大限制是,无论怎么模拟你的生产环境,它们也不是处理真实的数据和交互。当模拟交互时,它是不可能完全模拟出生产环境的全部经过。高负荷、偏僻的案例、用户怪异的操作以及其它很多发生在生产环境中的场景都与演示环境不同。如果你使用的是以JVM为基础的语言时,你可以从生产环境中得到所有需要的debug数据。

        依赖于你的业务逻辑,你也许不可能把所有东西都发布到你的演示环境。例如,在一个金融业务中,你的用户交互是通过信用卡事务进行的,这其中很多事情是你无法模拟的。除非你投入更多的预算,这在第4节会讲到。

4.演示环境很昂贵

        如果你的演示环境需要你付出双倍的费用。若想从演示环境中完全的反映生产环境的所有状况,这意味着你需要把现有的服务器以及带宽、工程时间投入都要再多投入一倍。这对于初创型公司以及资金紧张的公司都是一个挑战。对于大的公司也是一个经常发生的问题。

5.演示环境很难扩容

        在开发中最大的挑战之一是建立一个可以处理高负荷和大规模生产的环境。演示环境。演示环境也不例外,大规模的系统行为完全不同于小规模的,即使一切都一样。对于模拟环境限制是对伸缩性的规模的调整。模拟你的生产环境的规模的规模通常是不可行的或根本不可能。这些障碍包括有形的基础设施、交通负荷以及很多因素的相互作用,在这些障碍中没有一个是容易克服的。

总结

        现在回顾一下,演示环境是昂贵的、得到的数据与想要的数据有差距以及需要建立在许多多部因素之上。这是否意味着你需要让它们一起离开呢?要回答这个问题,你首先要回答这两个问题,首先,你是否可以接收一些损失?并不是每个应用都可以负担的起在生产环境进行测试而产生的相同级别的风险和损失。例如:你正在开发一个关于手术室应用的程序,你不能在生产环境中进行测试(这可以能关系到人命的问题,译着注),在这里任何意外和损失都是无法接受的。在这些的事例中,你绝对需要一个演示的环境。

    

无标题.jpg

        第二个问题,你是否可以和愿意在生产环境中完成测试?对于很多应用来说,完整的产品测试是可能的,但是它需要规划,良好的实践以及一些专门的工具。

        留意接下来的内容,我将会探讨在生产环境中测试所应用的方法以及注意事项。

        想先睹为快吗?你可以安装一个在生产环境测试很有价值的工具Takipi

        在生产环境中测试可以使用的15个工具推荐—工具下载列表,(这个列表是国外的推荐,你也可以搜索一下其它的工具,本列表里工具的相关介绍,自成e家也会抽时间翻译一下,提供中文的介绍 译者注)。

本文由 自成e家 翻译整理,转载请注明出处:http://www.zicheng.net/article/89.htm

英文原文地址:http://blog.takipi.com/your-staging-environment-sucks-5-reasons-why-you-should-drop-it/


来源:自成e家 出处:演示环境太糟糕:五个应该放弃它(Staging)的原因
本文由 自成e家 翻译 ,转载请注明出处,你的支持是我继续写作、分享的最大动力!
  • 别来无恙 - 2015-04-20 09:28

    我们是没有这个环境的,测试都是在线上,我们能承受损失^_^

期待你一针见血的评论,Come on!