导 读
无论工业APP团队的规模或实力的大小,都可以使用工业互联平台上提供的标准化的微服务组件,以即插即用的方式组装成适合用户特定工业环境需求的工业APP,从而促进工业knowhow的知识沉淀,以商业化的方式实现跨行业、跨企业的专业化传播与复用,从而实现全社会工业能力的整体提升。
在数字经济环境下,云计算、大数据、移动社交、物联网、人工智能等先进技术的广泛运用,个人、企业乃至整个生产体系中的制造资源都实现了广泛、实时的联接,不仅改变了人们的生活方式,而且正在改变商业本质。数字化转型是所有企业的必然选择,企业开展数字化转型的目的就是要更好地为用户创造价值,以实现最佳的客户体验为目标,颠覆性的改变企业产品实现和交付的生产活动过程。通过对产品相关活动中的用户数据洞察,系统化进行知识沉淀和传承,改善产品的数字化设计能力及服务水平,优化产品的交付机制,从而满足客户的个性化体验。而这一切的业务活动中,在产品的需求产生直至产品实现交付的完整商业实现过程,数据实现有效、连续和闭环的传递,产品设计、制造乃至整个供应链的资源实现密切的协同,工业互联网平台是面向制造业数字化、网络化智能化需求,构建基于海量数据的采集、汇聚分析和服务体系支撑制造资源泛在连接、弹性供给、高效配置的开放式工业互联网平台。
GE首席技术官Dave Bartlett认为工业互联网平台本质是一个工业操作系统其功能类似微软的Windows、谷歌的安卓系统或者苹果的iOS系统。就像以上所谈到的电脑或手机操作系统一样,工业操作系统层实现了工业现场各种复杂设备或控制逻辑的抽象,标准化了不同厂商产品的接口差异,实现了不同的协议转换,以底层API的形式给架构其中的PaaS平台层进行调用,以微服务的形式提供预制化的构件,从而在应用层快速地利用构件进行服务编排,实现复杂的用户应用需求。
微服务(Microservices)架构
过去的企业软件多是按管理域划分的大软件,如ERP、PLM、SCM等等,这些软件往往模块众多,功能复杂,强调以自身管理视角的产品全生命周期协同工作。但在数字化转型的背景驱动下,面对批量较小的产品订单,更加个性化、人性化的产品特性组合,工作业务流程从长流程变成短流程,鼠标点击变成手指触屏,线性协作变成点状聚合,大软件系统不得不适应而被拆解为更小功能服务的小软件服务。互联网需求的长尾效应推动软件碎片化,让工作无时无处都可以被处理,而越来越多的碎片化的需求又进一步反身强化更多智能设备的推广使用。应用交付的速度永远跟不上业务需求的变化,业务部署与运维复杂度提高导致应用的可用性下降,多元化业务和复杂体系架构导致IT治理的困难,技术人员不断的重复 “开发—测试—上线”的轮回。
ThoughtWorks首席科学家Martin Fowler在2014年提出了微服务的概念,把一个大型的应用软件按照功能和服务分类拆分为数十个微服务,每个服务运用于自己的独立进程,通常是采用基于HTTP协议的RESTful API的轻量级通信机制,松耦合的服务能够被独立更新的部署,每一个微服务可满足用户的一个需求,用来提升企业的敏捷运营与快速的业务拓展。这种架构将原本大而复杂的单体架构,重组为小而精美的独立服务,让工作变得更加高效、便捷、直击重点。当企业对某些微服务有特殊需要时,只需将针对这部分微服务的IT资源进行升级,对这些微服务进行更新。在系统出现故障时,微服务也可实现对故障部分单独隔离,以免影响到整个系统的使用。开发人员也可更便捷地基于“云”进行应用系统开发。
容器(Container)技术
传统软件架构特性是单体应用,开发周期至少以月为单位进行发布和升级,代码一般使用一种语言开发,不同的组件紧耦合,经常依赖于公共的库,部署周期以月为单位,部署依赖人工操作,组件版本复杂,操作风险高,时间管理成本均居高不下。以JAVA应用为代表的三层架构的部署模式,即便是在虚拟机环境发布环境,也是需要建立相应的操作系统和应用服务器,以完全虚拟应用的运行环境。
容器的代表性产品Docker的出现是一个标志性的节点,2013年首次提出了Build→Ship→Run的概念,使用镜像方式能够将应用程序和它依赖的操作系统、类库以及运行时环境整体打包,统一交付,消除了对传统应用对操作系统、应用服务器不同厂商及版本,甚至对于环境变量、基础函数库API调用的深度依赖,因此容器的本质是一种操作系统级别的虚拟化,与底层所使用的平台无关,容器可以在与主流的Windows、Linux等主流的操作系统上运行,意味着应用架构一旦转换为容器化并且迁移部署之后,就可以在任何云平台之间无缝迁移。使用容器能够利用镜像快速部署运行服务,能够实现业务的快速交付,缩短业务的上线周期,极大地方便运维人员的上线部署工作。
容器较传统虚拟化有更低资源使用粒度,在一台物理机上可运行上百个容器服务,从而提高服务器硬件资源的利用率。当遇到高并发、高流量的大活动,容器做到根据业务的负载进行弹性扩容,以提供更好的服务。当访问量降低后,容器平台能够自动缩容,及时释放空闲资源。
开发运维平台(DevOps)
DevOps概念早先始于2009年的欧洲,因传统开发和运维模式无法实现用户应用快速变化且生命周期较短的现实。DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。早期时,大家虽然意识到了这个问题的,但是苦于当时没有完善丰富的技术工具,是一种“理想很丰满,现实很骨感”的情况。早期的PaaS平台方案初步解决了很多客户对于应用弹性的需求,但是在容器技术之前,构建一套PaaS平台面临着组件多、量级大、改造成本高等挑战,而且对于运行在不同 PaaS 平台上的应用,很难避免应用对平台的深度依赖。譬如,不同的PaaS平台对弹性、高可用、性能、监控、日志、版本更新等的实现方式不同,则对其上应用的架构要求也不同;另外,在编程语言和平台层的API调用方面,也会导致应用对平台厂商的深度绑定。以Docker为代表的轻量级虚拟化容器技术的发展使得DevOps成为可能,工业互联网的应用直接构建在以Cloud Foundry、Kubernetes等为代表的PaaS平台之上。
工业App的构建是核心
工业 APP 的构建是在互联网制造背景制造协作模式转换的核心,其关注对工业技术知识的提炼与抽象,将数据模型、提炼与抽象的知识结果通过形式化封装与固化形成 APP。封装了工业知识的工业 APP, 对人和机器快速高效赋能,突破了知识应用对人脑和人体所在时空的限制,最终直接驱动工业设备及工业业务。
基于容器技术和微服务架构的PaaS平台,成功地实现了DevOps的开发运维一体化的愿景,借助于工业互联网平台敏捷架构,服务组件供应商、工业制造商、终端用户甚至个体团队的形成了完整的工业App开发、应用生态,推动以互联网为协作载体的新一轮专业分工,将原来在企业各工程人员、专家头脑中隐性、分散的工业技术知识、经验技巧进行模型化、软件化和商品化,形成标准化的微服务组件。
无论工业APP团队的规模或实力的大小,都可以使用工业互联平台上提供的标准化的微服务组件,以即插即用的方式组装成适合用户特定工业环境需求的工业APP,从而促进工业knowhow的知识沉淀,以商业化的方式实现跨行业、跨企业的专业化传播与复用,从而实现全社会工业能力的整体提升。
作者简介
罗未一:电子科技大学在读硕士研究生,研究方向为计算机视觉。