与云系统不同,嵌入式系统在更新过程中更容易出现故障补丁或断电,这可能会迅速将嵌入式设备变成砖块或导致其负载进入不稳定状态。通常,一个组织的唯一办法是派一名嵌入式开发工程师手动修复问题或召回设备。然而,在容器及其便携性和在更新设备组时应用自动化的能力中可以找到一个更稳定的选择。
有人多次尝试使用传统的发行版,如Ubuntu Core和Yocto,作为第三方以软件包粒度贡献软件的地方,希望有一种方法能够保持完全集成的像码头一样的高质量,如,发行版存储库,还可以获得蓬勃发展的第三方生态系统的灵活性和创新性。但是已经看到,使用“包”或“层”并不是使这种协作生态系统工作的正确粒度级别。
然而,使用Linux容器,现在可以将粒度保持在第三方可以作为完全工作单元交付组件的水平,如果操作正确,组件之间的相互依赖性将非常小。在云中,只有协议充当模块的相互依赖关系,这允许更好地抽象和更容易地组合第三方组件,最终实现更完整的最终用户体验。
容器是轻量级的虚拟化软件环境,在主机上运行应用程序或操作系统的独立实例,分配所需的资源。将发行版集装箱化使其组件模块化。然后,这些模块可以用作构建块,并可用于构建部署到设备组的专用发行版。在嵌入式开发中,容器通过可移植性和自动化彻底改变固件更新,允许应用或回滚更新和关键补丁,而无需关闭整个系统。
Linux容器(LXC)持有答案
轻量级Linux容器(LXC)最适合将操作系统的系统级组件容器化。此外,LXC容器允许您独立地安全地更新发行版的各个组件,而不必冒完全系统故障的风险。他们通过在设备中创建分区并在每个分区中运行Linux操作系统的实例来实现这一点——一个实例运行旧软件,另一个实例安装新软件。这样,如果安装了有缺陷的更新,或者在更新中途断电,系统可以很容易地在第一时间回滚到软件的前一版本,而不会损害嵌入式设备的功能或将其变成砖块。
希望升级其物联网基础设施的公司必须设计嵌入式系统,以处理DevOps等现代软件交付方法。容器对于这一转变至关重要,并确保企业能够推出更新,以确保其物联网设备免受攻击,并与最新的尖端嵌入式开发保持同步,而不会出现代价高昂的故障或更糟糕的安全漏洞。
发表评论 取消回复