无服务与边缘计算架构介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

无服务与边缘计算架构介绍

Serverless是一个比较新的概念,2017年开始在行业内兴起,边缘计算则是一个更新的技术。那么Serverless在边缘计算中能产生怎样的效果、产品以及形态?今天来为大家分享一下。

什么是Serverless?

首先讲讲Serverless,从下面这张图可清晰地看到,Serverless从架构上可以分成两部分。

一是Backend as a Service,后端即服务,腾讯云上目前已经提供很多这类产品,例如COS对象存储、CMQ消息队列、CDN内容分发、CDB云数据库、API网关,这些产品更多的是承载数据的存储。

二是Function as a Service,函数即服务,也是Serverless比较核心的技术点,腾讯云云函数就属于这种。

从Serverless或者云函数来看,更多是对用户的计算进行托管。用户将代码和配置提交到云函数平台上,此处的代码是指用户的一份代码或者代码包、配置,一个是指本身对于函数运行环境的配置,使用的是哪种环境、所需的内存、超时时间等;另一个是触发器的配置。因为整个函数即服务的运行方式是触发式运行,触发就需要有一个事件来源,而事件来源是和我们其它产品进行关联后而产生。

例如COS对象存储产品,它的关联就在COS的存储桶中,当用户上传一张图片或者删除一张图片时,就会产生一个事件,这个事件会触发云函数的运行;例如和API网关的对接,也可以作为事件来源,在用户的HTTP请求到达网关之后,API网关会把该请求作为事件转发给云函数,触发云函数的运行,云函数拿到请求之后进行处理,生成响应给到用户。

函数计算的特点

上图左侧是代码和配置提交到云函数平台进行保存,真正事件产生后,针对每一个事件都会拉起一个函数实例,实现触发式运行;当真正事件来临时,用户函数才会运行,用户代码运行时才有云函数代码的数据运算和费用计算。

因为函数本身是托管型的,用户本身无法感知到实例在哪里运行。云函数平台背后有个大的计算资源池,用户实例触发之后,我们会从资源池中随机选取可运行的位置,把用户的函数实例在对应位置上跑起来。因此整个调度过程或事件来临之后的函数扩缩容过程,都是由平台进行的。对用户来说,调度的粒度更细了,而且调度也都托管给平台了。

而从整个计算过程来说,为什么会有这种产品的出现?对于传统的数据存储过程来说,数据产生后,更多会先把数据进行缓存或者存储,如以对象存储文件的形式保存,或在数据库中以结构化形式存储下来,再进行分析应用。有了函数服务产品后,我们可以有一个很大的加速,可以在事件产生时就立刻对数据进行处理,因此就变成了先处理,再对结果进行保存使用的过程。

计算靠近数据

那么,还能不能缩短中间数据产生到数据处理的传递过程呢?

对于传统应用来说,数据在用户那里产生,传到云上进行处理,再进行相应的存储。这里说的缩短距离实际是把处理过程更加靠近用户,靠近用户就可以认为是边缘计算的过程。并且这里的靠近用户指的并不是加速网络速度,而是更多把计算下发,放到更靠近用户的位置。

边缘计算

之前无论使用容器或主机,运算能力都是在云上提供,而边缘计算要做的事情是把运算能力下发到云之外去。

边缘计算的理念,就是把计算能力下发更靠近真正的用户,更加靠近设备这一端。

为什么会有这种需求的产生?

随着互联网以及物联网的迅速发展,接入的用户越来越多,设备也越来越多,在这种情况下,产生的数据量也越来越多。无论是个人用户,还是物联网接入设备,每时每刻都在产生大量的数据。数据不断增多的情况下,也同时要求我们对于用户的响应、设备响应越来越快,本身设备的计算能力也要越来越强。

10年前的一台PC都比不上现在一台智能手机的处理能力,设备的计算能力在越来越强的情况下,实现了把计算能力下发到更加边缘的位置的能力。

云函数目前在做的探索,可从两方面出发。

一是物联网方向,物联网主要是和设备打交道,实现设备上的边缘计算;从云函数本身的特点来讲,它属于触发型运算,真正数据产生之后才会拉起运算。云函数交由平台托管的调度,可以把云函数调度到用户设备上去。

二是把云函数调度到CDN的节点上去,虽然CDN可以认为是云的一部分,但CDN本身已经很靠近用户,CDN节点实际上已经在云的边缘。

IOT探索

接下来给大家做一个和物联网相关的效果演示。

先简单介绍一下几款设备,第一个是树莓派,熟悉物联网的同学一般都了解;第二个是光感的传感器,可以感测环境光,从中读取到环境光的流明值;第三个是LED灯。

目前这个设备已经跑起来了,它所做的事情是当环境光足够亮的情况下,LED灯就会暗掉,当环境光足够暗的情况下,LED灯会亮起来。从演示过程可看到,当我把光感器遮盖时,LED灯有一个亮起来的动作。目前的环境光和背景足够亮,当我打开时,因为光足够亮,所以LED灯会灭掉。

针对刚刚演示过程中的代码,我给大家做一个解释。首先可以看到目前在树莓派上跑的一段函数,已经下到树莓派上跑了,在网上看到的是线上的代码。接下来我会对代码进行修改,从代码中大家可以看到,当从传感器中读出的流明值足够大时,GPIO做拉高或者拉低的动作,目前是正常的表现。

刚刚我完成了一个修改,现在我要把代码下发到仪器上运行,同时把这里拉起,查看数值是否正确。下面不断刷新的就是传感器出来的流明值,目前传感器已经变化了,因为大家可以看到这个数值已经超过了200,LED灯是亮着的,当我把感光器遮盖以后,LED灯变暗,这是通过代码把行为做了反转的变化。

我们在目前的调试过程中也会做实际的设备调试,这里演示的就是真正把云函数下放到物理设备上进行执行的效果。

AI能力

接下来讲的是目前腾讯云函数和用户协同推进的AI能力,用户数据只要在腾讯云上利用CVM、GPU服务器、腾讯TML机器学习,进行AI训练,得出相应的训练后模型,再把模型和外围的导入代码进行打包,放入云函数或者是带有GPU的云函数,就可以对外提供AI的推理能力。用户真正使用AI时,从外面送过来一段用户需要推理的语音、文本或图像,在云函数中拉起训练模型,就可以对这段数据进行推理。

11

相关文档
最新文档