容器化Docker:工业自动化的终结

工业自动化领域正在出现重大技术变革。这种变革有可能使长期供应商的商业模式过时。它还要求所有类型的供应商采用云计算领域的新兴软件技术和实践。这种变革几乎完全由新的软件技术而不是硬件驱动。虽然变革将首先影响连续过程自动化,但这些新软件技术的功能和价值将推动它们及其新业务模式进入许多其他领域,包括工厂自动化和工业物联网(工业互联网)。

《容器化Docker:工业自动化的终结》

作者:ARC咨询集团 HARRY FORBES

推动这种变革的技术是软件应用程序的“容器化”。软件容器技术几十年前在UNIX操作系统中诞生,并且在庞大的Linux开源生态系统和主要云计算服务供应商的推动下迅速发展。

软件容器为软件开发人员和最终用户提供两个主要价值。首先,它们提供了自动化方法,可以跨任意数量的物理或虚拟机部署和管理多个分布式应用程序。其次,容器软件开发过程创建了一个“容器镜像”存储库——可以协同创建的软件交付成果,并包含在特定计算机环境中运行应用程序所需的所有工件。

容器镜像的开发创建了一个强大的新抽象,将应用程序与异构CPU、操作系统、软件版本以及它们在生产期间运行的环境隔离开来。此外,由于容器镜像的范围包含单个应用程序,因此容器将开发人员的注意力从管理机器转移到管理应用程序。这大大提高了应用程序部署和可见性。在过去的五到十年中,容器开发、部署和编排软件工具已经成熟。它们现在远远超过传统的嵌入式系统软件技术,能够提供并管理分布式和高可用性应用程序——例如未来分布式控制系统(DCS)的自动化应用程序。

垂直整合的商业模式的终结

自从20世纪70年代引入PLC和DCS以来,控制级别(ISA 95级别1和2,企业系统与控制系统集成的国际标准)的自动化硬件和软件架构从根本上没有改变。一直到今天,工业自动化市场结构围绕着捆绑的自动化硬件和软件。这种结构非常类似于20世纪70年代的小型机市场,每个主要的计算机供应商(Da-ta General,Prime,HP等)都推出了自己独特的捆绑应用程序和软件工具集,以及他们自己的渠道合作伙伴和独立软件供应商(ISV)。

但是,最终以用户为中心的开放式过程自动化论坛(开放式集团论坛,华为、IBM、富士通、甲骨文等是白金会员)(Open Process Automation Forum (a Forum of The Open Group))的形成以及大部分过程自动化供应商社区的支持表明,这种高度垂直整合的业务模式已经受到威胁,可能正在达到其终点。

传统嵌入式系统模型的终结

对于嵌入式系统和传统嵌入式系统软件开发的传统市场而言,最终也是如此。网络(分布式)嵌入式系统——特别是工业嵌入式系统——在其生命周期中的开发、部署和管理方式需要进行转型。

目前,许多嵌入式软件(即使它起源于开源)包含许多专有元素。出于安全原因,今天更新嵌入式软件越来越重要,但遗憾的是,这通常很难或不可能。因此,网络安全已经成为嵌入式系统的一个长期问题,特别是在消费电子领域。这也会产生其他问题。应用程序不灵活、操作系统和软件工具链是分散的、开发速度很慢、硬件/软件集成仍然存在问题。更糟糕的是,经验丰富的嵌入式系统软件开发人员比较缺乏。

虽然嵌入式系统软件市场确实感受到了Linux的影响,但传统嵌入式市场的其他方面仍然存在多年。市场需要改变技术,进入工业物联网、工业4.0、智能制造等时代。未来的工业嵌入式系统将要求整个软件堆栈可以自动升级——从顶层应用程序到底层操作系统和虚拟机管理程序。

那么,如果当前用于工业自动化的技术堆栈不再能够很好地发挥作用,那将被什么取代呢?

容器软件扰乱了许多行业

最近,ARC Advisory Group(ARC咨询集团)与过程自动化业务的C-Level高管进行了讨论,他对开放式过程自动化系统的前景持悲观态度。根据这位高管的说法,“我们的客户不希望必须在许多不同供应商的数千台设备上管理其应用软件。”

他认为,通过少数供应商制造的控制器管理工厂的自动化软件是很困难的。对于管理不同供应商的应用软件,和不同供应商的数百个硬件模块单元或工厂,这需要技术的重大进步。与现在工厂中运行的最新过程自动化系统相比,此类系统在部署和编排(Orchestration)软件方面必须要大大提高。

然而,工业自动化行业和其他几个主要行业,现在正在为高度分散的自动化和功能创建参考架构甚至特定解决方案。这些举措有许多共同点。

例如,全球汽车行业正在开发一种参考架构,该架构将包含安全性、车辆自主性、远程服务、信息娱乐和便利性的车载功能。这包括定义一组称为汽车级Linux的特定Linux软件。在电信这个另一个庞大的行业中,公司正在开发在蜂窝基站和电信中心局交换机中虚拟化处理功能的架构。这两项计划称为NFV(网络功能虚拟化)和CORD(中央办公室重新设计为数据中心)。

汽车、电信和工业自动化等行业的数字化挑战将需要大规模和长期生命周期地管理远程部署的软件。这将需要在工业软件开发、部署和维护以及包括嵌入式设备在内的所有类型硬件方面取得突破(而不是逐步改进)。

好消息是这些突破已经存在。现在,用于软件容器管理和编排的领先开源工具现在可以实时部署和管理分布式应用程序。理想情况下,这些相同的工具将被纳入新兴的开放式过程自动化计划中。

软件开发的融合

从历史上看,软件开发分为三大类软件:企业软件(运行业务),嵌入式软件(运行于内部),以及云软件(运行在第三方云资源上)。虽然他们之间存在一些重叠,但它们各自也有一些独特的开发工具。

市场需要改变技术,进入工业物联网、工业4.0、智能制造等时代。未来的工业嵌入式系统将要求整个软件堆栈可以自动升级——从顶层应用程序到底层操作系统和虚拟机管理程序。

在未来五年左右的时间里,云软件开发技术似乎将主导其他形式的开发,而这三者将在很大程度上融合。此外,这种融合将以开源软件的速度发展,而不是以当今工业自动化行业典型的软件开发速度,后者慢得多。

这种融合的第一阶段将是所谓的云原生软件的开发,标志着传统企业软件和云软件的融合。用于这些任务的部署和编排软件工具将变得司空见惯并且众所周知。当按照缩小形式的云原生软件满足嵌入式系统软件的要求时,这将推动第二阶段的融合——嵌入式系统软件是物联网(IoT)的“面包和黄油”,尤其是工业物联网(工业互联网)。

在过去两年推出的许多工业产品中,工业自动化领域现在可以看到使用Docker和Linux容器部署应用程序的方式。除此之外,一种名为Unikernels的新兴云技术将嵌入式软件开发的小规模原则与云执行平台相结合。虽然Unikernel技术目前主要是研究领域,但这可能会改变。事实上,风险资本已经投入到为企业和工业物联网市场开发单核产品的公司。

此外,云计算是一项价值2500亿美元的业务,拥有大量的研发资金。它正在迅速发展,并由亚马逊、阿里巴巴、微软、谷歌、IBM等大型科技公司主导。这些大公司正在为一个庞大且不断发展的业务展开激烈竞争。期望云计算业务中使用的开源软件技术将迅速而广泛地发展,这是合理的。

用于工业自动化的小规模云

ARC认为,五年内所有软件开发都可能使用云软件开发方法。在软件“食物链”中,如果“软件正在吞噬世界”,那么正在吞噬软件开发世界的软件就是云软件开发和工具。即使在嵌入式软件的封闭和专业化的世界中,也可能会被当前和未来的云软件技术超越。

《容器化Docker:工业自动化的终结》

这并不是说所有应用程序都将在云中运行。相反,云软件使用的软件开发和部署技术将超越并主导其他形式的软件开发。这有两个可能的原因。

第一个原因是,云虽然巨大,但却是一个相对较新且仍在不断发展的行业。也就是说,今天的热门云计算软件技术与云计算本身一样新近。OpenStack、Cloud Foundry、Docker和Kubernetes(K8s)等软件在过去五到十年中都已作为开源软件发布。云计算专家一致认为,当前的云计算模型包含大量冗余,可以大大改进。因此,人们应该期待这一领域的快速和持续的技术发展。

很好,但这就是云。工业自动化市场为何要关注这个问题?

这导致了期望云软件开发占据主导地位的第二个原因。这是因为云软件技术可以缩小到更小的系统,这也是开放过程自动化论坛关注的工业自动化系统类型。让我们来看一个关键的例子:容器软件。

容器和工业自动化

容器有什么意义?人们可以看到为什么这些对云和企业来说很重要,但为什么它们对工业自动化等应用很重要?

让我们退后一步,回顾一下容器的历史。容器技术始于20世纪90年代末,当时Sun Microsystems等公司正在构建非常强大的UNIX服务器。从操作和管理的角度来看,更容易在这些巨大的机器中对应用程序进行分区,而不是将所有进程一起运行。容器背后的原始概念是在应用程序之间创建分区,以便更轻松地管理大型服务器。

容器技术的缺点是实现它需要技术娴熟的UNIX系统管理员。对于当时的大公司(Sun Microsystems,Oracle,SAP和其他公司)而言,这并没有什么问题。但是,对深度UNIX管理专业知识和大型服务器的需求限制了容器在相对较少的公司中的使用。

什么改变了?为什么容器现在如此受欢迎?随着容器技术在Linux中的应用,一家风险投资公司开发了软件工具,大大简化了Linux容器的创建、部署和操作。这个名为Docker的软件五年前发布给开源社区。

因此,在过去的五年中,对容器的兴趣在云计算和企业计算领域呈爆炸式增长。此外,在过去几年中,许多工业自动化产品也随Docker一起交付,使系统集成商和最终用户能够轻松地将自己的应用程序与这些产品集成。

早些时候,我们提到了针对电信的NFV和CORD计划(一种边缘计算开源平台)。在电信行业,全数字化将把所有模拟信号处理转移到网络的边缘。从蜂窝塔到中心局的所有其他服务将通过软件执行并以数字方式完成。结果将是一个高度灵活的基础架构,可以在不更改硬件的情况下添加新服务。而在以前,电信网络运营商如何设想能够在多年的生命周期内管理如此庞大的软件定义基础设施?

最后,这也许是最重要的一点,容器软件可以缩小到非常小的系统。Docker运行时软件已移植到小型ARM核心单板计算机,现在用于支持工业物联网应用和服务。

Docker和Kubernetes

作为一个额外的好处,开源软件世界已经在很大程度上融合在一个容器编排工具上(在此上下文中的编排是指管理容器部署的软件)。这个开源容器编排软件工具Kubernetes起源于谷歌,该公司通过使用容器实现的SaaS产品证明了其可靠性。今天,Kubernetes可能是企业软件领域最热门的开源项目。ARC认为,对于那些拥有工厂运营或工程经验的人来说,与他们自己组织中的IT专家讨论其对未来自动化架构的潜在适用性是值得的。毕竟,Docker和Kubernetes不仅仅是管理和构建容器的技术。

不仅仅包含用于存储或传输应用程序的文件,术语“容器”还指使用内核中内置的功能。这些功能创建了一个“包含”的环境,用于在内核上运行代码。代码认为它是唯一的应用程序。严格来说,容器是执行时体验,而不是分发时体验。

安装到文件中并作为创建容器的基础分发的软件工件称为“容器镜像”,这可能是一个令人困惑的术语。容器镜像是使用Docker或其他容器开发工具创建的软件工件。

当使用容器镜像(而不是软件包管理器)时,软件分发和生产中的部署是用户驱动的和应用程序驱动的而不是供应商驱动的。容器可以极大地减少软件最终用户的集成负担,使他们能够更多地关注他们的应用程序,同时让容器镜像的构建者专注于目标系统依赖性和配置。

当供应商而非用户需要驱动软件分发时(如软件包管理器的情况),最终用户或系统集成商负责组装正确版本并正确设置所有运行时配置参数。通过包管理器提供的软件是要集成的模块化软件单元。另一方面,容器镜像是从最终用户角度来看的单个但完全集成的应用程序。

如前所述,对于作为嵌入式系统的联网设备,“终点就在附近。”展望未来,高价值设备和服务将得到远程监控、管理、更新和服务,其软件堆栈需要提供服务。这需要极高的自动化水平。因此,在未来的嵌入式系统中需要Docker和容器,包括工业自动化中的嵌入式系统。

工业自动化的容器和编排

与当今工业自动化中使用的嵌入式系统技术相比,容器具有几个重要的优点,可以使工业自动化系统对于最终用户和供应商而言更简单,更有价值。这些包括:

  • 容器专注于应用程序而不是机器。这有效地将应用程序开发与运行应用程序的计算、存储和网络系统的管理分离。通过使应用程序开发人员和系统支持专家能够有效地解耦并且干扰更少,这可以在系统的整个生命周期内提供价值。
  • 创建和管理容器镜像的存储库代表了由硬件、处理器体系结构、操作系统和支持软件依赖性的变化引入的复杂性的解决方案。
  • 容器镜像文件的“分层”属性使供应商和最终用户能够有效地创建和迭代地增强存储库。这认识到容器镜像的一些(“低层”)方面将在许多应用中长时间使用,而其他方面(“高层”)或特定应用可能经常发展或改变。
  • 开发人员可以创建容器开发和部署环境,以便在将应用程序部署到生产环境之前实施特定的工作和测试流程。

容器编排(Container orchestration)同样重要,原因有很多。这些包括:

  • Orchestration提供了大大简化系统扩展和管理的功能。
  • Orchestration提供声明性分布式系统配置。此配置描述了分布式系统的所需状态。协调器用于实现和维护这种期望的状态。协调器的操作使分布式系统能够实现高应用程序可用性和诸如“自我修复”的属性,因为协调器在分布式系统的一部分受到干扰或中断时用于恢复期望的系统状态。
  • 声明式系统配置比命令式配置工具更不容易出错,必须执行以纠正操作,需要对可执行文件进行故障排除。
  • 声明式系统配置与版本控制系统相结合,使得最近系统的回滚变得微不足道。软件包管理器、嵌入式系统技术和现有的DCS产品根本无法做到这一点。
  • 围绕容器构建协调器会将主要操作重点转移到应用程序性能上,这是最终用户关心的。因为每个容器都是一个应用程序,所以不需要从许多不同的应用程序中过滤掉信号或日志,以便将诊断集中在特定的应用程序上。
  • 专注于应用而非机器可以在许多其他领域带来连锁效应。例如,它使得正确构建、部署和维护应用程序变得更加容易,并将应用程序运行时问题与机器问题分开。

容器和开放过程自动化

为什么所有这些都与开放过程自动化论坛有关?因为在工业自动化领域,尤其是过程自动化领域,应用程序经常每天更换。大型过程自动化安装几乎每天都需要对其控制应用程序配置进行微小的更改。控制配置是过程自动化操作技术(OT)领域的日常工作。添加了新的测量,测试了新的控制方案,调整了参数或警报限制,等等。

这种不断变化的情况,是为什么过程工业最终用户在其DCS中运行的控制应用(配置)中投入了如此多的知识产权。这些应用程序代表了工程和调整控制系统以服务于实际工厂及其运营目标的人工年数。不幸的是,今天的知识产权被控制语言和惯用语捕获,这些语言和机构不具备机器可读性并且总是高度专有。标准化的容器和编排工具提供了从这个死胡同的退出通道。

应用程序部署的容器

然而,今天的DCS确实使最终用户能够轻松地进行频繁的控制应用程序更改。至少,成功的开放式过程自动化系统需要在次要工程变更方面支持相同的性能水平(可能还要高得多)。将应用程序部署到目标系统(特别是OPAF分布式控制节点所设想的小型目标系统)将是一项非常重要的任务,并且它将是每天执行的任务,用于开放式自动化系统的整个安装生命周期。

总而言之,这种成熟的,基于容器的软件部署技术高度标准化,广泛使用,可在开源中使用,可在各种平台上运行,并且已经在从最大(谷歌)到最小的安装中进行了现场验证。

选择不在未来的开放式自动化架构中采用容器技术,意味着符合OPAF的系统必须与将使用这些功能强大的软件工具的未来产品竞争。自动化供应商应该意识到这些能力,他们必须了解未来的竞争格局,以及当前或敏捷的新竞争者可能带给市场的创新。

 

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注