在1971年的电影"肮脏的哈里"中,克林特-伊斯特伍德饰演一个强硬的、聪明的街头警察。在开场戏中,他冷静地阻止了一场银行抢劫,用他那把巨大的、长枪管的、史密斯和韦森.44马格南手枪击毙了银行劫匪。枪声响起,只剩下一个劫匪,受伤了。哈利走过去,说出了一句话,这句话已经成为这部电影的招牌台词。"我知道你在想什么。他是开了六枪还是只开了五枪?好吧,说实话,在这么多的刺激下,我自己都有点记不清了。但由于这是一把点44马格南手枪 世界上威力最大的手枪 能把你的头打爆 你得问自己一个问题:我觉得自己很幸运吗?好吧,你这个小混混呢?"小混混就投降了,并问哈里还有多少枪。哈利用枪指着他,扣动了扳机。枪是空的。银行劫匪很幸运。
你是否依靠运气来确保你的关键任务应用程序日复一日地持续为你的企业服务?还是你有一套发布前的测试程序来确保它们的行为完全符合预期?我之所以提出这个问题,是因为最近我收到了关于升级操作系统版本时是否需要或应该重建应用程序的问题。你可能不需要重建你的应用程序,但我建议你这样做,无论你使用的是Windows、Linux、VOS还是OpenVOS。虽然这些系统的供应商会不遗余力地确保他们的新版本与现有代码兼容,但我仍然认为最安全的做法是在新版本上重建并重新测试你的软件,而不是靠运气。
当你在运行一个关键任务的应用程序时,我相信,进行这种程度的投资是强制性的。否则,就像电影中的场景一样,你有可能让你的业务面临一些真正不愉快的后果。你要问自己的问题是一样的--我觉得自己很幸运吗?所有的变化都在发生--新的系统代码,也许是CPU升级到更快的处理器,也许是一些应用程序的变化--我怎么能确信不会出错呢?
答案是创建一套仔细的资格测试。通过在新版本上重新构建你的源代码,你将会拾起编译器和运行时的错误修复。你可能会发现编译器有一些新的错误信息,揭示了潜在的源代码缺陷。通过重新运行单元级测试,你可以确定你的应用程序的功能方面仍然按计划工作。通过重新运行系统级测试,你可以确定一切都能一起工作。最后,通过运行一系列容量或压力测试,您将知道整个硬件和软件套件可以处理您可以扔给它的最严重的负载。此外,您还可以衡量您的应用程序的最大吞吐量,并在未来几个月内使用该数字作为剩余容量的指标。
无论你做什么,都不要掉进陷阱,不要以为在旧版本上没有遇到任何问题,或者在旧的、较慢的硬件上,你升级时就不会发现问题。我们自己的内部统计显示,软件缺陷与处理器速度的提高有关。以前闻所未闻的问题,或者说是很少见的问题,在更快的处理器上会变得司空见惯。当交易量的正常增长导致队列溢出时,工作多年的软件很容易崩溃。要想知道你的应用程序在改变后的环境中是否能正常工作,唯一的方法就是进行尽可能现实和全面的测试。
不要发现自己盯着枪口想知道还剩多少枪。不要在关键任务的应用上冒险。不要依赖运气。保持对情况的控制。在你的实验室而不是生产环境中寻找问题。
如果你遵循这些步骤,你可以在下班后放松,知道你已经尽了最大努力来确保你的系统顺利运行。也许你甚至会有时间去看一场电影。
暂时就到这里吧。