升级的实践

那天我登录进VM的后台,收到提示说,Ubuntu的新版本14.04已经出了,可以升级了。基于以前的经验,我觉得升级是件挺简单的事,就敲了行命令,开始升级。可是没想到,升到半路的时候,我这边的网络连接突然出了故障,ssh连接断掉了。等我再连进去的时候,升级没完成,需要敲一大堆命令来修复各种包依赖。不过修复完之后,Apache和MySQL还是挂掉了。排错太麻烦,幸亏我之前对整个vhd做了一个快照,我索性就从快照恢复虚拟机。不过这也是折腾,浪费了不少时间。

有时候,软件升级这种事情,真的需要忍一忍,别第一时间就尝试升级。比如说前一阵子的SharePoint 2013 SP1,放出来没几天就又被pull back了。如果你手快,它一放出来你就升了,难免要提心掉胆几天。实际上,SharePoint的补丁搞这种飞机还不是一次两次了,所以通常客户不是受补丁修复的某个bug直接影响,我都会建议他们等一等再升级,至少在测试环境中测个一阵子,再升生产环境。再比如之间的heartbleed bug,也是OpenSSL的某个新版本开始才有的bug,用老版本的反而不会被影响。当然,这个bug有两年多了,即使用户没有在第一时间升级到新版本,但是等了两年多还没升级的,似乎也不是最佳实践。这个bug通过控制升级流程似乎是没法规避的。

当然,我升级VM遇到问题,纯粹是网络故障导致的。通过ssh对Linux进行升级,尤其是对于Cloud环境,接触不到机器的时候,没有一个稳定的网络连接,看来是不行的。