开发者学堂课程【高校精品课-上海交通大学-企业级应用体系架构:Cloud Computing 2】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/75/detail/15849
Cloud Computing 2(二)
内容介绍:
一、 边缘计算
二、云端融合的系统
三、cloud
四、延迟
五、能量
六、成本问题
四、延迟
延迟,那么延迟指的是什么?比如刚才讲的一种场景,是延迟变快了,就变小了,云会把任务发给端边缘,大家一起分析这视频,这个速度是快。但是在另外一种场景之下就慢,比如现在不是要实时的去找这个小孩在哪里,是需要统计一下当前在这个商场里有多少个人。为什么会慢了?原来是把所有的数据全部汇到云里面,实时的在做处理,就知道每个摄像头里面有多少人。现在需要的是,比如从今天早上8:00~12:00,商场里平均的客流量是多少?如果是这样一个数据,在边缘这个场景之下,数据都在边缘存放,是把请求发出去之后,每个人统计完告诉我,但是如果去做一个全局的处理,就是所有的数据其实全部汇聚到云端,现在云端它在处理每时每刻。当做这种统计的时候,就把每5分钟统计出来的人数累加一下就可以得到结果。
相比前面这种处理方式,后面这个显然快,因为它不再需要边缘去再去做统计,然后拿回来汇总,所有数据全部都在云端做,而且云端之前已经做过,每5分钟就统计过一次,比如这5分钟有100人,下5分钟有200人等等,这种数字性的东西,做一次累加,在云端做会显得更快。所以在这种场景之下就会看到它可能就会显得会更快了。
并不是所有的场景都适合把数据推到这个边缘去做,那有一部分场景还是要适合在云端直接去做。带宽也是要考虑的一个问题,在使用带宽的时候要考虑原来的设备,它是时时刻刻把数据都推回来,这对带宽的占用一直很高,尤其在商场营业期间的高峰期,就会显得压力很大。
但是如果把这个数据,云这个边缘端去暂存一下,只要把指定的报警信息,比如发现了不明的物体没人看管的物体,把报警信息发送,然后到夜里面,商场关门之后,把录像结果一次性传出。这时候会看到在整个商场营业期间带宽占用并不多,只是在晚上反正也没有人用了,才把数据传过来,这种情况下带宽的使用就是一种优化的使用。
所以做这种云端融合就要考虑到优化要怎么做,就跟延迟一样,不同的场景要用不同的解决方案。
五、能量
刚才的手机,在做事情的时候,为什么会觉得很多事情做不了,手机的电池是有限的。例如最近的 Iphone 出来只有1800毫安时,手机端能做的事情非常有限,在跟它类似的只要是边缘设备,比如一些 fid 的补卡器或者是其它什么东西,它都会显示出电池是一种很宝贵的资源,要节约使用。在这种情况下,所以要去考虑到底是计算,还是把数据发走,这两件事情都会发生电源的消耗。到底是在本地计算它的能量消耗大,还是把它发走消耗大,这件事也不是一个定论,比如当在靠近基站的时候,就会发现传输的能量消耗就比较小,因为跟基站靠得近;当和基站靠得远的时候,它的消耗就会变得比较大,所以要根据实际的情况去决定这个任务到底是在本地做,就是传输的能量比计算能量要大,在本地做;还是发走做,也就是传输能量比计算能量小,还是一部分任务在本地做,一部分任务给它推走,这就是要考虑的问题。
六、成本问题
很显然如果这些东西都是收费的,不是免费的,就要考虑互相之间成本是什么关系。也就是把一部分推走给云去做,一部分在本地做,总开销是多大。
在边缘计算里面,总结出来一个术语表,就是一个分类,分为好几个:
一个是比较熟悉的就是接入的技术,是 WiFi、3G、4G 还是5G 还是什么新的 WiFi 等等。然后会有一些应用,在应用在边缘计算场景下应用就会有计算的卸载,协作计算,外文内容的优化,内存的副本,还有内容的传递,这些可以看到刚才的云端融合能够实现的一些场景。
目标是有最小化延迟或者最小化能量消耗或者最小化案的成本,最大化的吞吐量等等。
计算平台是包含了语音边缘服务器以及移动设备。用到的关键的基础有云和虚拟化。大量在云端的服务器,网络的拓扑,网络技术,网络拓扑加上它的通讯技术,软件的开发包,手持设备。这是参与者,就比较简单。还有特性,比如它的近似性,物理上分布的密度等等,这是在 VI 计算里面产生的,就是它涉及到就像软件工程的研究领域一样,它也对边缘计算涉及到的这些研究领域做了一个划分,包含的这些技术。
这些东西都比较抽象,举一个实际的例子:计算负载到底怎么去实现的。从用户的角度来,就是想节约能量,并且计算的速度加快。
举例如下:
有三个终端, UE 就是三个手机用户,对于第一个用户来,会发现它的计算任务比较复杂,底下是红色的比较复杂,发现其实计算任务,离这个基站比较远,要传输给基站让它去处理的话,传输代价可能都会比本地处理的代价大,比如耗能多,所以在这种情况下,就在本地执行。
第二个用户是靠基站非常近,传输的代价会非常小,而电量也快没了。在这种情况下,不如把这个数据推到边缘服务器,让边缘服务器去做,本地就不做,这就叫完全卸载,就把它全卸载走。
第三个用户手机电量有一半,但处理的任务比较多,不是不能处理,手机还能处理一部分。于是把一部分数据拿出来放到基站上,另外一部分在本地做,处理完之后把结果和本地处理的结果合并,这就是部分卸载,是在边缘计算里看到的三种情况。
所谓的全部卸载和部分卸载就是指,要么是最小化执行的时间,要么是最小化能量的消耗,在满足执行时间的约束,比如要求三秒处理完,在满足三秒处理完的情况下,怎么样最小化的能源消耗,在两者之间做一个权衡。进行分配的时候,是全部在本地做,还是全部卸载或者是部分卸载?三个方法,就是在计算的延迟和能量消耗之间做权衡,要么最小化其中一个,要么就是在中间找一个平衡点,考虑的一些因素有哪一些呢?比如如何来分配计算节点?
当在蓝颜色终端用户1,在访问基站的时候,基站现在有一些资源分配给一个虚拟机,处理这里的数据,当UE2同时访问基站的时候,基站就会发现资源已经分配完了,没有额外的资源能给分配,要告诉另外一个基站,给分配一些资源。能够直连的基站有两个,但一个网络开销导致它的延迟比较大,另外一个延迟比较低,就会优选 SCeNB3这一个基站,基站上开一个虚拟机给UE2,UE2的内容就会通过基站转发到这边,也就是有传输的带宽,但没有计算能力,所以让数据传到这边来,然后用SCeNB3的能力,来帮忙处理,这就是在若干个基站之间在请求资源的时候分配的逻辑。
如果系统变得比复杂,比如有5个用户要求要分配资源,1、2、4、5、6资源比较少,接入基站里,但是3不太一样,当12456全部都分配好之后,发现基站一已经占满,基站三剩一部分,基站二也剩一部分,这两部分都不足以支持UE3,就把 UE3请求的资源再分解,两个基站上分配的虚拟资源合起来能够满足 UE3的资源的要求,这就是的在多个节点上给分配资源。这些事情对于用户来应该是透明的,这些事情是需要这些基站之间做协作来完成的。要注意是在整个过程当中,没有一个中心云的概念,这些事情全部在边缘发生,不需要把请求发回到中心里面去,就在边缘几个设备之间互相一协作就完成了,所以刚才看到听起来在云和端之间去做协作挺简单,但实际上把它拆开来看,问题不是那么简单了,涉及到的这种资源分配,就需要在边缘端互相协作来完成。
能量控制是什么意思?
比如一般的手机,在跟基站在一定范围内通信的时候,能耗非常小,而且能耗和距离之间没有太大关系,基本上是个常数。比如在黑色的圈里面,它的用户和基站连接的时候,无论在圈的范围是什么地方,它的能耗开销都是一样的,但一旦出了这个黑色圈之外,比如在绿色圈里头,和基站通信的时候,能耗和距离之间就成正比,超出绿圈之外就不是线性的,可能指数级增加。
回到刚才的问题,UE3一部分给2和3的时候,还得考虑要满足它的能量的消耗,所以可能还有个4,没有在4上面再找一部分资源分配给用户层。所以能量控制和手机的设计原理和通信原理就相关。
手机它是移动,比如它在这连接了基站,申请了个资源,这个任务丢上去,比如要做刚才的 AI 换脸的动作,资源发上去之后,在处理,但这个时候可能已经走远了,等走到一段的时候,这一个数据处理完了,怎么把结果给上去,是不是要把虚拟机迁移到当前它连接的基站这个地方,才能把结果给了,否则的话没有办法给。因为和基站已经不连了,在跟底下基站连,怎么做迁移就是个问题。所以虚拟机的迁移就很重要,要知道往哪里迁,其次以快速的方式迁,这个过程当中需不需要中心云来介入,这都是要考虑的问题。
在刚才的处理的过程当中,一个终端,接触到数据之后,是做虚拟器的迁移还是做路径的选择?比如一个中心的节点,想跟终端进行通信,把数据给到的时候,在这三个当中选择哪一个比较好,还是三个都可以跟着手机相连,可以把数据给发过来,路径选择怎么样是最合理的,相当于现在的方向是反过来。刚才是从上面要把数据推下来,让下面来做,应该怎么去选择这个路径,这个是底下把任务推上来,怎么把结果给了。