边缘计算概述

什么是边缘计算

从云计算出发

云计算将计算资源、数据资源统一在一个能力很强的地方(云中心),让普通用户成为瘦客户。也就是说,用户将数据存储在云端后,对本地存储能力和计算能力的要求降低,节约升级设备的成本
边缘计算概述_第1张图片
但云计算也有问题,通信成为了瓶颈,例如:

  1. 宽带低于需求:一个波音787每秒中会产生5G数据,但带宽(无论是地面基站、卫星)远远不能跟上这个要求
  2. 数据通信需要时间(实时性):例如,自动驾驶,每秒产生1G数据,如果这1G数据传到云上完成计算,需要通信时间为800ms(10Gbps by 5G),如果车速为60km/h,800ms已经走过了13米
  3. 能耗大:ZigBee计算的耗能单位是uW,而将数据传输出去的耗能单位是mW,相较于数据计算所耗的能量,云端的传输能耗过大
  4. 安全性:担心把照片放到云端会泄露,隐私性和保密性问题

因此提出边缘计算的概念

边缘计算:边缘计算是指用网络边缘结点来处理、分析数据。其中,边缘结点指的就是在数据产生源头和云中心之间任一具有计算资源和网络资源的结点。**直白的说:就是将计算放置在数据源的附近。**下图中左下灰色波浪部分即是用于计算的边缘节点,相较于云计算,它们离本地较近,云计算的通运问题被部分解决。
边缘计算概述_第2张图片

边缘计算要解决的问题

  1. 解决高可靠、低延迟计算能力的需求,工业中常需要有此需求
  2. 解决数据中心能耗过大问题
  3. 解决大数据处理的压力:物联网产生的数据会指数级增长,网络传递不了,数据中心处理不了
  4. 解决安全性问题:隐私数据没有上传到数据中心,减少安全风险

边缘计算的案例

  1. 购物车
    每一次操作都同步给云端(可能会出现操作数据丢包的情况,这时本地数据和云端数据不再同步,出现混乱) or 同步到边缘节点,一段时间后将边缘节点的信息一次性同步到云端(丢包可能性大大降低,有一点类似数据库的检查点)
    边缘计算概述_第3张图片
  2. 交通
    互联网汽车需要实时性,将数据传输到云端后计算,再将计算结果传回,以此判断前方是否有人是否需要转向是行不通的,必须本地计算数据保证实时性,此时,汽车中的某计算设备就可以当作边缘节点
  3. 医疗
    医院病床平均有20个以上的联网设备,会产生大量的数据。病人的数据(隐私)处理发生在更靠近边缘的地方,而不是发送到云端,能够避免数据被不当访问的风险。

边缘计算有关提法

  1. 雾计算:2011年由思科(Cisco)提出。
    边缘计算概述_第4张图片
    其实雾计算和边缘计算没有本质区别,都是将计算放置在数据源的附近
  2. 移动边缘计算:欧洲电信标准化协会提出移动边缘计算(Mobile Edge Computing,MEC)
    关键概念是部分移动业务的下沉,提高其业务分发、传送能力,进一步减少时延,并有效抑制核心网络内的拥塞产生
    边缘计算概述_第5张图片

边缘计算参考框架

到目前为止,边缘计算还没有一个好的框架,框架仅供参考
边缘计算概述_第6张图片
边缘计算参考框架 – 制造

边缘计算概述_第7张图片

边缘计算核心技术挑战

编程(Program)

Windows环境下的exe不能在Linux上运行,不同操作系统的运行环境不一样,x86和ARM在CPU指令集上都不一样,对于边缘计算来说,异构非常常见,如树莓派基于ARM CPU、NVIDIA Jetson Nano基于GPU、iPhone基于iOS、Huawei Mate 20基于Android等等…
同样的功能,在不同的环境下运行的要求不同,若是对每一个异构都重写一遍,代价太高。
核心挑战:如何编写一个应用程序可以将其分布式部署在边缘计算框架中

命名(Naming)

命名(Naming),即定位资源。例如,监控系统需要用到某个摄像头,若是单机操作,可以根据文件路径命名摄像头,例如,open(/dev/camera0)。但边缘计算框架可能会用到非本地摄像头,怎么处理?一个简单的想法是通过IP地址来找到具体节点,IPV4够用吗?IPV6有具体的较为明确的含义吗?如果有很多很多不同地点的摄像头,我们要记下来一堆没有任何规律的IP地址吗?
核心挑战:资源如何命名来使其适合于大规模动态异构环境?

隔离

计算资源隔离:即应用程序间不能相互干扰。
数据的隔离:即不同应用程序应具有不同的访问权限。
边缘计算更复杂,更容易出现错误,却要求更可靠
Docker: 普遍应用的Docker技术可以实现应用在基于0S级虚拟化的隔离环境中运行
docker介绍:https://www.cnblogs.com/idktp/articles/10538872.html

动态环境

和网络一样,边缘计算也会形成一种网络,具有动态性,下一刻可能会有新节点的加入,也会有旧节点的退出。动态环境有三个步骤:服务发现、快速配置以及负载均衡。
服务发现:计算服务请求者如何知道周边的服务。
快速配置:节点移动、设备开关会造成服务的动态注册和撤销,服务通常也需要跟着进行迁移……
负载均衡:数据、需求、服务、网络、计算、能耗等很多因素决定负载均衡

边缘操作系统

  • 机器人操作系统(robot operating system, ROS) 是一套开源的机器人开发及管理工具,提供硬件抽象和驱动、消息通信标准、软件包管理等 一系列工具,被广泛应用于工业机器人、自动驾驶车辆即无人机等边缘计算场景。
  • EdgeOSH是针对智能家居设计的边缘操作系统,其部署于家庭的边缘网关中,通过3层功能抽象连接上层应用和下层智能家居硬件。
  • EdgeOSv是面向网联车场景的边缘操作系统

ROS有可能成为边缘计算场景的典型操作系统

算法执行框架

  • 人工智能计算是需要执行框架的,实际上任何计算都有执行框架,比如桌面运算
  • 数据中心上的TensorFlow:执行模型训练任务,输入是大规模的批量数据集,关注训练时的迭代速度、收敛率和框架的可扩展性等
  • 边缘节点上的TensorFlow:执行预测任务,输人的是实时的小规模数据,关注预测速度、内存占用量和能效

边缘计算典型框架

OpenVDAP(2018,韦恩州立大学)
KubeEdge(华为)
边缘计算概述_第8张图片

  • Edged:管理Edge上的容器化应用程序。
  • EdgeHub:Edge的通信接口模块。
  • CloudHub:云端的通信接口模块。
  • EventBus:使用MQTT处理内部边缘通信。
  • DeviceTwin:它是处理设备元数据的设备的软件镜像
  • MQTT: Message Queuing Telemetry Transport,是一个基于订阅/发布的IoT连接协议

Azure IoT Edge(2017,微软)
OpenEdge(2018.12,百度)

哈工大《边缘计算与嵌入式智能》笔记

你可能感兴趣的:(笔记,边缘计算,云计算,人工智能)