边缘计算初步印象
这是我在2018年9月在阿里云做实习生时候写的关于边缘计算的技术博客,当时初步的认识就是这样,以供参考。
一、边缘计算的起源与定义
在2018年深圳云栖大会上,边缘计算被作为阿里巴巴物联网“1234”战略中的2个终端战略之一正式发布;微软2017Build开发者大会以“边缘计算”作为主题;2016年华为、英特尔、ARM、中国信息通信研究院、中科院沈阳自动化研究所共同发起了边缘计算产业联盟,而且阿里巴巴IoT生态合作伙伴计划ICA联盟也下设边缘计算工作组。我们看到边缘计算在产业界如火如荼的发展,下面通过边缘计算的三条发生路径,来为大家介绍一下边缘计算是如何走进我们的视野。
- 工业物联网——边缘计算呼之欲出
上世纪日本丰田汽车创始人丰田佐吉提出了“5why”分析法来分析制造过程中的问题从而创造了一个阶段日本工业匠人精神的光辉,然而IBM和Cisco公司联合开发的可预测性维护系统取代了这种分析手段,用传感器采集的数据训练模型,来预测机械故障带来的产品品质衰退,在节约成本的同时进一步提高了良品率。由于数据量巨大,绝大部分的数据处理在生产线上完成,这就是工业互联网中边缘计算。工业会产生海量的数据,据Cisco的报告,一个大型炼油厂一天会产生1TB的数据、一个海上钻井平台一天会产生数TB的数据。如果将这些数据全部传入云端处理,不仅成本巨大,还将花费相当长的时间,而且时常运行在网络条件不好的地方,如海洋钻井平台。而边缘计算系统可以提供即时数据分析,并及时反馈。这正式边缘计算最早的实践,在工业物联网实践的第一步,边缘计算呼之欲出。
2.应对物联网带来的网络瓶颈
据IDC(互联网数据中心)数据统计,到2020年将有超过500亿的终端与设备联网。全球数据总理将大于40ZB。随着设备数据量的增加,网络带宽正逐渐成为云计算的瓶颈。所以未来超过50%的数据需要在网络边缘侧分析、处理与储存。
国际市场调研公司Gartner称,2017年全球物联网设备数量约达84亿,比2016年的64亿增长31%。设备的海量增长,制约传统物联网发展。Gartner预计物联网终端的增长速度约为30%,到2020年物联网接入设备的总数将会高达200亿。
根据Cisco的研究报告,2020年全球由物联网设备、人和机器产生的数据将达到500ZB,但全球的数据中心网络流量只能达到15.3ZB。所以为了应对物联网带来的网络瓶颈问题,在边缘端对数据进行处理,将会解决这个问题,边缘计算势在必行。
3.隐私安全需要边缘计算
个人的所有数据上传到云端,可能泄露你的品牌偏好、政治背景和文化偏见,还有更多的智能家居设备时刻收集着个人数据;前不久发送的云端数据丢失且无法恢复的事故,让使用者也在担心着自己的数据安全问题。边缘计算可以在上传至云端之前把个人隐私数据进行过滤和清洗,同时也可以对网络环节进行分片管理。
越来越大的数据必将伴随着巨大的安全隐患。近年来物联网安全攻击事件频发,防患于数据灾难的一个必要措施就是“隔离”,边缘计算从根源上将数据保护于自主之手,使得企业的机密数据、客户数据和等高质量数据有了更好的存在方式。
ç
边缘计算并不是一个突然冒出来的新词,在云计算还未进入视野的时候,CDN网络服务中就出现了边缘计算的描述,但在云计算普及和物联网飞速发展的大背景下,边缘计算成了一个热点风口。
传统的云计算模式是一种集中式的数据处理,所有的数据计算和存储均在数据中心实现。而边缘计算将原本属于云的计算任务,分担给具备计算能力和数据分析能力的网络边缘设备上,大大降低了数据中心的计算负责,同时通过减少数据的传输过程来降低网络带宽压力。
边缘计算犹如人类的神经末梢,对简单的刺激进行自处理并将处理的特征信息反馈给云端大脑。边缘计算与云计算互相协同,共同使能行业数字化转型:①云计算聚焦非实时、长周期数据的大数据分析,能够在周期性维护、业务决策支撑等领域发挥特长。②边缘计算聚焦实时、短周期数据的分析,能更好地支撑云端应用的大数据分析;反之,云计算通过大数据分析优化输出的业务规则也可以下发到边缘侧,边缘计算基于新的业务规则进行业务执行的优化处理。
从云计算到边缘计算的过程与人类社会满足电力需求所作的努力类似,最初的发电机直接供给电源到中心化的发电站,再到特高压发电站结合多级变电站的电网模式,同时为了避免电网线路故障引起的停电,最初的发电机也会作为备用电源。加入边缘计算边缘的网络架构满足了低延时的需求,同时也可以在云端离线的情况下自主处理任务。
除此之外,边缘计算还有以下特性:
- 异构IoT设备兼容能力(兼任各类IoT接口,包括Zigbee、WIFI和现场总线结构)
- 低且固定的服务延时(支持关键任务服务,比如电机的控制)
- 数据预处理和链路卸载(减少广域网的带宽需求,增加数据有效性)
- 系统资源隔离(支持多样性使用场景,支持IoT独特的生态)
- 离线处理(在极端情况下保持鲁棒性)
- 终端级的安全(安全是用户权益的前提)
- 实时操作(实时操作系统自主事件处理)
- 通用API支持多生态的边缘应用(API将软硬件能力提供给整个应用生态)
- 网络分片的服务隔离(将服务映射到特定的网络分片保障端到端服务质量)
那如何定义边缘计算呢?就如同我们大家都在使用的云计算,我们都知道云是什么,但是还没有一个统一的云计算的定义。各厂家可以根据自己的使用实践对定义进行裁剪。所以边缘计算目前也没有统一的定义,但上述这些性质会被满足或部分满足。
狭义上来讲,边缘计算是物理上接近于事物,数据和行动源头处的相对于云计算而言的计算,又称近计算或者接近计算(Proximity Computing)。
- 基百科对边缘计算的定义如下:
边缘计算是一种优化云计算系统的方法。在边缘执行分析和知识生成减少受控系统和数据中心之间的通信带宽。
- OpenStack基金会对边缘计算的定义如下:
边缘计算是为应用开发者和服务提供商在网络的边缘侧提供云服务和IT环境服务。边缘计算的目标是在靠近数据输入或用户的地方提供计算、存储和网络带宽。
- 2015年,卡内基梅隆大学、华为、英特尔等发起成立的OpenEdgeComputing.org(开放边缘计算联盟),对边缘计算架构的定义如下:
边缘计算提供了与用户非常接近的小型数据中心(边缘节点)。它通过与计算和存储资源的低延迟交互,仅距离用户一跳即可显着改善客户体验。
- 在文章一开头提到的边缘计算产业联盟(Edge Computing Consortium,简称ECC),对边缘计算的定义如下:
边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台,就近提供边缘智能服务,满足行业数字化在敏捷联接、实时业务、数据优化、应用智能、安全与隐私保护等方面的关键需求。
这些定义各有不同的涵义,这正是说明边缘计算处于蓬勃的发展期。
阿里巴巴ICA联盟边缘计算工作组对边缘计算有这样一个说明:将云服务在存储、计算、AI等领域能力延伸到边缘现场,通过安全、快速的接入方案链接不同协议、数据格式的设备,提供低延时、低成本、高可用、易扩展的本地计算服务,结合大数据、AI学习、语音、视频提升本地计算能力,打造云边端三位一体的应用系统,实现相关领域落地。这是云服务厂商的边缘计算定义版本,要想进一步了解边缘计算,还需要了解边缘计算架构、实用案例和主要技术方向,接下来进一步分别从架构、案例和主要技术方向三个方面介绍边缘计算。
二、边缘计算通用架构
本篇文章将介绍边缘计算的架构。边缘计算架构是一个通用技术框架,满足数据密集需求的IoT、5G和AI等应用的需求。符合阿里巴巴ICA联盟的宗旨——构建一个生态系统,离不开一个参考架构。参考架构在得到行业广泛支持后是支撑新应用和商业模式开发的有效蓝图。
由上一篇文章的边缘计算定义列表中我们看到,边缘计算是一种将计算、网络、存储能力从云延伸到网络边缘的架构,而这也是在产业与技术的发展中逐渐迸发出来。智能化将成为未来重要的发展方向,这已成为一种无争的事实。所以实现边缘智能将是边缘计算架构中的重点之一。除了边缘智能,边缘计算因其所具备的敏捷、实时、智能、安全等特点,将大幅度提升服务质量(QoS),并会创造新的价值与生态链。上一篇文章我们看到边缘计算要满足实时响应的需求,又要突破网络带宽的限制,同时要具备数据处理和隐私保护的能力,满足上述边缘计算结构会由云到物垂直分布在所有尺度的网络距离上,还会因承担边缘计算任务设备的差异,水平分布在单个能力很强的设备到分布式协同的虚拟雾单元中,最后在整个边缘计算的结构中,设计到的参与方不仅由网络运营商、云服务厂商、公司组织还有个人设备,这其中涉及到私有设备提供基础设施服务的激励机制,此外架构可以引入分形,在不同尺度上重复这一架构,进一步增加网络的灵活性。
边缘计算的架构包含了从最靠近物的终端传感器到云端的数据中心的整个网络架构,作为云计算的补充,有必要先了解云计算的基本架构S/C,即服务器到客户端的二元结构。以服务为中心的云计算结构是终端采集数据上传到云端,云端保存所有数据,根据业务逻辑,调用云端服务计算结果,然后回传给终端。简单地理解为云计算补充边缘计算之后的架构,即“化二为三”,也就是在终端到云端的网络路径种增加一个中间环节,这个中间环节在终端的角度看来是将云端的能力下沉,完成了之前云端对于终端的部分功能,比如数据处理和数据缓存等;在云端看来,中间环节上传上来的数据量不再是海量的异构数据,而是经过预处理后的规格化数据,可以节省网络带宽和计算资源,同时中间环节会接受云端的管理和更新设置。
了解了架构的一般思路,下面分为三个部分详细介绍边缘计算架构,分别为物终端间的边缘计算,基于私有边缘节点的边缘计算和基于公共边缘设备的多接入边缘计算。
(1) 物终端的边缘计算
最靠近物的是传感器终端和采集器,而传感器终端和采集器之间也会有计算资源的不同,在不添加新设备的情况下,可以通过终端设备间的P2P通讯组成一个边缘网络,设定或自选举出一个或几个计算能力强的节点,作为数据汇聚节点,做适当的数据预处理后,与上一层网络节点进行通讯。首要目标减少异构数据,其次是可以引入命名机制,便于管理,此外可以引入数据的过滤清洗等隐私保护机制。这一次的边缘计算是在采集器、路由器等嵌入式设备上实现的。引入规则引擎后,进行多变量间的关联性设计,可以做到对于环境的感知,比如智能家居。
(2) 基于私有边缘设备的边缘计算
本层次的边缘计算是需要在局域网种部署边缘服务器或能力较强的网关设备,除了具有物终端边缘计算设备的能力外,本层次边缘计算具备多种功能,更强大的数据处理能力,对于数据具有一定的存储能力,和一定的人工智能能力。在边缘服务器上,可以数据进行特征提取和压缩,只上传给云端特征值,大幅度节约带宽。并且边缘服务器可以暂存或保存数据。边缘服务器可以使用云端训练好的人工智能算法进行推理决策,带有加速卡等外设的边缘服务器还可以进行人工智能算法的训练。
本层次的边缘计算架构是一个开放的系统,也就是说会有统一的API暴露,可以广泛接入所有生态系统种的设备,具有广泛的可拓展性。同时本层次的边缘计算是一个虚拟化,需屏蔽底层硬件差别。
因此本层次边缘计算可以进行分布式的计算,对于临近的边缘计算服务器可以形成一个资源池,相互接触对方的计算、储存和网络资源。如临近的边缘服务器如有加速卡,可以将人工智能算法的训练能力开放出来,根据使用情况获取相应的报酬,储存资源和网络资源也是相似的。
(3)基于公共边缘设备的多接入边缘计算
在多网络汇聚点设置边缘服务器群,可以做到快速内容分发,提高服务的实时性,应对主干网络可能出现的拥堵情况。5G时代网络运营商均在布局边缘计算。
下面我们来看一下边缘计算的功能构架,从架构图底部最靠近物的可拓展接入开始,到最靠近云的描述的云边自动任务分配;从关于单点能力突破的数据运算加速器开始到雾协同的数据通用api;从能力最弱的私有设备到能提供公共服务的设备,此架构图描述的是边缘计算的功能,这是一个可裁剪的集合,可根据边缘的位置和需求不同进行选择。其中有八项支柱技术原则必须遵守:安全性,可扩展性,开放性,自治性,RAS(可靠性,可用性和可维护性),敏捷性,层次结构和可编程性
边缘计算架构介绍完毕后,边缘计算产业联盟提出边缘计算面临五种挑战:海量联接以及工业现场长期以来存在的大量异构的网络;工业系统等场景对业务实时性的高要求;以预测性维护为代表的智能化应用场景推动边缘侧智能化要求;通过数据优化实现数据的聚合和处理,更灵活高效地服务于边缘应用的智能;以及横跨云计算和边缘计算的端到端安全防护。下面将结合业界的具体实践,结合本篇所介绍的边缘计算架构,梳理各家应对着五种挑战的亮点与缺失。
三、边缘计算平台现状
由于边缘计算定义的多样性,使能边缘计算的方式也有一定的差异。在第一篇博客中,我们看多了云厂商、硬件厂商联盟与开发软件基金会对于边缘计算的不同定义,在本篇博客中,我们依旧延续这个分类,分别从这三个形态来介绍边缘计算软硬件实践的现状。一般地,边缘计算使用微服务容器技术,这样可以屏蔽操作系统带来的底层异构问题,而且方便管理。在硬件上,一般的边缘计算节点是基于X86或arm架构微处理器的硬件,需要运行AI或ML推理的需要专业芯片或FPGA。对于边缘计算来说,云厂商基于云技术的积累并向下延申,所以要边缘计算首先需要了解云计算厂商的实践。
一、云计算厂商——AWS、微软和阿里云
边缘计算是对于云计算的补充,边缘计算伴随着云服务而生,将云端的能力下降到边缘。通常边缘不需要处理所有数据,而是和云端协同,共同完成计算。所以所有的边缘计算实践都需要云端配置和边缘端部署。
云计算厂商中AWS、微软和阿里云是边缘计算最早发力的。其中AWS推出了Greengrass,微软推出了Azure IoT edge,而阿里云则推出了linkedge等边缘计算工具。这些工具均实现了定义中所介绍的,将云端能力迁移到设备中,既可以在本地处理数据,又可以利用云端的优势。
对这三家边缘计算平台的各方面作一比较,
|
Greengrass |
Azure IoT edge |
Linkedge |
函数计算 |
Lambda |
Azure 函数 |
函数计算 |
通信与触发 |
消息传递、 Lambda事件触发 |
容器通信、 事件函数触发 |
消息路由、 规则运算 |
数字孪生 |
影子设备,json文件,描述设备和Lambda函数的状态,并将状态同步回云端且保存在本地 |
模块孪生是存储在IoT Hub中的JSON文档,其中包含模块实例的状态信息,包括元数据,模块配置和各种触发条件。 |
物模型三元组和alijson |
安全 |
哈希证书 |
哈希证书 |
设备三元组 |
AI和ML |
云端训练、本地发现资源进行推理 |
ML Studio训练,本地推理 |
TBD |
软件组成 |
Greengrass Core和IoT Device SDK
|
IoT Edge运行时和IoT Edge模块、IoT Device SDK |
Linkedge镜像和AliOS |
运行条件 |
单核1GHz CPU和最低128MB RAM X86或arm结构linux操作系统 ) |
能够运行容器的windows和x64、arm32架构的Linux |
x86的windows或linux(稍后支持arm |
实现过程 |
AWS Greengrass core thing配置信息,包含了 Lambda函数,消息订阅信息、主设备和从设备信息和本地机器学习资源。本地Lambda函数是事件驱动的计算函数,可以在云端编写后,在本地部署,通过信息订阅和设备影子来调用Lambda函数,可以实现命令、控制、离线作业、数据过滤和聚合。设备影子是一个json文件,描述设备和Lambda函数的状态,并将状态同步回云端且保存在本地。消息订阅是本地MQTT发布订阅设置,可以定义发布订阅规则和MQTT主题过滤器,信息订阅是云端的桥接器和本地的信息分发系统。 |
Azure IoT Edge提供将服务打包成容器的功能方便部署,具体分为Azure流分析可在Azure控制台初始化,更新和部署至网关设备;Azure Functions可使用VSCode自行开发Function并打包成容器模块;AI和Azure机器学习,在使用ML Studio进行训练后,将AI和ML模型打包为一个容器中的模块。将容器化的ML模块部署到物联网边缘;Azure云服务,在边缘网关添加影像、语音等高级功能。 |
在云端创建边缘计算网关,配置规则计算、函数计算和消息路由,在边缘端启动边缘计算容器,云端会自动下发相应的配置完成连接,实现1)设备至IoT Hub(2)设备至函数计算(3)函数计算至函数计算(4)函数计算至IoT Hub的路由通信。 |
具体详细的使用方法可以参考各家官网指南。
https://docs.microsoft.com/zh-cn/azure/iot-edge/how-to-install-iot-edge-linux
https://amazonaws-china.com/cn/greengrass/ml/?nc1=h_ls
https://help.aliyun.com/document_detail/85235.html?spm=a2c4g.11186623.6.582.cd8d3af7zPK4R7
二、 行业联盟对于边缘计算的定义中主要是想打破终端设备碎片化的问题,现状是不同厂家自己的终端设备只与自己厂家的软件兼容。虽然这是厂家在这个领域深耕多年积累和遗留的历史问题,但是这些厂家现有的边缘计算套件也有很大的参考价值。下面介绍谷歌的edge tpu是一个专门在边缘上实现机器学习推理的超大规模集成电路芯片,配合cloud TPU可以完成AI和ML的算法训练和部署。具体来说Cloud TPU可以实现独占或弹性的云端TPU加速训练,而edge tpu在体积和功耗小的物理器件上实现了高性能,实现了边缘上的高精度AI算法,两者可以结合可以实现端到端、云到端的软硬件基础设施来促进AI算法的实用。
NI、研华、凌华等硬件厂商的边缘计算实践是以硬件能力为核心的,其中FPGA是核心器件,由于FPGA的硬件逻辑可以本地配置,同时能完成告诉的AI和ML算法推理。所以使能边缘计算对于硬件厂商有天然的优势。用边缘节点设备和可以远程更新配置的软件,可以完成边缘的数据压缩和汇聚以及服务器和边缘的协同。但是,因为硬件厂商自身不具备云计算能力,云端的开放与集成是一个短板。
华为边缘计算在其建立的行业联盟里面也处于核心位置,包含了边缘计算节点和云平台。华为边缘计算节点基于linux系统和容器技术,提供软硬件接口、网络功能和管理功能,可以基于mqtt协议自行部署第三方应用。
- NI IC-3173工业控制器,具有2.20 GHz Intel Core i7双核处理器,四GigE端口,双USB 3.0端口,适用于极端环境的自动化和控制应用,售价在300K。
- 凌华SETO-1000户外服务器具有E5 Xeon处理器,双GigE端口,双SFP+端口,适用于适用于极端环境的自动化和控制应用,售价174K。
- 研华EIS-D150边缘智能服务器具有Core i5 6300U,运行win10操作系统,并拥有自行研发的WISE-Agent边缘IoT套件,售价13K。
- 华为AR502网关内置工业级LTE模块,提供大带宽、低时延的无线访问能力,并提供丰富的本地接口,包括千兆以太接口、RS485/RS422、RS232、RF、ZigBee等,可连接各种以太设备、串口设备和RF设备,售价9K。
- 谷歌edge tpu预计在十月发售,在之前intel 发布的Movidius Neural Compute Stick,NCS的优势就是低功耗,它可以在不到 1 瓦的工作功率下运行一个经过完全训练的神经网络,在不增加耗电和主机处理器压力的情况下,赋予机器的深度学习能力,仅售$79。而特斯拉的数据中心级Tesla P100显卡售价169K。
三、软件基金会主要服务于开发者来使能边缘计算,同时开发者也会反哺开源基金会,故此边缘计算在软件基金会发展是最早的。Openstack一直以来被认为是有可能替代AWS云的开源软件,在边缘设备使用Openstack可以实现边缘计算,在openstack的不同网络分层中部署相应的边缘计算应用。
同样,隶属于linux基金会的edgeX项目也是一个边缘计算软件,他是基于docker的一些列微服务的集合,又可以划分为四个微服务层——核心服务层、支持服务层、开放服务层、设备服务层。此外linux基金会在2018年开源了一个叫Akraino的项目,Akraino是一个开源软件栈,同样使用虚拟机和容器技术,它可以通过对于底层的灵活优化,在边缘将应用的延时控制在20ms以内