就像早期的Linux一样,嵌入式Linux世界也需要拥抱自动化,并利用容器化来实现基础设施的无摩擦和不可见性。到现在为止,有许多不同的发行版,如RedHat、Debian、Suse等,其目标是使Linux可靠、易于使用和安全。这些发行版是由大型、充满活力的嵌入式开发人员社区创建的,他们将自己的空闲时间贡献给开源Linux项目。尽管Linux在早期获得了很大的发展,但在部署并在服务器上运行应用程序之前,集成一个发行版仍然需要相当多的努力和技术能力。
随着AWS等公共云的出现,这种情况有所改变,AWS允许服务器根据需要进行旋转和扩展。最重要的是,您可以将软件部署到它上,而不必担心必须集成Linux发行版才能与您的软件一起工作。然而,在早期,那些一键式发行版是以映像的形式出现的,在它们能够以您需要的方式运行之前,仍然需要进行一些配置。
输入Docker容器
Alex表示,2015年,Linux系统的构建和管理方式发生了另一次转变。Docker容器的兴起意味着不再需要手动集成发行版并匹配相应的库版本。在Docker之前,第三方软件和服务很难使用Linux进行更改或影响发行版的工作方式。
Docker容器允许嵌入式开发人员将他们想要的任何东西(包括第三方扩展)打包到一个自包含的单元中,然后部署到一个虚拟环境中,而不用担心它。由于这种能力,运行应用程序的主机操作系统变得越来越不重要,实际上已经变得不可见。这意味着开发人员可以减少对基础设施的关注,而将更多的时间花在创建为您的业务增值的应用程序上。
内核对于嵌入式开发仍然很重要
与今天的嵌入式开发人员不同,云开发人员通常不会考虑内核功能。Alex说:“在主机操作系统上,唯一真正重要的是Linux内核。Linux内核将在可预见的未来继续存在。内核是共同点,也是嵌入式开发人员Linux难题中最重要的部分。”。
如今,大多数云开发者只需要担心他们可以在容器中运行什么。大多数人甚至不考虑他们在哪个内核上运行,也不担心它是否具有您需要的所有特性。
Kubernetes是云本地基础设施
事实上,云开发者甚至不再那么担心主机操作系统。云删除了主机操作系统作为中间层的功能,在过去,您可以每天与它进行交互。现在,Kubernetes将SSH’ing安装到主机上以安装软件已成为过去。
相反,您可以只使用平台API并自动将您想要使用的任何有效负载部署到集群上。现在,您拥有的不是小组件,而是按您希望的方式工作的大型构建块,而无需考虑它们如何协同工作。
面向嵌入式开发人员的通用平台
在嵌入式方面,内核及其功能是嵌入式开发人员最重要的方面之一,尤其是在嵌入式Linux板上创建新产品时。微控制器无法运行像机器人这样复杂的应用程序,通常更适合传感器类型的数据。由于运行Linux的大多数IoT设备上的资源限制,定制和专门化固件是嵌入式开发人员需要做的重要事情之一。
Alex随后介绍了一个实用的平台,用于在资源受限的嵌入式平台上使用容器构建应用程序。他称之为通用嵌入式Linux系统。那么为什么它是通用的呢?在Pantacor,主机操作系统应该尽可能少,并且尽可能不固执己见。事实上,它除了操作容器的生命周期、协调对硬件设备的访问并提供一个协议来驱动系统的部署之外,什么也不做。
要部署某些东西,您需要一个可以描述为单个事务单元的系统运行时。使用通用嵌入式模型,您可以将所需的所有组件定义为单个事务性可部署单元。其余的是中间件容器、系统容器,然后是应用程序容器。
所有这些都可以在容器中完成,它们应该在容器中完成,因为这是实现真正通用的唯一方法。根据Alex的说法,当你思考这个问题时,如果你用其他东西来替换不可变的部署平台,你已经失去了一半的潜在用例。
自由选择=快乐的嵌入式开发人员
有了通用的集装箱嵌入式系统,您可以选择发行版。事实上,发行版在一个庞大的嵌入式开发团队中变得无关紧要,这是非常强大的。
Pantavisor Linux利用容器构建模块化的容器化嵌入式Linux系统,这些系统完全可定制,并且易于使用标准开源技术进行管理。容器的可移植性简化了跨物联网车队的嵌入式Linux固件和应用程序的生命周期管理。系统和应用程序级别的虚拟化允许嵌入式开发Linux工程团队采用敏捷和现代的云本机方法,如微服务和其他自动化战略,以确保设备群的安全,加快上市时间并增加创新。