Linux下分布式服务器应用程序

Linux下分布式服务器应用程序

我们有一个运行 Linux Debian 的服务器端应用程序。我们计划将该应用程序分发为 VM 映像(例如,可以稍后导入到 VMware ESX 服务器的 ovf 映像)

我们主要关心的是如何组织应用程序的更新。我认为这比仅仅用新版本替换我们的应用程序更复杂。应用程序的新版本可能需要一些 Linux 库或工具的新版本(例如,新的 libstdc++ 或 libssl 或新的 grep)它甚至可能需要整个 Linux 系统的升级。

当然,升级过程应该尽可能少地需要用户参与。最直接的方法是调用“apt upgrade”作为应用程序的升级前步骤。但我发现这种方法很脆弱,因为:

  • 如果系统部分升级成功,而应用部分升级失败,系统可能会崩溃
  • 如果升级的系统部分中途出现故障,则会导致系统崩溃
  • “apt 升级”和朋友需要互联网连接,但情况并非总是如此

因此,我正在寻找一种方法将我们的应用程序与 Linux 捆绑在一起(具有所有需要的库和工具),并将其推送给我们的用户。这样,整个包将安装在辅助分区上,并在重新启动后激活。我非常喜欢这种“一体化”方法,因为这样我们可以完全控制我们交付的内容,并且还可以在更新过程中出现问题时实现回滚(只需切换回原始分区)。

我正在寻找的是使用“os+app”包实现此类升级的现有技术,或者至少是谷歌搜索的关键字提示。我对 Linux Debian 8 特别感兴趣。

相关内容