嵌入式系统是热点,它们是具有实时要求的专用硬件和软件,是为优化成本、性能和功能而定制的。嵌入式系统无处不在,物联网行业正在推动对它们的指数级需求,以填补每一个可以想象的利基市场,但是没有足够的嵌入式开发工程师来设计和制造所有这些设备,即使有,专业化和硬件独特性也会妨碍代码重用、可移植性,甚至像固件空中(FOTA)更新和调试这样的简单需求。对于寻求冒险或在竞争中领先的工程师和团队来说,容器可能是答案。
在云和桌面应用程序中,像Docker这样的容器彻底改变了开发人员编写、更新和共享应用程序的方式。如果你需要特性A,可能有人已经编写了实现该特性的容器化服务,只需要你部署它。容器已经找到了进入CI/CD系统的方法,允许软件被不断地测试和部署。容器已经彻底改变了软件行业,但是到目前为止,它们还没有在基于微控制器的嵌入式系统中被广泛采用。
使用容器来设计和构建嵌入式软件可能是未来的发展方向。在嵌入式系统的潮流中保持领先的最好方法是看看更大的软件行业正在发生什么。不幸的是,嵌入式软件开发人员往往落后于行业的其他人大约五年。然而,如果你看看今天的趋势,一切都是关于容器技术,那么,嵌入式软件容器的未来是什么?
到目前为止,我遇到的最小的容器框架的运行时间只有几百千字节的代码大小,并且需要同样数量的RAM,这太棒了,但在嵌入式开发中,这仍将淘汰嵌入式系统行业的很大一部分,这些行业使用的是内存少于256K的受限设备。很多容器似乎都是针对物联网应用的。物联网设备通常需要额外的内存和成本来管理无线连接、与云通信等。
容器可以在作为物联网边缘设备的嵌入式系统中扮演利基角色。对于这些设备,容器可以简化和改进它们生命周期的几个方面。首先,新的服务、功能和更新可以远程部署到设备,而无需完全重写所有固件。第二,容器不需要专门的硬件。例如,一个产品可能有几个使用不同微控制器的硬件版本,而一个新的特性或服务可以同时部署到它们上面。最后,不一定需要嵌入式软件工程师来添加新功能。容器抽象出了所有底层的细节,这意味着你不再需要一个专门的工程师来编写一个新的特性。
对于嵌入式系统来说,容器是一个令人兴奋的技术选择。但是,它们很可能永远不会被普遍采用。从来都不是。然而,在一些行业中,使用容器的好处将有助于简化嵌入式系统开发和生命周期管理。在这些领域,我猜想我们将开始看到容器的采用远远快于物料成本优化是关键要求的行业。
你怎么想呢?容器会成为嵌入式开发人员工具箱中的常规工具吗?