关于自动升级和更新

11 小时 49 分钟前
 cosmain

我们公司接了一个 IoT 项目,有不少终端( linux ),目前我们的程序要部署到这些终端上去。

由于我以前没有这方面的经验,现在要开发一个自动更新功能,定期更新终端上项目的二进制文件和配置文件并重启应用,

问题:

  1. 有什么现成的好用的框架或者组件没有?(终端性能弱,不太可能安装大的框架或者组建)
  2. 有什么好的思路没有? 比如要思考更新服务器的 ip 变动,保持终端不失联等。

PS: 再顺便求一个 linux 下 c/c++写等简单的内网穿透工具,平时调试用,要简单,小巧(排除 golang),实现内网设备端口能映射到远端服务器。

896 次点击
所在节点    程序员
8 条回复
Meld
11 小时 45 分钟前
终端联网吗?
Meld
11 小时 44 分钟前
@Meld 二进制的话,脚本从 cdn 上拉就行了吧
kuanat
11 小时 33 分钟前
部署和配置更新可以考虑 ansible ,中心式管理没有更简单的了,有 ssh 就行,没有性能需求。

ip 变动的话一般要靠设备主动汇报,一般负责心跳的模块顺便就做了。我这里之前用的方案是 ansible inventory 是通过外部接口调取的。
tool2dx
11 小时 20 分钟前
仅仅是调试的话,用 ssh 自带的隧道功能,可以重定向 tcp 。

如果长期使用,还是推荐 frp ,老版本的 frp 也没你想的那么大,挺稳定的。新版本体积比较大。
cosmain
10 小时 28 分钟前
@tool2dx
主要很多时候,golang 的程序都慢慢会内存爆炸,这在物联网设备上无法容忍。
tool2dx
10 小时 24 分钟前
@cosmain 我监测过 frp 的内存占用,目测挺低的。你说内存爆炸,估计写法有问题,有内存泄漏。

我是在很低端的 openwrt 上用的,基本上 32M rom + 64M ram 这种级别,和你物联网也差不多了。
KeysPAN
9 小时 21 分钟前
是 IOT 设备的话那直接在你们服务器布个 mqtt 服务啊,只要你们服务器地址不会变动,那就一直保持订阅就好了,然后你的终端是客户端的,甚至还能上报参数统计啥的。有更新服务器就下发一个 json 附带文件 url 就行了,其他的 gpt 写就好了,甚至全部都可以。纯 c/c++,linux 自带的库估计都够用了
deepshe
8 小时 40 分钟前
服务器变更 ip 的话,设备可以存新旧两个服务器 ip 地址,变更后如果连不上新服务器,就回退到连接老服务器上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1107089

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX