当您对实际网站进行更改时,如何检查实时系统是否正常工作?你用哪些工具?谁做到了?您是否在测试期间阻止访问该网站?可以接受多少停机时间?
我倾向于在另一个环境中进行所有测试(不是现场测试!).这允许我将更新推送到实时站点,因为知道代码应该正常工作,我只是对实时数据进行完整性测试 - 确保我没有忘记某个地方的文件,或者有一些奇怪的错误.
因此,在测试或暂存环境中进行适当的测试,然后进行简单的健全性检查.无需停机.
已经有很多好的建议.
正如人们所提到的,如果您没有涉及单点,只需通过一次升级应用服务器来分阶段进行更改即可.但这种情况很少发生,所以让我们忽略它并专注于困难的部分.
通常在那里有一个db,这是其他一切的共同点.这意味着整个系统的停机时间.你如何最小化?
自动化.编写整个部署过程的脚本.这(特别是)包括任何数据库架构更改.这(特别)包括模式版本之间所需的任何数据迁移.
质量控制.确保有测试.自动验收测试(用户从业务逻辑/体验角度看到和期望的内容).考虑在生产系统中拥有测试帐户,您可以编写脚本来测试只读活动.如果您不与其他外部系统交互,请考虑进行写入活动.您可能需要在系统的某些部分过滤掉测试帐户活动,尤其是在他们处理资金和会计时.当豆子不匹配时,Bean计数器会因为充分的原因而感到不安.
排练.部署在与生产尽可能相同的临时环境中.使用生产数据量和生产数据执行此操作.您需要了解alter table需要多长时间.并且您需要检查alter table是否在结构上以及实际数据中的所有外键都有效.
如果您有大量数据卷,架构更改将需要时间.也许还有更多的时间可以让你失望.一个解决方案是使用阶段性数据迁移,从而使架构更改填充"最近"或"电流"(比如说一个月或三个月大)其余5年后可以慢慢增加停机期间的数据,并将数据你又来了.对于最终用户来说,事情看起来还不错,但是有些功能无法访问几个小时/天/无论如何.