关于传统的软件测试和软件质量保证管理无需赘言,本节重点讨论网站为了保证线 上系统的可用性而采取的一些与传统软件开发不同的质量保证手段。
[](()1 网站发布
网站需要保证7x24高可用运行,同时网站又需要不断地发布新功能吸引用户以保证 在激烈的市场竞争中获得成功。许多大型网站每周都需要发布一到两次,而中小型网站 则更加频繁,一些处于快速发展期的网站甚至每天发布十几次。
不管发布的新功能是修改了一个按钮的布局还是增加了一个核心业务,都需要在服 务器上关闭原有的应用,然后重新部署启动新的应用,整个过程还要求不影响用户的使 用。这相当于要求给飞行中的飞机换个引擎,既不能让飞机有剧烈晃动(影响用户体验), 也不能让飞机降落(系统停机维护),更不能让飞机坠毁(系统故障网站完全不可用)o
网站的发布过程事实上和服务器宕机效果相当,其对系统可用性的影响也和服务器宕机相似。所以设计一个网站的高可用架构时,需要考虑的服务器宕机概率不是物理上 的每年一两次,而是事实上的每周一两次。也许你认为这个应用不重要,重启也非常快, 用户可以忍受每年一到两次的宕机故障,因而不需要复杂的高可用设计。事实上,由于 应用的不断发布,用户需要面对的是每周一到两次的宕机古攵障。
但是网站发布毕竟是一次提前预知的服务器宕机,所以过程可以更柔和,对用户影响更小。通常使用发布脚本来完成发布,其流程如图5.14所示。
发布过程中,每次关闭的服务器都是集群中的一小部分&#x