全方位剖析边缘计算架构设计以及应用实践

2020 年 3 月 16 日

全方位剖析边缘计算架构设计以及应用实践

边缘计算概念产出乃至当今的应用,继2005年云计算概念提出后,我认为它已经成为云计算发展过程中的发酵必然产物。公司处于物联网领域大军中的一员,以下将直击边缘计算赋能物联网。


云计算、雾计算与边缘计算


三者之间成熟度最高的也就是云计算,在云计算的发展过程中发酵出边缘计算(Edge Computing),甚至碰撞出来一个雾计算(Fog Computing)。


  • 云计算

  • 目前阶段概念层面已经很明确了,通过按量付费等网络提供资源,比如:IaaS、Paas 和 SaaS。使得企业可以在自己的物理硬件之外,调度远程服务器进行任务处理及存储等。

  • 雾计算

  • 思科在2011首创,是相对于云计算而言的。它并非是性能强大的服务器,而是由性能较弱、更为分散的各种功能计算机组成,渗入电器、工厂、汽车、街灯及人们生活中的各种物品。通俗的说,它拓展了云计算(Cloud Computing)的概念,相对于云计算它离产生数据的地方更近,数据、数据相关的处理和应用程序都集中于网络边缘的设备中,而不是几乎全部保存在云端。这里因“云”而“雾”的命名源自“雾是更贴近地面的云”这句话。

  • 边缘计算

  • 边缘计算(Edge Computing)是相对云计算而言的,它是指收集并分析数据的行为发生在靠近数据生成的本地设备和网络中,而不是必须将数据传输到计算资源集中化的云端进行处理。通俗的说,边缘计算是去中心化或分布式的云计算,原始数据不传回云端,而是在本地完成分析处理。

  • 雾计算和边缘计算临界点

  • 雾计算(Fog Computing)和边缘计算(Edge Computing)有太多相似点,甚至可以互相交换,二者都是试图减少发送云端的数据量,降低延迟提高性能,同时也都将数据处理转移至终端等临近源头。针对二者哪个用起来更好,是用雾计算还是边缘计算?其实并不太重要,取决于应用实例所期望的结果,就如同我们根据业务设计架构一样。即根据业务选用合适的架构。选用方式又怎么判别?一般雾计算过程发生在局域网(LAN)架构上,通过工业网关及嵌入式交互的集中式系统。边缘计算(如图1)过程发生在终端设备本身。



图 1 边缘计算架构


  • 三者之间区别(如图2)



图 2 三者对比


边缘计算分类


从市场应用区分纬度,边缘计算主要区分三类:电信运营商边缘计算、企业与物联网边缘计算、工业边缘计算,对于三类之间产生的六种边缘计算业务形态,可以独立一种存在,也可以多种业务形态相辅相成。下图阐述边缘计算分类细节(如图 3):



图 3 边缘计算分类


边缘计算架构(如图 4)



图 4 边缘计算架构


  • 云中心

  • 图中最右侧,云端处理中心仍然是现阶段的云计算中心,边缘计算结果数据将由云中心永久性存储,重量级的分析任务将持续由云中心作业完成。同时进行对边缘计算中心网络分布的策略分发管理等。

  • 边缘节点

  • 边缘计算最终实现可以是设备本身(手环、智能终端等),也可以是临界点网关、路由器等,可以把边缘计算称之为物理世界与虚拟世界的连接枢纽站。因此,如何在动态的网络拓扑中对计算任务进行分配和调度是值得研究的问题。边缘计算层通过合理部署和调配网络边缘侧的计算和存储能力,实现基础服务响应。

  • 终端节点

  • 终端设备由各种物联网数据采集设备组成,主要进行数据采集,并不考虑它的数据计算能力。将数据导向给边缘节点或云中心,以输入的方式作为载体。


对于三者层面,网络之间可以进行跨层访问,终端是可以直接与云中心通信,云中心也可以直接与终端通信。


边缘计算泛在应用


边缘网络基本上由终端设备(例如:移动手机、智能物品等)、边缘设备(例如:边界路由器、机顶盒、网桥、基站、无线接入点等)、边缘服务器等构成。这些组件可具有一定性能,更好的进行边缘计算,边缘计算的特点是能够实时、高效、节能地响应用户需求,所以不会对云端进行大量数据的写入。在现有业务场景已经由很多企业在使用,但是对于边缘需要明白边缘这个概念,例如:


  • 对于CDN厂商来说,边缘则是指遍布全球的CDN缓存设备

  • 对于机场的监控设备,边缘就是覆盖整个机场无死角的高清摄像头

  • 对于移动手机Face Id解锁,边缘就是Face Id函数算法


值得一提的是,绝大数物联网实际应用面临着处理海量终端的连接和管理、保证分析的实时性和保护工业数据隐私的问题。华为技术有限公司也指出,基于边缘计算的物联网(如 EC-IoT、Edge Computing-IoT)可以有效地构建预测性维护方案,并已经推出了设计和部署预测性维护解决方案的服务。华为技术有限公司使用智能网关提供智能服务,对维护对象的关键指标进行实时监测和分析,预测维护对象可能出现的故障,并进行信息上报。


边缘计算挑战


边缘计算解决问题的同时也会带来一些其他挑战,边缘计算的网络层面覆盖很广,需要更多的资源进行协同和对接,因此会出现很多挑战。2016 年,美国韦恩州立大学的施巍松教授团队提出,边缘计算面临着可编程性、命名、数据抽象、服务管理、隐私及安全和性能指标优化等 6 种挑战,其中在可编程性、命名、服务管理和隐私及安全问题上,学术界及工业界已经取得了阶段性的成果,在此仅列出 4 点:


  • 隐私和安全

  • 虽然边缘计算完成了部分数据计算工作,避免了信息在网络传输过程中被窃取的问题,但边缘计算带来了更多设备的接入成本增高,和更容易被入侵的危险。

  • 服务管理

  • 软件定义网络(Software Defined Networking,SDN),可以较好地对网络及其上的服务进行组织,并进行管理,从而可以初步实现计算链路的建立和管理问题。与此同时,边缘设备需要通过有效的隔离技术来保证服务的可靠性和服务质量。例如在自动驾驶操作系统中,既需要支持车载娱乐满足用户需求, 又需要同时运行自动驾驶任务满足汽车本身驾驶需求,此时,如果车载娱乐的任务干扰了自动驾驶任务,或者影响了整个操作系统的性能,将会引起严重后果,对生命财产安全造成直接损失。

  • 命名

  • 命名数据网络(Named Data Networking,NDN)是一种将数据和服务进行命名和寻址,以P2P和中心化方式相结合进行自组织的一种数据网络。而计算链路的建立,在一定程度上也是数据的关联建立,即数据应该从源到云的传输关系。因此,将NDN引入边缘计算中,通过其建立计算服务的命名并关联数据的流动,从而可以很好地解决计算链路中服务发现的问题。

  • 可编程性

  • 边缘节点组成的计算平台类似于异构平台,边缘节点的计算与存储能力、运行时间、操作系统和支持语言等资源都可能是不同的,这意味着开发者需要根据不同种类边缘设备的资源进行程序开发。在边缘进行分布式计算并与云端协调任务会让应用编程变得更加复杂。


边缘计算知识扩展


熟悉整体边缘计算大框架后,我们根据自身情况会学到不同层面的知识点,在此小结给大家推荐边缘计算相关技术《边缘计算白皮书 3.0》,边缘计算产业联盟也于 2018 年 12 月发布,并提出了边缘计算参考构架 3.0。可深入对边缘计算进行其他问题的熟悉。


结束语


从物联网发展趋势来看,边缘计算成为必然。边缘计算因给物联网领域中的海量数据传输、实时服务响应等复杂挑战提供了新的解决方案,受到了国内外政府、工业界和学术界的高度关注和认可。边缘计算将云计算的计算、存储等能力扩展到了网络边缘,提供低时延、高可用和隐私保护的本地计算服务,解决了云计算时延高、受网络环境制约等问题。随着各行业物联网的应用,相信之后云计算和边缘计算相辅相成,共同赋能物联网业务应用。


本文转载自成哥的世界公众号。


原文链接:https://mp.weixin.qq.com/s/oIGT9-tKKKnHcb8zJ_zynA


2020 年 3 月 16 日 20:35499

评论

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

聊聊:Java

谢烟客

Java 编程 开发者 随笔杂谈 「Java 25周年」

探究vscode debug流程,解决无法运行go程序的问题

simpleapples

golang vscode

如何解决 Kubernetes 的 DNS 延迟问题

倪朋飞

Kubernetes 微服务 云原生

回“疫”录:开篇

小天同学

疫情 回忆录 现实纪录 纪实

你不必读完一本书

池建强

学习 读书

我从来不在朋友圈晒投资人合影,却融了很多钱

邓瑞恒Ryan

高效工作 人脉 职业规划

像黑客一样思考

Fooying

黑客思维 黑客 安全攻防

我的第一个千万阅读量

彭宏豪95

创作 生活 写作

Flink获取kafka中每条消息对应的topic

shengjk1

flink kafka flink 消费 kafka 获取 topic等信息

阿里面试,一面就倒在了Java内存模型上?赶紧来看看

七哥爱编程

面试 Java并发 内存模型

破解 Java Agent 探针黑科技!

谭建

Java JVMTI APM Profile

【SpringBoot】掌握这两个属性,你的测试类可以启动的更快些

遇见

Java Spring Boot Unit Test

关于Iterator和Iterable

shengjk1

Java Iterator和Iterable

2020,这个世界会好吗?

IT民工大叔

读书笔记

极客父母送给孩子的 ABC Book 就是这么 GEEK

魏彬(rockybean)

GEEK BOOK

用你喜欢的 emoji 作为页面的 favicon 吧 🎉

遇见

CSS html favicon emoji

Kubernetes 容器运行时演进

倪朋飞

Kubernetes 容器 云原生

一文搞定 equals 和 hashCode

shengjk1

Java equals vs hashcode

Arduino 蓝牙遥控+超声避障小车

黄耗子皮

树莓派 极客

死磕Java并发编程(1):探究Java并发机制的底层原理

七哥爱编程

Java Java并发 并发编程

三点思考,判断一家公司是否值得加入

邓瑞恒Ryan

高效工作 个人成长 职业

Kubernetes中的CI/CD

倪朋飞

Kubernetes DevOps 微服务

程序员职业鉴赏

陆陆通通

程序员 加班 职业病 鄙视链

Scrum vs Kanban,如何选择

TerryLee

Scrum Kanban 敏捷开发 Worktile 研发管理

Oauth2的认证实战-HA篇

Damon

Java 架构 Kubernetes 微服务架构 Spring Cloud

我如何用 Python 给 Github 的 README.md 做一个访客统计功能

遇见

Python GitHub 开源 badge open-source

一篇文章搞定 java 中的 path 和 classpath

shengjk1

Java classpath vs path classpath path

禁止在构造函数里调用虚函数

喵叔

C# .net 编码习惯

GitHub知错就改,是个好同志

遇见

GitHub

简单到不可能失败 —— 《微习惯》

零和幺

读书笔记

无代码开发

Fenng

全方位剖析边缘计算架构设计以及应用实践-InfoQ