首页 > 解决方案 > 有没有一种方法可以在不关闭的情况下更新应用程序或系统?

问题描述

我在一家医院工作,更新时系统会关闭。在没有批准或修改的情况下挂起所有订单。考虑到它是一家医院,这是一个很大的问题。所以,我的问题是我们如何在不关闭系统的情况下更新系统。我对没有停机时间滚动更新最感兴趣。

标签: operating-systemshutdownapplication-shutdownsystem-analysis

解决方案


这是一个非常广泛的问题,但一般来说,是的,完全有可能在不关闭系统的情况下更新系统。

最简单的解决方案是拥有一个重复的系统。假设您当前正在使用系统 A。当您想要进行更新时,您更新系统 B。更新可以根据需要进行,因为您没有使用系统 B。根本不会有任何影响。

更新完成后,您可以测试系统 B 以确保更新没有破坏任何东西。同样,这对使用系统没有影响。只有在您对更新没有破坏任何东西感到满意后,您才切换到使用 System B。

这种转换几乎是瞬时的。

如果您稍后发现更新存在问题,您仍然可以切换回仍在运行旧版本的系统 A。

对于下一次更新,您再次更新当前未使用的系统(在本例中为系统 A)并遵循所有相同的步骤。

如果您有备份系统,您也可以这样做。更新备份系统,然后故障转移,然后更新主系统。请注意,在进行更新时,您没有备份系统。所以,如果主系统在更新过程中崩溃,你就有麻烦了。(谢天谢地,这并不像听起来那么糟糕,因为至少您已经在系统上拥有了一名合格的服务工程师,他们可以立即开始工作,要么推动更新以在线备份,要么解决问题主系统。)

当您有一个冗余系统时,这同样适用。您可以暂时禁用冗余,然后更新禁用的系统,翻转,再做一次。当然,就像在最后一个选项中一样,在更新过程正在进行时,您在没有安全网的情况下进行操作。

如果您的系统是集群系统,那就更简单了。如果你有足够的资源,你可以从集群中取出一台机器,更新它,然后再次将它添加回集群,然后再做下一台机器,依此类推。(这被称为“滚动更新”,是 Netflix、谷歌、亚马逊、微软、Salesforce 等公司永远不会停机的原因。)

如果您没有足够的资源,您可以将一台机器添加到集群中只是为了更新,然后您会回到您确实有足够资源的情况。


推荐阅读