写点什么

基于边缘容器技术的工业互联网平台建设

  • 2021 年 6 月 03 日
  • 本文字数:7038 字

    阅读完需:约 23 分钟

基于边缘容器技术的工业互联网平台建设

一、需求分析


2018 年腾讯做了一次变革,正式入场工业互联网领域。其实早在 2015 年的时候,国家就已经提出了“智能制造 2025”的口号,同一年腾讯也提出了互联网+的口号。从提出口号到正式入场腾讯酝酿了好几年,在 2018 年我们做了充分的市场调研,最终明确了公司的战略方向。


我们对工业互联网总结了三个重要的需求点或战略目标,第一点就是安全。在调研的时候,制造行业的每个需求方都提到的问题就是安全问题,主要指的是数据安全,这是大家最核心的诉求。


第二点是赋能,云能够提供的是更加庞大无限制的算力,那么如何把这种算力和互联网更加先进的技术服务到工业互联网的整个产业链中呢,赋能研发、生产、供应链、销售和服务等各个环节。


第三个需求是生态。腾讯本身没有做过制造相关的任何工作,之前也没有工厂,也不会做任何生产,所以我们首先需要明晰:在整个工业互联网体系中我们的定位到底是什么?哪些东西该做,哪些东西不该做,最后我们定位为:构建全面的工业互联网平台生态,实现合作共赢,就像我们经常强调的那样:连接、生态、赋能。



基于以上这些需求点,在技术侧我们又要考虑哪些因素?首先在安全上,如果客户非常注重安全,那么一个私有化的产品形态就必不可少。因为客户要安全,数据要落在本地,觉得放在云上不放心。


其次如果数据完全落本地也不能保证 100%的安全,因为万一机房挂了,或者发生天灾人祸等极端情况,比如发生火灾数据被烧了就会造成极大的损失。所以我们需要提供帮客户做数据脱敏、对数据做高可用备份、异地多活的能力。


关于赋能方面,主要是利用腾讯云上的各种能力,探索如何把这些能力下沉到离客户更近的边缘节点,或者到客户机房里面,甚至我们需要在边缘这块提供一个比较好的混合云架构,能够支持私有化,又支持云的能力拓展。


第三个是生态方面,目前我们的生态伙伴有两个重要的组成部分,其中一个就是区域运营商。我们知道工业和制造业是非常庞大的领域,不仅体系庞大,而且非常细化。比如有做石油的,有做化工的,有做服装的,有做家居的等等,每个行业领域的特点都不一样,所以我们非常需要与那些愿意跟我们一起成长的区域合作伙伴一起组建生态,因为它们对当地或者细分行业的情况了解得更深。


另一个就是互联网伙伴,在腾讯进入之前其实就有很多互联网产品服务于制造业,甚至一些都已经服务了好几年时间,那么如何跟这些互联网伙伴一起合作做到 1 加 1 大于 2 的成果,也是需要我们重点考虑的。



结合以上思考,我们最终确定了产品架构:总共分为三层结构:第一层结构是腾讯云提供最完整的云能力;第二层是区域云,我们也叫它工业云,会针对某个特定区域提供有限的云计算能力,比如某个城市钢铁工业发达,另一个城市服装业繁荣,那么我们就会专门在这些区域布置一个区域特色的工业云;第三层是企业机房,有些比较敏感的数据就会放到企业机房里来,所以它也是一个混合云架构。


另外还需要一个开放平台,为了接入更多的生态伙伴,开放平台是必要的。此外在这种复杂的架构下,如何降低运维成本也是技术侧在设计的时候要重点考虑的问题。


二、架构与模块技术


1. 整体架构


接下来介绍一下我们当前的架构,如下图所示:



从顶层上看,腾讯云主要提供最全的云计算能力,并且上面还提供了最全面的 AI 和大数据计算能力。


第二个是工业互联网最重要的部分:工业云/区域云,在这里会提供有限的计算能力,比如有限的 AI 推理能力、IoT 后台计算能力、告警能力等,同时会提供一些灵活的运营策略给到不同区域、不同产品特色的运营商。


同时还需要有比较完整的 IaaS、PaaS 层能支持到区域特色私有化的部署,还要做到承上启下的功能,上承腾讯云,下接更为边缘的企业节点。


最后一层是边缘层或者是设备层,设备层可以做嵌入式的操作系统,边缘层是做就近计算和 IoT 设备网关,包括做一些协议转换等,这里往往都会采用一体机或客户自建机房的方式来做。



2. 工业云架构设计


工业云是整个体系里面最重要的一环。工业云主要分为管控端和边缘端,其中管控端是部署在腾讯云上,边缘端部署在离客户最近的区域机房,对上使用了很多腾讯云的服务。



管控端上比较重要的模块一个是商品中心,商品中心负责跟腾讯云的云市场打通,将腾讯云中符合制造业且比较成熟的 SaaS 或人工类的应用通过管控端打通,再把这个商品通过同步中心下发到各个地市节点上。


同步中心是整个体系里相对比较重要的另外一个模块,每个工业云都会有一个同步中心的 Slave,每个工业云启动的时候 Slave 会主动连管控端,上报自己的身份,后续所有的数据可以走这个同步中心下推。同时这个同步中心也支持反向同步,比如订单数据需要做结算、结账时,这些订单数据也能从工业云端反同步回管控端。


消息中心同样也分为 Master 和 Slave,消息中心主要起到全局路由和全局消息通知的作用,比如有一个消息从工业云 A 要通知到工业云 B。工业云 A 和工业云 B 网络是不会直接打通的,因为不一定通,极端一点的比如一个在国内,一个在国外,网络就是不通的,但是它们跟腾讯云是通的,所以消息中心在这里起到中转的作用。消息中心作用不止如此,支持各种跨云通知,包括从云端推到边缘端,从边缘端推到云端,从边端推到边端。


3. 工业云模块设计


下面的图是工业云,工业云上也有几个比较重要的模块,第一个是账号中心。每个账号都会有一个腾讯云的影子账号做关联,这也是混合云的基础,从用户侧看起来就是一个账号,例如有些应用在工业云上做操作,但需要用到了很强的腾讯云算力,这个算力就是由账号中心在云上的影子账号做的,通过这种方式实现了混合云操作,并且用户侧不会有明显的感知。


第二个是计费中心,因为整个架构是混合云架构,混合云包括私有云和公有云,而私有云的计费方式和公有云的计费方式也是不一样的,会有不同的结算方式。整个计费包括了公有云计费,私有云计费,预付费,后付费,阶梯付费等各类计费模式。



Ti-EMS 是 AI 弹性扩容的集群服务。因为训练需要用到很多的资源,所以一般很难在工业云上直接做,通常会在用腾讯云上无限的算力来进行训练,而训练出来的推理模型可以推到工业云的 EMS 上做推理服务。IoT 也可以在工业云上部署大数据套件,比如做流计算,数据离线计算,这些都是 IoT 的后台能力。


最底层的 IaaS 层和 PaaS 都能提供比较完整的能力,IaaS 层目前用到的是腾讯的 Tstack、ECM,还有一些客户需要更完整的 IaaS 能力,我们还会提供 TCE。PaaS 层提供有限的能力,例如 mysql,redis,mq,对象存储等,当然肯定不及腾讯云的全面。


基础服务层由账号中心、商品中心,计费中心等这几个业务底座跟通用组件层组成,除了提供整个工业云的上层服务之外,每个通用组件都能支持到通用多产品接入,这也是在设计就考虑好提供给第三方合作产品接入预留的能力。


另外,这几个中心为什么被叫做业务底座呢?就是因为它们有很强的可复用性,一个第三方的合作产品如果想要接到整个平台上来,是跟这些业务底座和通用组件连接,通过调用这些接口接入进来,成为开放平台上的一个能力。


另外还有一些支撑组件,整个开发框架用的是 GO 语言,CI 持续集成用的是 Coding,CD 部分用的是 TKE,普罗米修斯可以做指标性监控,CLS 是做日志的收集监控,Flyway 是做数据库的管理......


4. 边缘容器



关于边缘容器,如上图所示主要分为两部分,上半部分主要是云的部分,我们可以简单理解为:在云上布了一个 k8s Master,在边缘节点,也就是离客户最近的机房节点上面布了一个 k8s Node,k8s Master 和 k8s Node 通过公有云做数据互通,这就是边缘容器。


因为整个工业云都是部署在边缘容器上,所以边缘容器的模型跟工业互联网的架构非常吻合。比如需要数据落本地,因为 k8s Node 就在客户机房,所以数据本身就是落在本地的,而且是就近服务。另一些需求比如 AI 质量检测对时延要求也非常高,Node 在客户本地就近服务也能提供最好的服务。


第二是成本优势。我们知道大多数制造业企业的利润率,特别是中小企业利润率是非常低的,很多都只有个位数,所以需要尽可能得节约成本。而我们把 Master 布在云端,所以相对来说少布了一些组件在客户机房这里,达到节省成本的目的。


边缘容器这块有几个关键技术点,第一个就是:tunnel edge。在整个节点启动的时候,tunnel edge 会负责跟云端的 tunnel server 做隧道打通,后面所有的交互都是通过该隧道。


其次增加了组件:lite-apiserver,所有其他 k8s 组件都会通过这个 lite-apiserver 跟云端的 Master 做交互,相当于承担了一个网关的角色。但是它除了做网关,还有一个很重要的点,那就是它需要有一定的边缘自治能力


那么什么是边缘自治呢?我们知道云端跟边缘端因为是走公网的,所以网络质量是不可控的。如果是原生的 k8s,一旦网络断开,对底层的 Node 来说就相当于节点掉了,节点掉了之后它就会做 pod 迁移。为了避免这个问题,需要 lite-apiserver 能够起到一定的边缘自治能力,也就是一旦网络断了,它需要维持底下的 pod 不要迁移。


此外还有 observer—观察模块,每个节点上都会有这样的组件,它们互相之间组成一个集群,互相观测打分。增加 observer 的目的同样也是为了避免上面提到的问题,一旦公网断掉,每个节点之间都能够知道自己是否存活。如果某个节点是单独节点掉线,其他节点的 observer 就会给这个掉线的节点打分,判定它已经掉线,并且把它踢掉,然后再把 pod 迁移到这里;如果是大家一起掉线了,那就要一起把下面的 pod 维护住。以上就是边缘容器的方案。


用边缘容器有什么优点呢?我们的整个工业云可以理解为是私有化的,但利用了公有云能力的。

对于传统运维来说,要运维这样的私有化产品,当需要升级的时候应该怎么做?首先需要客户授权,接着运维要去做一个 VPN 连接,SSH 过去,然后下载镜像,接着再部署,最后再验证,传统运维是这么做的。


但是上了边缘容器之后,我们可以做到 DevOps 的运维流程。客户授权之后,我们在腾讯云 Master 这端,只要由开发在页面下拉选择升级一个版本号,剩下的全部都由 k8s 自动做滚动升级,极大提高了运维效率。



可能有人会疑惑:这好像并没有省多少步骤啊?运维写脚本也能做很多自动化的操作?其实这里有一个很大的区别,在一般的企业里面,运维是比研发人员少很多的。如果你的产品只服务了几家企业,那么只由几个运维走传统模式完全没有问题。但是等规模增加到几十家、上百家的时候,如果还是只有那么几个运维,让他们每次都做这些很烦琐的操作,能运维得了这上百家的客户吗?肯定不行。所以我们把它切为 DevOps 方向之后,运维可以只用管风险控制、权限控制,而把版本升级交给开发来操作,而且页面操作能极大减少操作带来的风险。



最后介绍一下本地专用集群 CDC,它做的事情就是:客户在腾讯云上购买产品之后,可以把购买的这个产品下发到离它最近的一个节点,比如客户的自建机房或一体机上面。


如果客户是在什么都没有的情况下,在腾讯云上买了一体机,那客户将会得到一个移动机房,包括移动机房需要配备的空调、机柜、电源、风扇、排插等整体打包,同时在里面把服务器和软件安装上去,然后邮寄到客户企业机房。客户在企业机房里插上电源,移动机房就可以启动,接着跟公有云做网络连接,然后用户就可以在腾讯云上下单购买各类云产品,例如 CVM 服务,CVM 产出的实例直接就在一体机里面,通过跟公有云一模一样的操作体验,就可以完成整个客户自己的私有化机房搭建。


CDC 跟整个工业模型也非常吻合,因为工业需要数据落本地,提供就近服务。而 CDC 主要是做 VPN 的打通,在管控端对接 CVM 管控、CBS 管控、VPC 管控等,例如在生产 CVM 的时候能知道去哪个机房或一体机上面生成子网,生成一个什么样规格的 CVM,挂了什么样的云硬盘等。


这中间需要着重考虑的就是安全性上的问题,一旦 VPN 打通以后,客户机房和腾讯云网络就是扁平打通的,这会带来很大的安全挑战,所以整个 CDC 也做了很多软件入侵检测、硬件入侵检测、网络检测等安全工作。


三、平台产品与解决方案


1. AI 质检平台


接下来介绍两个跟制造业或工业相关的案例,第一个案例是工业 AI 质检平台。这家客户是做液晶面板的,他们平时在液晶面板生产出来以后,需要在一个小黑屋里,找一个眼神比较好的人来看一下这些面板有没有故障。久而久之,工人的眼睛也开始变得不好,另外人力也是很大的开销。


于是我们给他们设计了一个方案:我们通过照相机(理解为传感器的角色),把液晶面板拍下来,拍完之后再把相片交给行业专家,由他在照片上打标注,把觉得有坏点的地方圈出来,最后我们把这些相片作为人工标注的训练集,上传到工业云上做训练。


这个案例依靠了云上的算力,使用到腾讯云 Ti-ONE 智能钛机器学习平台的服务,基于训练集做训练,产生一个比较好的推理模型部署到客户机房,这样使得整个流程变成了传感器+推理模型代理人力来做质检。



下图展示了比较完整的流程架构,整个流程主要分为三个部分,第一部分是训练平台,主要是使用腾讯云 Ti-ONE 的能力,Ti-ONE 上面有海量的算法模型,云上提供有无限的算力,因为训练会持续很久,每次训练通常都需要训练一个星期,所以需要很强的算力。



在训练平台上主要是用专家打标的训练集来做训练,训练出来之后接着跑推理服务。推理服务主要是跑在 Ti-EMS 上面,Ti-EMS 的计算量相对来说并不需要那么大,所以 Ti-EMS 可以部署到工业云或者一体机上,这取决于客户愿意承担多少成本来购买设备和服务到边缘层。推理服务部署到边缘之后,客户每次做流水线质检的时候,质检的逻辑在机房内就可以完成,或者到离它最近的区域节点做完整的推理服务。


调度系统主要是做任务编排,一般生产企业会有很多生产线,每个生产线的产品都不同,调度系统就是用来触发调度的行为,支持把不同生产线和不同的算法模型做绑定或做流程拖拽式的流程编排工作。



2. 物联网工业设备监控


另外一个案例是关于物联网的实践,偏向于工业设备的故障发现和预计。我们知道一些像石油、煤矿、化工、电力这些传统行业的企业,它们的生产设备往往体积庞大,资产昂贵。而且这些资产通常都没有备份,一旦出现故障就会影响到本来计划好的生产订单,所以这类企业对大型资产的监控需求非常高。


这里我们主要做的事情也分为三个层面:设备层、边缘层、平台层。在设备层安装传感器和采集器用来采集设备的这项指标,比如温度、振动频率等,采集完以后通过网关输送回 IoT 后台。IoT 后台可以部署在工业云上,也可以部署在边缘层上,也即客户自建机房或一体机,这主要取决于客户拥有的设备规模,一般中小型企业可能会倾向于使用工业云上面的 IoT 后台。


数据到了 IoT 后台之后,平台层会提供一个比较强的规则引擎,可以让企业客户做一些规则配置,还有一些告警设置等。IoT 后台可以结合大数据套件 TBDS 来实现更强的功能,比如做数据统计和推理预测,比如某个设备当前没有问题,但是想要预测未来某个时间段会不会出现问题,这就需要用到大数据的统计能力,需要用到离线计算,而这些都是可以基于腾讯云的大数据套件来做的。


3. 其他能力


除了刚刚介绍的两个比较典型的案例,整个工业云上还有很多其他的能力,比如云开发低码平台;协同制造适合在同一个区域供应链上的协同工作,比如我是一个市级中生产下游设备的厂家,上游的一个厂商需要某些底层的设备,那么他就可以在这里发布他的需求,我也能响应他的需求,这是用来解决供应链问题的。


标志码解析平台这块也是国家在推进的事情,简单理解就是溯源,让每个生产的产品都有唯一的身份标识。比如我生产了一个液晶面板,这个液晶面板会按照国家制定的规则打上唯一的身份标识,在标志解析平台上我们可以根据这串号码查到这个液晶面板的生产时间、生产地点、用途门类等等信息。


还提供有学习培训,跟银行融资的能力,另外还提供了腾讯刚推出的云企微信产品能力,利用腾讯 C 端的优势让客户在管理自己的企业还有生产设备的时候,有一定的对 C 端客户触达的能力。



在此过程中也引入了很多的合作伙伴,比如道一大学、万应工厂等,在不同的领域为大家提供专业的能力和服务。



四、Q&A


Q:边缘这侧的服务,市一级的节点是作为主要的方向来进行建设吗?

A:目前主要是市级,也有一些省级的,有一些甚至会聚焦到某个工业园,这个不一定,但目前主要是市级。


Q:上面的产品主要是以 SaaS 化的作为主要的内容,还是 Docker 化的镜像类的内容?

A:目前主要是 SaaS 类和人工类的,镜像类的卖得不是很好,制造业企业不是很喜欢选择镜像类的来折腾,他们希望由合作伙伴直接帮他们代理把这些事情做了,所以会更倾向于 SaaS 类和人工类,当然镜像类也是有的。


Q:SaaS 类在公有云上可以直接享受得到,推边缘的意义在哪里呢?

A:传统企业一般不会到腾讯云上面来购买东西,往往是由区域合作伙伴帮他们想解决方案的时候做了购买这一步。而且工业云上已经过滤了一波适合制造业领域的应用了。


Q:第三方的 SaaS 应用如果要上到公有云上面来的话需要做什么改造呢?

A:整个平台是有比较强的开放能力的,比如你要对接工业云的帐号、计费等,还要跟工业云做页面级的风格统一等事情,当然取决于你是什么样的产品形态。


Q:腾讯云赋能工业互联网是否支持这样一种模式,只赋能设备端和边缘网关那块,因为有的用户是不希望自己的工业数据上云的,把云上那部分剥离开来,是否支持这种模式?

A:是可以的,管控端跟数据是隔离开的。如果没有管控端的话,后面给你升级维护,效率和速度会比较慢,而且部署的成本也要比较高。但是管控端只做版本升级,不会做数据采集,管控和数据完全隔离开。


头图:Unsplash

作者:黄浩宇

原文:https://mp.weixin.qq.com/s/a3x-STVd-yoDZofQWSqKcA

原文:基于边缘容器技术的工业互联网平台建设

来源:云加社区 - 微信公众号 [ID:QcloudCommunity]

转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2021 年 6 月 03 日 08:001412

评论 1 条评论

发布
暂无评论
发现更多内容

架构师训练营 -- 第八周作业

stardust20

央行数字货币或将成为经济“内循环”的未来加速器

CECBC

数字经济 全球经济下行 降息 惠普金融深化

Flink 1.11 SQL 使用攻略

Apache Flink

flink

架构训练营第八周作业

张锐

第八周作业

赵龙

NameNode和SecondaryNameNode工作机制

古月木易

NameNode econdaryNameNode

一周信创舆情观察(7.20~7.26)

统小信uos

设计过度有时比设计不足更可怕

菜根老谭

架构思维 过度设计 演化思维 设计不足

架构师训练营 - 第八周 - 学习总结

stardust20

架构师训练营第八章总结

itrickzhang

乘商用之风,破后疫情之浪:丁耘分享华为如何持续护航5G新价值

脑极体

国家版权局发布《关于规范摄影作品版权秩序的通知》

CECBC

电子存证 作品版权 侵权盗版 剑网2019

Django框架,Flask框架和Tornado框架各有什么优缺点

奈学教育

django flask tornado

第八周学习总结

赵龙

Week 08 命题作业

Jeremy

第八周作业

andy

极客大学

保障服务稳定之服务限流

X先生

后端 架构设计 服务设计 限流算法

什么样的信任才值得拥有?谈一谈极客邦的5K1S文档

霍太稳@极客邦科技

NameNode和SecondaryNameNode工作机制

奈学教育

NameNode

第八周总结

andy

极客大学

世界上最狠的语言

十三

你好,工作!

小天同学

工作 心态 自我思考

Java开发Spark ELT实践(一)

团子粑粑

大数据 Apache Spark

天天用SpringBoot,它的自动装配你能说出来吗?

java金融

Java spring springboot 自动装配 EnableAutoConfiguration

Week 08 学习总结

Jeremy

JVM详解之:汇编角度理解本地变量的生命周期

程序那些事

Java JVM 汇编 生命周期

面经手册 · 开篇《面试官都问我啥》

小傅哥

面试

Django框架,Flask框架和Tornado框架各有什么优缺点

古月木易

django flask tornado

shell实现SSH自动登陆

阿呦,简笔话_Golden

行为型模式:迭代器模式解析

程序员七哥

Java 编程 程序员 设计模式 迭代器模式

架构师训练营第八章作业

itrickzhang

基于边缘容器技术的工业互联网平台建设-InfoQ