![Web 应用程序的优雅维护](https://linux22.com/image/506993/Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E4%BC%98%E9%9B%85%E7%BB%B4%E6%8A%A4.png)
我在 Stack Overflow 上问了这个问题,得到了一些不错的回复。一些 SO 成员建议我也应该在这里问这个问题,看看系统管理员对此的看法。因此,情况如下:
我住在澳大利亚(虽然对于大多数非美国时区的人来说可能都是这样),在工作日的中间,我经常收到“... 正在维护”的提示。事实上,上周我们的 Google Wave、SO 和 Campfire 都轮流宕机了。(悲伤的熊猫 :()
在澳大利亚,周一中午是一周中最繁忙的时间之一,通常是美国服务运营商决定进行维护的时候(因为那里是周日晚上)。我知道 SO 和 Google Wave 等服务都是免费的,所以很公平,但尤其是当 Campfire 出现故障时,我想,“我们为这个应用程序支付的费用肯定和其他客户一样,因此可以期待相同级别的服务吗?”
虽然我从事网络应用程序开发工作已有多年,但我几乎一直从事涉及高度本地化用户群的内部系统的项目。所以我从来没有遇到过“什么时候是关闭系统的最佳时机”的问题。
但我想知道,有没有办法对 Web 应用程序进行优雅的维护?(为了简单起见,我们假设它已经处于生产状态)我相信那里的 SF 成员经常处理这个问题……您是如何做到的?是否有可能不对您的服务的海外用户产生不利影响?
仅供参考,可以在这里找到 SO 问题: https://stackoverflow.com/questions/2322599/graceful-maintenance-of-web-applications
答案1
并不是说这个决定通常由我来做,但是……最基本的是,我会绘制几周(或几个月,以确保考虑到月度周期)的每小时使用情况图表,以找到负载最小的星期几和时间,然后我会考虑我们的客户,并尝试找到一个影响账户数量和价值最少的窗口。(是的。有些客户比其他客户更有价值,有些客户比其他客户更容易惹恼。)
注意:在我公司,他们将每种产品的维护窗口写入我们的合同中,如果我们预计在即将到来的窗口内会出现中断,我们会提前通知我们的客户。这样,您的客户就可以知道预期的可用性级别,并为我们的服务可能不可用的时间制定计划。