加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何为物联网设备进行软件部署(基于Linux)?

发布时间:2020-12-14 02:01:44 所属栏目:Linux 来源:网络整理
导读:我正在为之工作的客户有一批BeagleBones / Raspberry PI在客户所在地运营.这些设备安装在本地网络和防火墙后面.对于SSH连接,有几种选择,但我们仍在努力在这些设备上进行软件部署.我们目前不依赖于容器技术,因此Docker Cloud或Resin.io不是一种选择,但resin.i
我正在为之工作的客户有一批BeagleBones / Raspberry PI在客户所在地运营.这些设备安装在本地网络和防火墙后面.对于SSH连接,有几种选择,但我们仍在努力在这些设备上进行软件部署.我们目前不依赖于容器技术,因此Docker Cloud或Resin.io不是一种选择,但resin.io看起来非常有前途.我们使用AWS IoT进行数据收集.

有关部署的一些要求:

>推送软件服务器 – >设备
>分阶段推出,推出到一定比例的设备,随着时间的推移增加
>回滚软件
>设备配置
>没有容器技术

实现这一目标有哪些好方法?

解决方法

(免责声明:resin.io的开发人员传播者).

好消息是,那些不依赖于容器的软件仍然可以打包(虽然它不起作用). resin.io中的容器用作将软件传送到设备上的方法,并实现有趣,有用和安全的更新策略,否则这些策略将无法实现或难以实现.例如:

>您的应用程序代码有一个错误(发生!)和崩溃.这会影响包括网络在内的整个设备吗? (在resin.io容器上有助于限制损坏,您的应用程序崩溃但设备已联机且可以更新)
>在进行应用程序更新时,是否必须更新整个机器映像? (使用这样的容器,更新了应用程序代码中的更改,这导致大多数时间的数据流量非常少,并且在需要时可以快速更改)
>使用这样的容器可以让您几乎没有停机升级(启动新应用程序,旧的运行版本将资源移交给新应用程序).

这并不是要让你相信容器技术,只是强调你自己的应用程序是否是容器化的(很可能它不会并且会保持这样!),不要选择使用该技术作为其堆栈的一部分的服务.每项服务都试图以任何必要的方式提供您所需的功能.

至于你关于resin.io的清单:

>推送软件服务器 – > device:check,git push resin master,你的代码正在部署中
>分阶段推出,随着时间的推移增加:不是一般功能集的一部分,但使用resin supervisor API很容易实现:例如所有设备的锁更新,您可以选择哪些设备将被解锁和更新.由于它全部通过API,因此可以根据您的首选部署策略进行自定义
>回滚软件:不是一般功能集的一部分(但是),但使用git很容易重新推送以前的版本.需要注意在您的设置中固定库的版本以产生可重现的设置,但在实践中可行.
>设备配置:自动设备设置或通过API / SDK / CLI进行配置
>没有容器技术:如上所述,在实践中,您不需要过多关注服务提供软件的方式,因为在大多数情况下,它不会影响应用程序的行为方式.

此外,您提到了AWS IoT,有关于将resin.io与AWS集成的some documentation,包括使用AWS IoT自动设备配置resin.io设备的示例项目(插入设备,并自动获取AWS IoT的凭据).它可能是你感兴趣的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读