容器和 unikernel 可以从 Arduino 和 Raspberry Pi 中学习什么

还没有读者喜欢这篇文章。
Shipping containers stacked

维基共享资源

就在前几天,我和一位机械工程师朋友聊天。他为半挂卡车开发计算机辅助制动系统,他提到他的公司办公室里到处都是 Arduino。这样做的目的是鼓励人们快速尝试新想法。他还提到 Arduino 比印刷电路板更贵。我对他的价格评论感到惊讶,因为从软件方面来看,我对 Arduino 的看法是,它们比设计专用电路更便宜。

我一直将 ArduinoRaspberry Pi 视为很酷、小巧、专用的设备,可以用来制作各种有趣的玩意。我来自软件领域,一直认为 x86 和 x86-64 上的 Linux 是“通用”的。但事实是,Arduino 并不专用。事实上,它们非常通用。它们相当小巧、相当便宜且极其灵活——这就是它们像野火一样流行起来的原因。它们有各种 I/O 端口和扩展卡。它们让创客能够快速构建出很酷的东西。它们甚至让公司能够快速构建新产品。

Arduino 的单价远高于印刷电路板,但实现最小可行想法的时间要短得多。使用印刷电路板,单价可以降低很多,但前期资本投资要高得多。所以,长话短说,答案是——视情况而定。

Unikernel、Rump kernel 和容器主机

Unikernel、Rump kernel 和最小 Linux 发行版应运而生——这些操作系统是为特定用例而构建的。这些专用操作系统有点像印刷电路板。它们需要一些前期规划和设计投资才能使用,但在大规模部署特定工作负载时可以提供巨大的性能提升。

诸如 Red Hat Enterprise Linux Atomic 或 CoreOS 之类的最小操作系统是为运行容器而构建的。它们体积小、速度快、启动时易于配置,并且可以很好地运行容器。缺点是,添加第三方扩展(例如监控代理或虚拟化工具)需要额外的工程设计。一些侧加载工具需要重新设计为超级特权容器。如果您要构建足够大的容器环境,那么这种额外的工程设计可能是值得的,但对于仅仅尝试容器来说可能没有必要。

容器提供了运行标准工作负载(基于 glibc 等构建)的能力。优势在于,工作负载工件(Docker 镜像)可以在您的桌面上构建和测试,并在完全不同的硬件或云端生产环境中部署,并确信它将以相同的特性运行。在生产环境中,容器主机仍然由运维团队配置,但应用程序由开发人员控制。这有点像两全其美。

Unikernel 和 Rump kernel 也是为特定用途而构建的,但更进一步。整个操作系统在构建时由开发人员或架构师配置。这既有好处也有挑战。

一个好处是开发人员可以控制工作负载的运行方式。理论上,开发人员可以尝试使用 不同的 TCP 协议栈 以获得不同的性能特征,并选择最佳的协议栈。开发人员可以提前配置 IP 地址,或者让系统在启动时使用 DHCP 自行配置。开发人员还可以删除其应用程序不需要的任何内容。由于减少了 上下文切换,因此也有望提高性能。

Unikernel 也面临挑战。目前,缺少很多工具。现在的情况很像印刷电路板的世界。开发人员必须投入大量时间和精力来辨别所有正确的库是否存在,或者他们必须改变应用程序的工作方式。运行时如何配置“嵌入式”操作系统也可能存在挑战。最后,每次对操作系统进行重大更改时,都需要 返回给开发人员 进行更改。这不是开发和运维之间的清晰分离,因此我预见到需要进行一些组织变革才能真正采用这种模式。

结论

围绕专用容器主机、Rump kernel 和 unikernel 有很多有趣的讨论,因为它们有可能彻底改变某些工作负载(嵌入式、云等)。请密切关注这个激动人心、快速发展的领域,但要保持谨慎。

目前,unikernel 看起来很像构建印刷电路板。它们需要大量的前期投资才能使用,并且非常专业,为某些工作负载提供优势。与此同时,即使对于传统工作负载,容器也相当有趣,并且不需要那么多投资。通常,运维团队应该能够将应用程序移植到容器,而将应用程序移植到 unikernel 则需要真正的重新工程设计,并且行业仍然不太确定哪些工作负载可以移植到 unikernel。

为了容器、Rump kernel 和 unikernel 令人兴奋的未来干杯!

标签
User profile image.
在 Red Hat,Scott McCarty 是容器子系统团队的技术产品经理,该团队为 OpenShift Container Platform 和 Red Hat Enterprise Linux 中的关键产品功能提供支持。重点领域包括容器运行时、工具和镜像。

1 条评论

使用自定义内核不仅前期成本更高,维护成本也更高。如果要以某种方式将这些容器暴露给网络,那么您必须跟上所有内核安全修复程序。如果您 fork 了内核,那么您就处于不利地位。
这不像硬件电路。在野外有太多设备使用过时的软件,容易受到谁也不知道的攻击。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.