我应该什么时候生产?
我的用户几乎全天候24/7地使用该网站。是否有构建时机的模因?
国际观众,东部时间的单个服务器群集,但是到了早上,受到国际客户的欢迎。
1 db,几个Web服务器,因此,如果没有db,则简单,随时可用。
但是,当网站有降下来的时候,你会作为一个程序员是最疯狂的看,所以要下来再说15分钟。
解决方案
使用第二个站点,并根据需要进行热交换。
如果从用户的角度来看确实没有美好的时光,那么我建议我们在团队最有时间从任何与构建相关的灾难中恢复时进行。
这是什么样的应用程序?我使用的大多数网站都倾向于在凌晨2点或者凌晨3点左右更新。
热插拔的问题在于,数据库仍将被共享,而重大更改也将导致停机。
我猜你必须问你的客户。
无论如何,都是凌晨。如果我们正在谈论本地网站,我认为用户不会介意他们在时区凌晨2点收到"维护中"通知。
这是我所做的,对我来说效果很好:
- 获取站点流量分析工具,该工具将以图表形式显示每小时的用户负载
- 选择图表中的低点以进行更新
具体取决于位置:东海岸4 AM / 1西海岸通常是最短的时间。
选择几次我们想做的事,并将其作为决策者类型的选择。无论我们做什么,在部署时都设置一个"进行常规维护的步骤"页面。
- 检查最少使用时间
- 将最新的生产代码克隆/复制/更新到另一个目录
- 如果存在任何要进行的数据库迁移,请执行所需的任何迁移,并且不要与旧代码库冲突
- 最少使用时,移动符号链接指向最新代码
如果我们很小,是的,请找出最低使用期限,然后再执行(对于我们个人而言,通常PST在1 AM-3AM PST附近是最低的,但是它永远不会降至0)。一旦我们开始拥有更大的用户群,如果我们希望人们认真对待我们,则需要设计应用程序,以便可以在不停机的情况下进行升级。这并不简单,并且通常涉及拥有多个服务器。
我花了很长时间试图将我们的应用程序做到这一点,到目前为止,我想出的最好的办法是同时运行旧版本和新版本两个小时。切换时登录的用户将保持旧版本,直到注销。下次他们进来时,他们会使用新版本。切换后进入的所有用户都将直接发送到新版本。它仍然不是万无一失的,但是还不错。
首先使用分析工具来尝试确定我们通常的"轻量"流量时间。知道,具体取决于网站和我们与大多数用户相比在世界上的位置,可能是凌晨4点,可能是下午1点。然后,一旦确定了适当的时间表,请确保使部署过程尽可能自动化,以便迅速进行以最大程度地减少站点的停机时间。