使用预取更新数据会延迟软件发布吗?

使用预取更新数据会延迟软件发布吗?

我目前正在为一个新项目制定软件要求,该项目将位于网络连接间歇的地方。

由于我们某些地点的网络连接会时断时续,因此我们将提前规划(几乎?)所有软件的发布。

是否可以在实际发布之前下载所需的更新数据,即使服务器没有网络连接也可以按计划发布。

我们目前使用 Capistrano 发布我们的主要项目,所以如果 Capistrano 可以的话我愿意继续使用它。

答案1

今天我了解了一个名为的 Capistrano 插件delayed_job,它允许人们在选择的时间执行任务。

为了使其正常工作,我们必须打破我们的发布过程,并且有一小部分脚本可以绕过该过程以使其自动重试,但目前看来我们将能够使用它让客户端在晚上自动完成发布,而无需网络连接。

一旦我实施了解决方案,我将对其进行编辑和更新,并希望提供一个代码示例来演示我所做的事情。

在此之前,我会保持这个问题开放,以便希望看到是否有人有更好的解决方案。

答案2

同时向大量用户发布软件是有风险的。如果出现问题,你会怎么做?逐步推出可以让你更快地发现问题,并且你可以减少从事故中恢复的工作量。如果运行此软件的主机没有可靠的网络连接,风险会更大。

不同版本之间可能存在兼容性问题。这种兼容性问题的最好处理方法是确保每个版本都与其前一个版本兼容(但不一定更早)。当涉及多个组件时,组件的更新顺序也可能很重要。

但是,一旦您决定可以使用新版本,为什么不立即部署它,而是等待未来的特定时间?通常等待的主要原因是确保您已准备好处理可能出现的任何问题。但如果这是目的,那么在设备甚至可能没有网络连接的情况下进行自动发布,可能会在最糟糕的时间发布。

从您计划发布到实际发布之间,可能会发生很多事情。您可能会发现一个错误,这意味着您想要取消发布。您还可能会发现应该提供支持的人员在计划的时间无法提供服务,因此您需要推迟发布。在这些情况下,网络连接不足可能会阻止您停止发布,毕竟这种情况不应该发生。

相关内容