自2012年GE提出工业互联网这一概念以来,经过七年的发展,工业互联网技术架构日趋完善。不同于传统互联网应用的标准化技术构建,工业互联网应用在场景构建和功能开发方面有着较大差异,不同行业对工业互联网平台的功能需求都不会相同,这也使得行业厂商难以通过构建标准化的技术和应用场景来推广平台及生态发展。
除此之外,在工业PaaS层面,近年来由于工业互联网平台普遍缺乏APP开发工具、框架和技术手段,尽管工业互联网有着很高的关注度,但较少的工业APP数量让企业对工业互联网的价值期待有所下降。
最近,笔者对国内数十家主流工业互联网平台厂商负责人做了访谈和调查,并就平台功能进行细致的分析,从中了解到这种工业应用匮乏的局面正在改变。自2018年来,由于微服务、容器和DevOps等新兴开发技术的兴起,工业互联网平台的开发能力正在重构,过于一年大量针对具体工业应用场景的工业APP开始涌现。比如在海尔COSMOPlat、航天云网INDICS、根云、和利时HolliCube等官网平台上,已经有大量工业APP可供用户购买和下载。
调查结果还表明,几乎所有参与调查的厂商都将微服务、容器和DevOps作为工业PaaS层的主流应用开发技术,这预示着工业互联网平台的开发标准正在逐步形成,困扰工业互联网平台多年的工业应用生态问题正在实现全面突破。
与传统ERP、CRM等大型应用软件的开发模式不同,微服务就是把一个大型的应用软件按照功能和服务分类拆分为数十个微服务,每个服务运用于自己的独立进程,通常是采用基于HTTP协议的RESTful API的轻量级通信机制,松耦合的服务能够被独立更新的部署,每一个微服务可满足用户的一个需求,用来提升企业的敏捷运营与快速的业务拓展。
微服务的出现成功的解决了工业互联网平台对于碎片化的工业应用场景开发需求,微服务是具备单一功能的应用模块,比如能实现对某一类工业设备的连接,或是针对某一类设备进行关键数据采集,这些都可以开发成微服务。但为了实现设备的互联、数据采集和分析整个流程化功能,就需要将这些单一功能的微服务进行“搭积木式”的组装,形成一个能应用于某一具体场景,具备完整服务功能的工业APP,而这一过程就需要利用容器技术。
容器技术就是把多个微服务组合到一起并打包,使用镜像方式将应用程序和它依赖的操作系统、类库以及运行时环境整体打包,统一交付,消除了对传统应用对操作系统、应用服务器不同厂商及版本,甚至对于环境变量、基础函数库API调用的深度依赖。
容器的本质是一种操作系统级别的虚拟化,与底层所使用的平台无关,容器可以在与主流的Windows、Linux等主流的操作系统上运行,意味着应用架构一旦转换为容器化并且迁移部署之后,就可以在任何云平台之间无缝迁移。使用容器能够利用镜像快速部署运行服务,能够实现业务的快速交付,缩短业务的上线周期,极大地方便运维人员的上线部署工作。
为了管理数量众多和功能单一的微服务,企业还缺一样技术,这就是DevOps,一组过程、方法与系统的统称。DevOps经常被描述为“开发团队与运营团队之间更具协作性、更高效的关系”。由于团队间协作关系的改善,整个组织的效率因此得到提升,伴随频繁变化而来的生产环境的风险也能得到降低。
传统软件开发一般有需求、开发、测试、部署四大流程。由于各部门之间处于独立状态,整个软件开发过程都是按照步骤一步一步的走,开发完了做测试,测试完了进行部署。前一步做完,下一步才能启动。但这种开发模式十分影响项目的推进效率。因此,以往一个大型软件的开发和实施部署,短则需要几个月,长则需要一年,成本会非常高,而且开发过程的不确定性以及反复的评估更改很容易导致项目的失败。
那么微服务和容器又是怎样开发和部署的?前面说过,微服务是将大型软件分为数量众多的小的功能进行开发,而容器则用于对多个微服务打包和部署。这样能极大的降低软件开发难度,但同时也加大了对软件的管理难度。
为了保证工业应用的高效、稳定、快速交付,需要对传统的软件开发流程做出改变。DevOps实现的就是持续开发、持续测试、持续集成和持续部署。当一个微服务被开发出来,就可以马上进入测试、集成和部署流程,相当于“边开发、边测试、边集成和边部署”,以一种流水线的形式发布应用服务。这种开发方法能即保证了软件的开发效率和质量,也能满足工业APP频繁功能迭代的需求。
笔者认为,随着微服务、容器和DevOps技术的发展,横亘在工业互联网平台中间的“梗”正在消失,工业互联网平台不再是一个广受诟病“连接和数据分析型平台”,而是一个能真正能为企业提供价值的工业应用服务平台。另一方面,在国家大力推动工业上云的背景下,工业互联网平台正在通过与制造企业的合作,融合双方对技术和需求理解打造工业机理模型,积极推动工业APP开发与应用实践。可以预见,在接下来的几年工业互联网平台的应用与生态将进入快速发展期。