制造企业使用云平台可以做什么
作者简介
陈喆,现就职于中科院某研究所担任副研究员,专注于工业云平台、MES系统的设计与研发。
云平台如今已经不是陌生的概念,在互联网企业中,基于云平台已经发展出一套全新的技术研发体系,颠覆了原有的开发框架、运维框架甚至是企业组织架构和项目管理方式。而互联网企业也利用其先天的技术优势和开放、灵活的互联网思维,以互联网为基础,快速而高效的影响甚至颠覆了诸多传统行业。
另一方面,制造企业也一直在思考如何利用先进的技术和理论改造和升级其生产和运营模式。比如现在制造企业普遍部署使用的软件系统主要分为两类,一类是在车间层面、工厂层面、集团层面使用的的综合业务类管理系统,比如MES、ERP等;另一类是满足特定需要的功能性系统,比如专注于数据采集和控制的SCADA系统,专注于仓储物流的WMS系统,专注于产品设计的CAD系统等。但系统使用得多了逐渐会衍生出一些问题,比如说信息孤岛,不同厂商系统间难以交互协作。在制造企业,这是一个重要但又难以很好解决的难题。比如MES系统为了分析某些指标需要SCADA系统和WMS系统提供某些数据,而由于现场技术条件限制所需数据无法提供或者数据质量不达标,从而导致MES系统的分析功能无法产生理想结果,这种情况在实际项目中经常出现。于是软件厂商为了满足企业的需求,一般会从两个方面进行改进,一方面是开发数据接口增强与外围系统的协同能力,另一方面是干脆逐步扩大自己的功能范围,既满足客户整体性的业务需求又抢占了更大的市场资源。软件厂商扩大功能范围的思路有两个,一种是把软件做大,然后通过配置裁剪功能,早期很多软件都是这种做法,但问题是研发和维护成本大幅增加。另外一种思路就是作平台,平台提供基础资源、服务和标准,然后通过合作伙伴按照平台标准提供特定功能性应用来配套形成企业整体的解决方案,这样一方面解决了研发和运维成本的问题,另一方面通过标准和接口也提高了不同应用之间的整合能力,而云计算也是恰逢其时的为这种思路提供了实现的技术手段,所以就涌现出了各种各样的工业云平台。而作云平台的思路也有两种。一种是系统集成商或者第三方来做的公有云平台,在平台之上部署有各类现成的应用和服务,企业来用就好。另一种思路是企业来做私有云平台,软件厂商在企业的云平台上按照企业的标准和要求开发应用,这样从满足企业需求的角度来讲无疑是最佳的。并且两种模式又可以彼此融合,互相补充。
如此,便发生了一件有意思的事情。就是互联网企业和传统制造企业,两类原本不相干的企业慢慢的逐渐走向相同的技术路线,甚至互相影响,互相融合。但是在这个过程中,双方也都面临这巨大的困难。对于互联网企业来讲,制造企业的行业领域知识、生产管理体系还有底层纷繁复杂的工控设备、自动化仪表仪器是难以逾越的坎;而对于制造企业来讲,互联网企业快速更新的软件研发技术、研发管理模式还有敏捷快速的互联网思维则也是难以克服的障碍。
最典型的就是经常被作传统行业软件的同行,比如MES的工程师或者PLC的工程师问到,客户让我们上云,但什么是云呀?云平台有什么用呀?怎么上云呀?所以本文就来谈一谈我对这方面的理解:制造企业使用云平台可以做什么?
1、云化机房,提高运维效率
构建私有IaaS云可以让机房运维更加简单。
所谓云化你的机房,就是在你的机房里建一个基础设施云环境,称之为私有IaaS云,主要功能就是在你原有的服务器集群上搭建一个可以按需使用的虚拟机集群。怎么搭建私有云呢,有两个技术方案可以选择,OpenStack和vSphere,OpenStack和vSphere有什么区别呢,你可以理解为Linux和Windows的区别或者是Android和IOS的区别。OpenStack开源,所以相对廉价但稳定性差。生产环境下就不要打算使用纯开源的OpenStack了,可以选择国内外专门做OpenStack的厂商,它们会对每个版本的OpenStack做大量的稳定性和适配性测试,并封装一些小工具以提高使用的便利性,同时还有技术团队帮你做实施和维保,可以很大程度的解决使用和稳定性方面的问题。vSphere相比就好用和稳定多了,缺点主要就一个字,贵。国外原厂的价格我感觉一般企业是不太容易接受,如果考虑使用vShphere,也可以考虑使用国内服务器厂商提供的oem版,价格低廉的多。这是在你现有机房做私有云的可选方案,如果你是想从零开始IaaS云,还有一个选项,就是超融合。
云化你的机房有什么好处呢?
(1)提高服务器的使用效率。因为云可以在你原有的服务器资源的基础上做出更多的虚拟机(当然这是有上限的),通俗的讲就是一台服务器可以当多台服务器使用。这样就可以避免你机房里运行着好多服务器,但每一台服务器只有个10%左右的资源使用率的情况。
(2)降低基础设施成本。一家企业如果上一套大一点的系统,很少说一台服务器包打天下的。可能需要配备应用服务器、报表服务器、数据库服务器、开发服务器等等好几个服务器,有些高富帅企业还需要搞个存储外加小机,成本是相当高滴。而将机房云化以后,你可能增加一个计算节点就够了。做同样的事情,需要的服务器少了,购机成本、运维成本还有电费自然就下降了。
(3)降低运维门槛,提高运维效率。企业机房的运维不像个人管理自家的电脑,要处理的事情复杂的多。包括路由器、交换机、存储阵列的配置还有不同类型服务器的维护,并且这些配置大多需要命令行操作,非专业人士想上手来做这件事还是蛮困难的。而且生产制造企业一般对稳定性、响应速度的要求都很高,在突发事件发生时快速定位错误并解决错误是机房运维人员最大的挑战,每逢节假日经常看到朋友圈搞运维的朋友恶搞自己,给服务器贴符上香,求服务器保佑过节不要宕机。虽是恶搞,但也真是担心系统搞事情假日泡汤。不过使用云平台就好多了,在云平台上配置网络、存储还有创建服务器通过图形化界面就可以操作,上手容易。要是担心关键系统突然挂掉,可以做个镜像,再做一下数据备份,在错误不好定位解决的时候直接把原有环境删掉重建,简单粗暴,但也立竿见影。
所以,现在不少企业也都开始部署和使用私有的IaaS云。但这么做有短板没?当然有了。比如说:
(1)云计算的基础是虚拟化技术,虚拟化必然会导致服务器性能的损耗。对于一般的应用系统,这种性能损耗是可以容忍的,所以放到云平台里是没有问题的。但对于那些对CPU,磁盘IO要求高的应用,在生产环境下是否放在云平台中就需要慎重考量了。比如说数据库、大数据分析平台,这些从理论上讲都是可以部署在云平台上的,在实验室里使用也没什么问题,但是在生产环境里,还是推荐直接使用物理服务器。
(2)直连现场设备困难。在生产现场,如果是物理服务器想直连一台物理设备是很容易的,通过网线就可以连接。如果接口比较特殊,给服务器插一个扩展板卡也能解决。而使用云平台,一般都是通过网络IP地址访问目标设备,所以如果如果目标设备无法通过网络访问就比较麻烦了。
2、像互联网企业一样高效开发
构建私有PaaS云可以让企业软件研发和维护更加快捷高效。
云化你的机房,是构建私有IaaS云,但这只是第一步,帮助企业解决机房运维上的诸多烦恼。但现如今,绝大多数的云厂商都已经不再单纯的提供IaaS云服务了,配套推出的还有PaaS云服务。PaaS云出现的比IaaS云晚,即使现在几家大型的公有云平台厂商,推出PaaS云服务的时间也不长。但好多互联网企业在自己的研发环境中实际都已经应用了PaaS云。并且,业界比较著名的工业互联网平台也都是基于PaaS云搭建的,像Predix,Mindsphere,SAP Cloud无一例外。什么是PaaS云呢,平台即服务。什么平台呢?开发运行平台。
IaaS云改变了服务器的使用方式,新上一套系统,你可以不用新部署一台新服务器,而是新建一个虚拟机就够了。但你还是必须要创建好虚拟机、配置好运行环境才能部署系统;但使用PaaS云,虚拟机也不用创建了,环境也不用配置了,你所需要做的就是把应用部署到云平台上去,就可以用了。你想使用数据库,你也不必搞个数据库服务器、安装操作系统、安装数据库然后再完成复杂的配置,你所要做的只是在云平台上选择创建一个数据库服务,然后绑定到应用上就可以使用了,这就是PaaS云带来的变化。
这样的好处是什么?首先,PaaS云替你完成了除了应用本身之外几乎所有的配置管理工作,你所关心的只是管理应用,而对应用的管理也变成了只是一条指令或者一个按钮就可以完成的事情。而像数据库、消息队列等这些基础工具,PaaS云平台也都作为服务提供给你,开箱即用。另外,PaaS云还将系统冗余变成了常规功能。在传统架构中,冗余是很昂贵的,这意味着你需要配备冗余服务器或者设计一套分布式的软件架构。但在PaaS云上,只需一条指令就可以为一个应用创建多个实例,几乎是零成本。最后,PaaS还可以自动实现资源扩展,应用故障自动重启等功能,相当于一个二十四小时不间断服务的运维工程师。
更进一步,由于PaaS云将底层的运行环境标准化为容器,所以进一步提升了软件开发的自动化程度。可以提升到什么程度,开发人员提交代码就OK了。后面的集成测试、打包、部署、启动、运维PaaS云全部帮你搞定,这就是所谓的DevOps。由于PaaS云的出现,缩短了代码开发到应用部署使用的时间距离,降低了软件开发运维的成本。这就意味着更少的人可以做更多的事情,更短的时间可以做出更加快速的响应。并且,PaaS云平台将分布式架构的开发成本降得极低,所以你可以将大而全的系统分拆成一个个小的服务,即所谓微服务架构。这是一个很大的变化,因为一个单体的大型系统,面临两个问题,一是前期投入成本和风险都很高。一个大型的系统动辄几百万、上千万,但在系统应用之前你是不知道系统好用不好用的,你是要承担着几百万打水飘的风险的。二就是大型系统越到后期修改和维护的成本就越高,牵一发而动全身,因此企业上系统之后后期的维保、升级也都是一笔不小的费用。但微服务的架构就降低了这些问题的影响。因为它是可以迭代生长的,一个几百万的项目,你不必一下子全部投入进去。因为各个模块是松耦合的,如果前期架构规划设计的好,你可以通过版本迭代一点一点的开发实施。开发一点,使用一点,如果不合适,马上调整。这样对于项目实施的甲乙双方都可以节省不小的成本。另外,即使后期业务需求发生了变化,变更修改也可以控制在较小的范围内,不会影响关联模块的稳定性。总之,在PaaS云上开发,你可以做到更简单、更快速、更轻量。
搭建私有PaaS云平台,同样有两种主流的技术方案可以选择,Cloud Foundry和Kubernetes。它们之间的区别和vSphere与OpenStack之间的区别基本类似。目前著名的公有工业云平台,比如Predix,Mindsphere,SAP Cloud大部分都使用Cloud Foundry;而IaaS云厂商集成的PaaS云平台,比如阿里云、华为云则主推Kubernetes,国内的主要私有云厂商也主推Kubernetes,具体选择那种还要看具体实际情况定。
但同样的问题,有没有短板呀?当然也有。
比如,大部分的传统应用是无法运行在PaaS云上的。比如说你想在PaaS云上安装一个Word或者QQ,这是绝对做不到的。而制造企业里的遗留系统,移植到PaaS云上难度就更大了。因为企业的业务系统,往往都很“重”,业务关系复杂,使用的开发技术也不一定能满足PaaS云的技术要求。所以移植遗留系统要面临着技术重构和业务重构的双重问题,代价还是很大的。
另外,PaaS云应用的开发与传统软件的开发差别很大。特别是制造领域的软件,越接近底层越普遍采用微软的c/s架构的技术体系,比如MFC、WPF、WCF,这类应用都是很难直接移植到PaaS云上的,因此如果想上云,需要寻找替代技术方案重写。
并且,PaaS云应用之间主要依赖于http协议传输,制造企业现场复杂的各类通信协议也是PaaS云应用无法直接接入的。但现在好多工业互联网平台都提供了解决方案,就是工业网关。比如西门子Mindsphere的基于OPC UA的工业网关还有GE Predix的Predix Machine都是承担这样的角色。
3、按需租用外部资源
之前提的都是私有云,而大家了解和讨论更多的应该是公有云平台。像亚马逊、阿里云、腾讯云、百度云、华为云这些基础云平台厂商,提供IaaS+PaaS外加许多带有企业特色的附加增值功能;还有专门的工业互联网云平台,像Predix,Mindsphere,SAP Cloud等,都属于公有PaaS云平台;还有像Salesforce,Face++等提供专门的SaaS云服务。
这就是云计算可以提供的一项重要价值,即使你没有机房,没有服务器,你仍然可以随时随地按需租用到你需要的各种资源。
目前在公有云平台上,你可以租用到这样几类服务:
(1)IaaS云服务:你可以在公有云上得到你能想到的绝大多数的基础设施环境,独立的虚拟机服务器,稍微复杂一些的虚拟网络环境,一个数据库服务集群,一个大数据分析平台、一个PaaS云平台......,按需购买,随购随用,而且不用考虑供电、运维、设备折旧的问题,非常方便。另外还有一类企业比较常用的功能就是云市场,云市场中会提供事先已经配置好的软件系统镜像,比如一个门户网站、一个CRM系统或者一个ERP系统,在你购买之后,IaaS服务商为你提供的实际就是一个虚拟机,不同之处是这个虚拟机是已经装好你需要的软件了,这样就节省了你购买、安装和配置软件的麻烦。
(2)PaaS云服务:现在绝大多数的IaaS云厂商基本都已经提供在其上部署PaaS云的功能,同时也会提供公有的PaaS云环境。另外还有一些专门的行业PaaS云平台,比如我们所熟知的工业云平台,像Predix,Mindsphere,他们的核心架构基本就是PaaS云+工业网关,工业网关解决数据采集的问题,PaaS云解决数据增值的问题。这些平台提供了之前所描述开发和部署应用的环境。并且提供许多基础功能服务,比如访问控制服务、权限控制服务、关系数据库服务、历史数据库服务等。并且各平台还会提供许多自己的特色服务,比如行业数据分析服务等。使用这一类平台,可以极大的节省软件研发的成本,可以帮助你将精力从安全、性能、基础服务等诸多非功能需求中解放出来,更专注于业务功能的研发。而国内的工业云则在此基础上又作了不少变形,可能会增加个工业产品的网上购物商城、工业研发的众包平台或者其它一些功能,但这些和云计算技术的关系就不太大了。总之,使用工业PaaS云,你可以比较方便的实现接入数据、分析数据和展示数据,这是工业PaaS云的核心功能。
(3)SaaS云服务:还有一种就是直接以公有云服务的形式租售自己的软件功能的厂商。小到一个具体的功能,比如人脸识别、语音识别,大到一个完整的系统,比如CRM系统、ERP系统。对于不太强调数据隐私并且业务定制化要求不是很高的企业来讲,SaaS系统是个不错的选择。支付少量费用即可使用,开箱即用,按需付费,非常方便。但缺点也比较明显,就是实现的功能范围比较受限制,如果业务功能定制化需求明显,就难以满足要求了。
使用公有云服务的好处显而易见,省心。云平台厂商为你提供了各种开箱即用的功能服务,需要什么,买来就用,用完就停掉。所以,有了云平台,建系统你可以不用建设数据中心,做数据分析也不是必须做个大数据平台,而且不用考虑设备运维,不用考虑设备折旧,不用考虑环境配置,不用考虑突然宕机,所有这些问题都已经转移到公有云提供商的身上,对于使用者来讲当然就省心不少。至于说省不省钱,我觉得见仁见智吧。如果看初期投入成本,使用公有云平台必然是省钱的,但长期使用的话费用也是不少,这个就看实际情况了。但降低了初期投入风险是一定的,因为如果要是自建机房和系统环境,成本是在项目建设初期就投入进去的,如果不成功也就全赔进去了;使用云平台,是按照使用资源和使用时间慢慢累加的,初期投入成本少,风险自然也少。
而至于短板,对于制造企业同样显而易见。首先就是网络安全的问题,因为生产是制造企业的命脉,生产运行环境的稳定和安全是企业的底线,所以一般生产制造企业的生产网络都是不与互联网联通的,因为这样可以大幅降低网络黑客破坏和数据安全的风险。但使用云平台就意味着生产环境要接入互联网,虽然现在有专线和VPN技术可以解决企业私有网络与公有互联网络的隔离问题,但实际效果是否能够为企业所接受还有待检验。其次就是数据隐私的问题,对于企业来讲生产数据中隐藏着企业的诸多秘密,企业的工艺信息、产能信息等都蕴含其中,将这些数据发送到互联网,对于企业来讲也是一个需要反复权衡的问题。另外还有就是性能问题,一般在软件系统架构中,网络时延是拉低系统整体性能的重要原因,如果是在局域网环境里,这个问题是可控的,但在互联网环境里,问题则要复杂的多。
总结一句话,没有最好的技术,只有最适合的技术。云平台,作为一项或者一套技术,必然有其卓越的使用价值,但作为企业或者软件厂商能不能用好则要看你对自身的认知和对这项技术的认知,合理的规划设计可能更为重要。