将 Linux 容器的优势带入运维技术
Linux 容器技术在十多年前被引入,并且最近在 IT 环境中的采用率猛增。然而,OT(运维技术)环境,通常由异构的嵌入式系统组成,在容器技术的采用方面滞后,这既是由于独特的技术要求,也是由于依赖专有系统的商业模式。在本文中,我将探讨开源产品中的最新创新,这些创新正在使容器能够在 OT 用例中使用,例如工业控制系统、物联网网关、医疗设备、无线接入网 (RAN) 产品和网络设备。
企业 IT 领导者已经采用了“云原生”计算架构,因为这种方法带来了创新速度和成本效益。为了利用容器,开发人员将应用程序划分为模块化的微服务,从而实现灵活的开发和部署模型。然后,这些微服务被部署为容器,其中服务本身与所需的库和功能集成在一起。容器化后,这些应用程序组件具有较小的占用空间和快速的部署速度。由于从硬件和操作系统中抽象出来,应用程序在计算架构之间变得高度可移植。
当与更高级别的编排系统结合使用时,容器化架构提供的灵活性和模块化的优势才能得到充分发挥,这些编排系统可以管理容器的整个生命周期。Kubernetes 是领先的开源容器编排系统,在过去几年中获得了广泛的关注。Kubernetes 项目最初由 Google 开发,现在由云原生计算基金会 (CNCF) 维护。CNCF 致力于减少云原生技术采用方面的摩擦,并带来了几个关键的云原生项目,例如 Kubernetes、Prometheus 和 Envoy。这是一个开源组织的例子,该组织促进了整个价值链——开发人员、最终用户和供应商之间的协作。如今,CNCF 的成员包括重要的技术品牌,例如 Amazon、Cisco、Google、Microsoft、Oracle、SAP 等。
容器和其他云原生范例最初是考虑到 IT 环境而开发的。随着这些技术的成熟和云原生技术能力的提高,OT 决策者已经注意到。随着越来越多的开发人员可以访问容器技术,他们也在经历自己的旅程,尽管这与过去十年 IT 开发人员的旅程有所不同。
到目前为止,OT 世界主要使用专有架构进行开发,非常注重可靠性、安全性和寿命,尽管以牺牲灵活性和可扩展性为代价。这些解决方案通常是定制的、以硬件为中心的,并且利用异构计算架构。这种方法已成功地生产和部署了 15 年前投入生产并且至今仍能正常运行的系统。该行业现在意识到,这种方法虽然实现了可靠性和寿命,但也导致了巨大的技术债务。目前部署在制造业、交通运输和过程自动化领域的系统尚未跟上技术的发展,仍然在使用 15-20 年前的概念。虽然这些系统运行状况良好,但由于它们是单体且缺乏灵活性,因此维护成本高昂且对市场需求的响应速度较慢。
许多最终用户已经意识到,为了可靠性、安全性和寿命,他们不能再在灵活性和可扩展性方面做出妥协。开放过程自动化论坛 (OPAF) 等组织已经走到一起,以加速从以硬件为中心的方法向软件驱动的方法的转变。这种新方法从一开始就包括灵活性,从而实现关键功能,例如软件更新、冗余、供应商互操作性以及从以设备为中心的视图到系统和解决方案视图的转变。
随着 OT 世界向灵活的系统和解决方案方法转型,云原生架构尤为重要。然而,将容器技术的使用扩展到 OT 领域需要不同的思维方式。与 IT 计算节点相比,IT 计算节点之间的差异相对较小,而 OT 世界中的计算环境差异很大。这通常是由于较长的部署生命周期,这可能会导致新一代硬件与 10 年以上的旧硬件并排存在。
直到最近,在大多数情况下,为嵌入式系统利用云原生架构和容器的成本和复杂性都令人望而却步。开发人员需要推出自己的解决方案,实施从针对 IT 环境优化的软件平台派生的定制解决方案。由于这些挑战,大多数嵌入式系统要么继续使用传统的“裸机”物理架构实施,要么采用基于 VM 的虚拟化方法,这些方法在敏捷性、可移植性、占用空间和/或加载时间方面可能都不是最优的。
然而,在过去几年中,社区正在添加 OT 系统所需和相关的能力。今天的商业 Linux 产品现在为希望利用或部署使用云原生模型的系统的嵌入式系统开发人员提供了必要的应用程序、工具、文档和其他资源,以及来自 CNCF 的预集成组件,这些组件配置为为边缘设备等嵌入式系统提供功能齐全的解决方案。
通过利用这种预集成的容器平台,开发人员可以将时间集中在创建代表其真正差异化的应用程序上,从而使他们能够加快增值解决方案的上市时间。为了帮助开发人员,这些平台现在预集成或与“字母汤”CNCF 项目互操作,包括 Ansible、cAdvisor、CNI、etcd、GitHub、Google 容器注册表、GRPC、OCI、Open vSwitch、Prometheus、注册表、runc 和 sysdig,以及其他可能在未来版本中添加的项目。
在不久的将来,OT 环境中的嵌入式系统开发人员将见证与 OT 环境相关的云原生技术的快速行业和社区驱动的创新。OT 开发人员将越来越能够利用容器在边缘应用程序中的使用,例如物联网网关、工业控制系统、本地数据湖、基于深度学习的安全性、自动驾驶系统、无线接入网 (RAN) 产品以及各种网络设备。