更新二进制文件的最佳方法?

更新二进制文件的最佳方法?

因此,我正在制作一个可编译为二进制文件的负载平衡器。这将扩展到多台服务器。

要更新,程序本身将每 5 分钟检查一次 GitHub 存储库中是否有新版本,如果有新版本,它会下载并覆盖旧版本,然后运行命令systemctl restart lb

现在我的问题是,这是一种不好的做法吗,这样做有什么缺点吗,除此之外还有更好的更新做法吗?

--

顺便提一下,运行 cronjob 并不理想。

答案1

推荐的方法是制作一个操作系统包(.deb/.rpm/等)并将其提供给包管理器。

您可以利用 Github 操作来生成包,并将其上传到二进制存储库,该存储库会为包存储库创建必要的元文件。

该包应该包含重新启动服务所需的命令。

这使得替换服务单元、二进制文件和支持文件变得非常简单。大多数包管理器都支持某种形式的自动更新。即使在更新失败后回滚到旧版本也很简单。

您可以设置系统以响应上传到包存储库后通过 Github 操作(webhook)调用的 HTTP 请求,从而从基于拉取的轮询方法切换到仅在 git 存储库更新时触发的基于推送的方法。

相关内容