边缘计算现状与未来
自2015年,《Edge-centric computing: Vision and challenges》Garcia Lopez, P., Montresor, A., Epema, D., Datta, A.等人提出边缘为中心的计算以来,边缘计算连续多年被全球领先的信息技术研究和顾问公司Gartner评为会十大战略科技发展趋势之一。边缘计算在什么样的背景下被提出?现状如何?未来又会走向何方?
边缘计算被提出的背景
随着5G、AR/VR、高清视频、自动驾驶等新业务的孕育兴起,电信 网络正在面临实时计算能力、超低时延、超大带宽等新的挑战。促进边缘计算产业发展,构建健康的生态环境,才能使终端用户获取新业务带来的极致体验,更加丰富的应用以及更安全可靠的使用。近年来,包括移动运营商、网络设备供应商、应用开发商,内容提供商在内的产业链各方纷纷加速移动边缘计算推进,促使这一技术获得了快速发展。移动边缘计算源自技术实践和商业实践,不仅是一项新兴技术和部署方式,更是很多行业实现弯道超车的机遇。
目前很多研究机构制定了针对边缘计算的专项计划,斯坦佛大学的PlatformLab、卡内基梅陇大学的Open Edge Computing基金会等;互联网企业也针对边缘计算推出了相关产品,亚马逊的AWS GreenGrass Core、微软的Azure Functions on IoI Edge、阿里巴巴的Link Edge、百度的IoT Intelligent Edge。除此之外,全球范围的各大通信运营商也都陆续发布了边缘计算白皮书。
边缘计算现状
从边缘计算刚被提出时,人们不清楚边缘计算是用来干什么的,到后面人们认为边缘计算可能会取代云计算,经过长期的讨论和梳理,到现在人们普遍认同了:
- 边缘计算是在联网设备越来越多的趋势下,在靠近数据源的地方就进处理数据的,这样无需将所有的数据都传到云端去,从而节省了带宽,降低了网络传输的压力;数据就近处理,省去了数据在网络上来回传输时间,从而降低了延迟,给用户带来更极致的体验;不将数据传输到公网去处理,从而降低了数据被泄漏的风险,更好地保护了用户数据的隐私;
- 边缘计算与云计算之间不是取代关系,而是相互补充的关系;边缘计算用来处理延迟低、隐私要求高的高实时性、高安全性数据;云计算用来处理延迟要求不太高、计算密集型的web服务任务和离线计算任务;
到此,可以确定人们普遍已经清楚边缘计算是什么,能够干什么了。但遗憾的是,边缘计算还没有一个事实上的标准,整体还处在一个群雄逐鹿的状态。从实现方式的维度,边缘计算业界大致可以分为如下3类:
- 云+端 :边缘和终端的设备全部连接到云上去,云作为控制平面管理边缘上的所有负载;在这种方案下,边缘上的计算能力比较弱,其实更像传统的物联网;
- 云+移植的边+端:各厂商根据各自在云技术栈的积累,将云的框架移植到边缘上来,从而实现了云、边、端协同的功能,使边缘有了较强的计算能力,同时也具有了在边缘上的集群管理和编排功能;但这种方案都是厂商各自为政,很难统一;
- 开源的云+边+端:基于开源社区里的云、边、端解决方案实现的云、边、端协同,从开源社区的活跃度判断云是kubernetes,边是kubeedge,端是edgexfoundry,但目前还都比较初级;
笔者比较看好第3类解决方案,也就是云用kubernetes,边用kubeedge,端用edgexfoundry,虽然该方案还比较初级,存在很多问题,但个人觉得以目前的社区基础和开放的态度,是有可能打造出一套稳定的云、边、端协同、侧重边缘的边缘计算方案的。
边缘计算未来
无论从人们对边缘计算的认知还是从边缘计算的现状来看,还都是侧重云计算的,这主要体现在计算框架和编程语言上:
- 计算框架 目前边缘计算的框架是根据现有的云计算框架进行定制,甚至直接将云计算框架移植到边缘;
- 编程语言 目前边缘计算编程语言还是沿用的云计算的编程语言,也就是云原生编程语言golang;
从长远来看,笔者认为首先要有一种面向边缘的编程语言出现,然后根据该语言开发边缘所需的计算框架,到此才算是到了真正的边缘计算时代,针对面向边缘的编程语言和计算框架,笔者只对面向边缘的编程语言做以下建议和预测:
笔者认为面向边缘的编程语言要具有能够开发出足够轻量级的应用、可移植性强、速度要足够快、要能做到内存安全、语言层面要能够支持并发和分布式,针对以上面向边缘的编程语言这些特性,笔者觉得Rust这种语言有成为未来面向边缘的编程语言的潜力。
以上所有观点仅代表我们之江实验室端边云操作系统团队的看法,有不恰当或存疑的地方欢迎评论区留言,或加入我们“之江实验室kubeedge源码分析群“微信群一块讨论!!!
