我是靠谱客的博主 开朗柚子,最近开发中收集的这篇文章主要介绍边缘计算框架工程与实践-阅读笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


 -------------------------------------边缘计算概述---------------------------------------------------------------
边缘计算的历史:
  1.  Akamai公司定义了内容分发网络(Conetent Delivery Network CDN)被认为是最早起源。
   CDN:提出在终端用户附近设立传输节点,用于存储静态数据,如图像、视频等。边缘计算允许节点参与并执行基本的计算任务。
2. Cyber foragintg 边缘计算用于移动技术的语音识别,如谷歌语音识别和苹果SIRI

3.  1999年点对点计算
4. 2006 Cloudlets 分布式云元素

2013 思科提出了 “雾计算”:中心思想是提升互联网可扩展性的分布式云计算基础设施。
2014 ETSI成立移动边缘计算规范小组,推动边缘计算标准化。旨在为实现计算及存储资源的弹性利用,将云计算平台从移动核心网络内部
迁移到移动接入边缘。
2016年 ETSI 提出了把移动边缘计算扩展为多接入边缘计算(Multi-Acess Edge Computing MEC)将边缘计算从电信蜂窝网络延伸
至其他无线接入网络。自此,MEC成为一个可以运行在移动网络边缘的执行特定任务计算的云服务器。

边缘计算的典型模型:
在计算模型的演进过程中,边缘计算紧随面向数据的计算模型发展。
在面向数据的边缘计算模型研究中,典型的有: 分布式数据库模型、P2P(Peer to Peer)模型、CDN模型、移动边缘计算模型、雾计算模型
及海云计算模型。
 P2P模型:对等网络。没有专用服务器也没有专用工作站,每台计算机既可以做为服务器也可以作为工作站。当前的通信模式有Client/server
、Browse/Server、Slave/Master等,。这些通信模式共同特点是需要有一个SERVER,而在对等网络中可以直接通信。

P2P的特点:非中心化、可扩展性、健壮性、高性价比及隐私保护。
非中心化:所有节点上分散网络资源和网络服务,无需中间服务器介入。
健壮性:耐攻击和高容错。

CDN:提出网络边缘。改进性的 ACDN 主动CDN. 典型案例:清华大学团队的边缘视频CDN
和早期提出的边缘计算不同,早期的“边缘”仅限于分布在世界各地的CDN缓存服务器,现在的边缘计算早已超出了CDN 的范畴,边缘计算模型的
的"边缘"已经从边缘节点进化到了从数据源到云计算中心路径之间的任意计算、存储和网络资源。

雾计算:雾计算在云和移动设备之间引入中间层,而中间层是由部署在网络边缘的雾服务器组成的“雾层”。云计算中心和移动用户之间的多次通信
可以通过雾计算成功被避免。通过雾计算服务器,主干链路的带宽负载和耗能可以显著减少。当移动用户量巨大时,一些特定的服务请求
可以通过访问雾计算服务器中的缓存内容来完成。此外,因为雾计算服务器和云计算中心可以互联,所以云计算中心强大的计算能力和丰富的
应用及服务可以被雾计算服务器使用。
由于概念上的相似性,雾计算和边缘计算在很多场合可以来表示或相似的一个意思。两者的区别是雾计算关注后端分布式共享资源的管理,
而边缘计算在强调边缘基础设施和边缘设备的同时,更关心边缘智能的设计和实现。


海云计算模型:
在万物互联背景下,应对ZB级数据,2012年中科院启动10年战略优先研究倡议,主旨是开展“海云计算系统项目”的研究。核心是通过“云计算”和“海计算”
系统的协同和集成,增强传统的云计算能力。“海”指人类本身、物理世界的设备和子系统组成的终端(客户端)。

海云计算系统项目:研究内容主要包括从整体系统结构层、数据中心级服务器及存储系统层、处理器芯片级等角度提出系统级解决方案,以实现面向ZB级数据处理
的能效比现有技术提高1000倍的中心目标。


多源异构数据  物联网层的感知层数据处于海量级别,数据具有很强的冗余性、相关性、实时性和多源异构性,数据之间存在着频繁的冲突与合作。


人: 从数据消费者-》数据生产者和数据消费者。
行业智能化势必驱动边缘计算发展。 
边缘计算商业化落地。
中国数字化转型的新一轮变革。
云端业务下沉。
商业案例:阿里搞得智慧城市、百度的“AI ove Edge”
三大运营商与互联网厂商合作 通过MEC提升边缘能力。

云计算核心服务包含:基础设施即服务 IAAS  平台及即服务  PAAS 和软件即服务 SAAS。
互联网厂商也把边缘计算中心称为边缘云,主要提供计算啊、存储、网络转发资源,是整个“云-边-端协同”架构的核心组件之一。
作为物联世界到数字世界的桥梁。边缘计算是数据的第一入口,可基于数据全生命周期进行管理与价值创造。


边缘计算的基本特点和属性:连接性、数据入口、约束性、分布性等其他略。
分布性:边缘计算实际部署天然具备分布式特征。这要求边缘计算支持分布式计算与存储、实现分布式资源的动态调度与统一管理、支撑分布
式智能、具备分布式安全等能力。


基于容器的边缘计算解决方案。
百度:开源边缘计算框架OpenEdge   采用docker快速部署。
阿里、金山云、华为 、aws ...

 -------------------------------------边缘计算基础资源架构技术---------------------------------------------------------------

时间敏感网络TSN 和软件定义网络SDN 技术是边缘计算网络部分的重要基础资源。
异构计算支持是边缘计算模块的技术关键,。
什么是异构计算。 分布式存储、时序数据库。
大数据分析有两种主要的实现模式:数据建模和实时处理。边缘人工智能提供了最有价值的实时处理。消费者画像统计  人物画像统计 
边缘计算将提供AI能力,边缘智能称为智能设备的支撑体。
大多数物联网设备使用传统处理器芯片,但是传统的指令集和内存架构并不适合端设备需要执行的所有任务。
例如,深度神经网络(DNN)的性能通常受到内存带宽的限制,并非受到处理能力的限制。


AI 算法玩家:商汤科技 旷世科技
   终端玩家:海康威视 安防领域
   算力玩家:AI芯片 华为 谷歌-Edge TPU
 
边缘计算基础资源架构准则:
1. 低时延 
   对于深度学习,处理推理算法、对称加密、非对称加密等计算密集型业务是 标准的CPU平台没有太大优势,需要异构的计算平台。例如基于FPGA、GPU、NPU的加速卡来卸载这些操作,
   以缩短计算时间,提升响应速度。
 2.  异构计算:异构计算的核心点在于“异构”二字,说白了就是用不同制程架构、不同指令集、不同功能的硬件组合起来解决问题,这就是异构计算。
   说到异构计算,其实对于了解电脑行业的人来说并不陌生。随着计算向多元化发展,越来越多的场景开始引入CPU、DSP、GPU、ASIC、FPGA等多种不同计算单元来进行加速计算
为什么要用异构计算?

那么为什么要用不同制程架构的硬件,而不用同一制程架构的硬件来解决问题呢?

这其中其实可能有不少人存在一定的误解,把半导体芯片与CPU划等号。但其实半导体芯片制程、工艺包含的不只是处理器,还包括存储、通信、图形等芯片。而每一种芯片并不完全是由一家厂商设计、生产、封装,各家技术实力不同,那么在各自领域推进芯片制程工艺的速度就不同。比如处理器芯片进入14nm制程节点,但GPU芯片可能还在22nm制程节点,通信芯片可能还在28nm制程节点,且不同芯片之间的架构不同,所以如果没有异构技术的话,很难将这些不同规格的芯片封装到一个主板上使用。

异构计算有哪些种类?(构成方式来看)

异构计算并非什么新兴技术,从上世纪80年代开始,异构计算就已经出现并开始逐渐被尝试投入到实际应用领域。以往异构计算主要分为两种:
另外一种是板级集成异构计算。

二者顾名思义,芯片级(SoC)异构计算就是将不同制程、不同架构的芯片进行异构来解决计算问题。比如去年英特尔在冥王峡谷上推出的KabyLake-G平台,就是将英特尔处理器与AMD Radeon RX Vega M GPU进行异构,来解决运算和图形计算问题。

板级异构计算同样很好理解,就是将不同功能的主板进行异构,通过高带宽连接来解决计算问题。
板级异构计算同样很好理解,就是将不同功能的主板进行异构,通过高带宽连接来解决计算问题。

3. 负载整合和业务编排:
基于虚拟化和容器实现多负载整合成为业界发展的趋势。


边缘计算架构
1. 边缘计算架构组成:服务器、异构计算、虚拟机和容器
虚拟机的几G 占内存较大,安全隔离更高。容器具有轻量化,毫秒级,启动时间短,方便及时安装和部署。一个应用的所有功能再也不需要放在一个单独的容器内,而是可以通过微服务的方式
将应用分割成多个模块 并分布在不同的容器内,这样更容易进行细粒度的管理。在需要对应用进行修改的时候,不需要重新编译整个应用,而只要改变单个模块即可。

容器管理器例如Kubernetes支持自动化部署、大规模可升缩、应用容器化管理等用于管理边缘端多个主机上的容器化应用。

边缘计算平台架构:计算 网络 存储 虚拟化
时序数据库TSDB 时序数据库需要不断插入新的时序数据,而不是更新原有数据。
整个系统最关键的三个因素:处理器 算法 存储器。
内存不够:模型压缩,FLASH存储模型权重信息。有些IOT终端不适合增加DRAM. 边缘计算将会催生新内存器件如MRAM、ReRAM.

SDN 软件定义网络  
OpenFlow是一种网络通信协议,应用于SDN架构中控制器和转发器之间的通信。软件定义网络SDN的一个核心思想就是“转发、控制分离”,
要实现转、控分离,就需要在控制器与转发器之间建立一个通信接口标准,允许控制器直接访问和控制转发器的转发平面。
OpenFlow引入了“流表”的概念,转发器通过流表来指导数据包的转发。控制器正是通过OpenFlow提供的接口在转发器上部署相应的流表,
从而实现对转发平面的控制。


NFV network function virtualization 是指网络功能虚拟化 。
边缘存储:就是把数据直接存储在数据采集点或者靠近的边缘计算节点上,例如MEC服务器或者CDN服务器。边缘存储一般采用分布式存储,也称为去中心化存储。


开源的InfluxDB


边缘计算软件架构:
主要包括与设备无关的微服务、容器及虚拟化技术、云端无服务化套件等。

云原声:
随着计算能力的提高和软件需求的复杂化,大型软件的开发需要不同的软件团队协作完成。为了保证能够满足需求并提高软件的复用性,面向对象和统一建模语言成了软件架构设计的主流。
云计算的诞生给软件开发的架构和方法带来了新的挑战,例如如何使得软件设计符合负载的弹性需求?如何快速使用集群扩展能力解决系统性能瓶颈以实现水平扩容?如何使用敏捷开发
模式快速迭代、开发、部署应用程序以达到高效的交付?如何使得基础设施服务化并按量支付?如何使得故障得到及时隔离并自动恢复?
于是Matt Stine 提出了云原声概念,它是一套设计思想、管理方法的集合。包括DevOps、持续交付、微服务、敏捷基础设施、康威定律等,以及根据商业能力对公司进行重组。


云原生 采用 容器化和微服务。

MEC 多接入边缘计算。
以Docker为主的容器技术是边缘设备上微服务的运行环境,并不需要特殊的虚拟化支持。
以Docker为主的容器技术逐渐成为边缘计算的技术标准,各大云计算厂商都选择容器技术构建边缘计算平台的底层技术栈。

边缘计算不是传统意义上的只负责数据收集转发的网关,而是能产生可操作的决策反馈,用来反向控制设备端。


随着Kubernetes已经成为容器编排和调度的事实标准,各大公有云厂商都已经基于Kubernetes提供了完善的Kubernetes云上托管服务。


而Kubernetes由于屏蔽了底层架构的差异性,可以帮助应用平滑地运行在不同的基础设施上的特性,云上的Kubernetes服务也在考虑拓展其服务边界,云原生和边缘计算结合的想法自然就呼之欲出了。

目前国内各个公有云厂商也都开源了各自基于Kubernetes的边缘计算云原生项目。如华为云的KubeEdge,阿里云的OpenYurt,腾讯云的SuperEdge


Kubernetes无疑是容器编排领域的领头羊。但目前,我们看到K3s或轻量级的Kubernetes发行版,轻巧、高效、快速,占用空间极小。
K8s是一个通用的容器编排器

多源异构性


https://zhuanlan.zhihu.com/p/150190166  云原生
何谓云原生?
技术的变革,一定是思想先行,云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。
云原生(CloudNative)是一个组合词,Cloud+Native。Cloud表示应用程序位于云中,而不是传统的数据中心;
Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,
在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。
Matt Stine在《迁移到云原生架构》一书中定义了符合云原生架构的几个特征:12因素、微服务、
自敏捷架构、基于API协作、扛脆弱性;到了2017年,Matt Stine在接受InfoQ采访时又改了口风,
将云原生架构归纳为模块化、可观察、可部署、可测试、可替换、
可处理6特质;而Pivotal最新官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器。


选一个我最容易记住和理解的定义:DevOps+持续交付+微服务+容器。
总而言之,符合云原生架构的应用程序应该是:采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,
借助敏捷方法、DevOps支持持续迭代和运维自动化,
利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

微服务:几乎每个云原生的定义都包含微服务,跟微服务相对的是单体应用,微服务有理论基础,那就是康威定律,指导服务怎么切分,很玄乎,凡是能称为理论定律的都简单明白不了,不然就忒没b格,大概意思是组织架构决定产品形态,不知道跟马克思的生产关系影响生产力有无关系。

微服务架构的好处就是按function切了之后,服务解耦,内聚更强,变更更易;另一个划分服务的技巧据说是依据DDD来搞。

容器化:Docker是应用最为广泛的容器引擎,在思科谷歌等公司的基础设施中大量使用,是基于LXC技术搞的,容器化为微服务提供实施保障,起到应用隔离作用,K8S是容器编排系统,用于容器管理,容器间的负载均衡,谷歌搞的,Docker和K8S都采用Go编写,都是好东西。

DevOps:这是个组合词,Dev+Ops,就是开发和运维合体,不像开发和产品,经常刀刃相见,实际上DevOps应该还包括测试,DevOps是一个敏捷思维,是一个沟通文化,也是组织形式,为云原生提供持续交付能力。

持续交付:持续交付是不误时开发,不停机更新,小步快跑,反传统瀑布式开发模型,这要求开发版本和稳定版本并存,其实需要很多流程和工具支撑。


可见,要转向云原生应用需要以新的云原生方法开展工作,
云原生包括很多方面:基础架构服务、虚拟化、容器化、容器编排、
微服务。幸运的是,开源社区在云原生应用方面做出了大量卓有成效的工作,
很多开源的框架和设施可以通过拿来主义直接用,2013年Docker推出并很快成为容器事实标准,
随后围绕容器编排的混战中,2017年诞生的k8s很快脱颖而出,而这些技术极大的降低了开发云原生应用的技术门槛。

应用场景

 云边端协同业务主要有以下业务场景。 
AI业务场景:如AI视频监控-监控视频产生大量的数据,同时AI视频分析需要大量的计算能力。
如果在终端上进行视频AI分析,会大量消耗端的算力,终端无可避免的需要庞大的体积来承载这些算力;
又如果将AI计算放在云中心,又将面临高昂的视频传输成本。这时候,终端算力上移、云端算力下沉,在边缘形成算力融合
在云上训练,边缘执行。即充分发挥云计算海量资源的优势,将 AI 模型的训练放在云端,而 AI 的执行则贴近设备侧,提高AI的执行效率与速度。 
边缘分发:将业务内容下发到离用户近的边缘节点,让用户可以就近访问需要的内容,不必去中心云访问内容,减少了传输时延,提升用户的业务体验,
同时,缓解传统架构中网络压力,减少了中心云的带宽成本。 VR云渲染:在云端对VR内容进行渲染,对VR内容延迟响应要求及带宽需求极高,
当渲染延迟大于30ms时,会使用户感到眩晕,同时会造成VR内容视野内出现黑边。通过将渲染平台部署到边缘,实现渲染计算资源在边缘完成回传给用户,
减少了网络传输时延,实现业务的稳定。 


云端:视频传输成本高昂  端:算力不够  边:云端训练好的模型,部署在边,算力好。


Kubernetes已经成为云原生的主流选择。


把 Kubernetes 从云端延伸到边缘,目前有三个开源项目讨论较多,分别是OpenYurt、 KubeEdge 和 K3S三个开源框架。 

OpenYurt 是一款云原生边缘计算框架,由阿里云开源
KubeEdge是基于Kubernetes构建的云边协同开源框架,可将容器化应用扩展到边缘端设备
K3S是由Rancher公司开源的一套基于Kubernetes的轻量化云原生框架。
K3S 的所有组件(包括 Server 和 Agent)都运行在边缘,因此不涉及云边协同。

KubeEdge 名字来源于 Kube + Edge,是面向边缘计算场景、专为边云协同设计的业界首个云原生边缘计算框架,在 Kubernetes 原生的容器编排调度能力之上实现了边云之间的应用协同、资源协同、数据协同和设备协同等能力,完整打通了边缘计算中云、边、设备协同的场景。

KubeEdge 于 2019 年 3 月正式进入 CNCF 成为沙箱级项目(Sandbox),也成为 CNCF 首个云原生边缘计算项目。并于 2020 年 9 月晋升为孵化级项目(Incubating),成为 CNCF 首个孵化的云原生边缘计算项目。


K3S   Rancher Labs的开源产品。K3s是在边缘运行整个K8s集群的方案,不具备云边协同的能力;
其次K3s虽然对K8s做了轻量化,但整体资源要求仍然较高,无法运行在IOT Hub、工业网关等小型设备中。

http://t.zoukankan.com/wsjhk-p-12103998.html 边缘计算开源方案对比


 

最后

以上就是开朗柚子为你收集整理的边缘计算框架工程与实践-阅读笔记的全部内容,希望文章能够帮你解决边缘计算框架工程与实践-阅读笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(90)

评论列表共有 0 条评论

立即
投稿
返回
顶部