腾讯云微计算实践:从 Serverless 说起,谈谈边缘计算的未来

阅读数:193 2019 年 10 月 24 日 23:09

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

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

首先讲讲 Serverless 是什么?下面这张图可以很清晰的看到,Serverless 从架构上可以分成两部分。

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

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

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

从 Serverless 或者云函数来看,更多是对用户的计算进行托管。用户将代码和配置提交到云函数平台上,此处的代码是指用户的一份代码或者代码包,配置,一个是指本身对于函数运行环境的配置,使用的是哪种环境、所需的内存、超时时间等;另一个是触发器的配置。因为整个函数即服务的运行方式是触发式运行,触发就需要有一个事件来源,而事件来源是和腾讯云其他产品进行关联后而产生。例如 COS 对象存储产品,它的关联就在 COS 的存储桶中,当用户上传一张图片或者删除一张图片时,就会产生一个事件,这个事件会触发云函数的运行;例如和 API 网关的对接,也可以作为事件来源,在用户的 HTTP 请求到达网关之后,API 网关会把该请求作为事件转发给云函数,触发云函数的运行,云函数拿到请求之后进行处理,生成响应给到用户。

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

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

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

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

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

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

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

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

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

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

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

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

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

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

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

云函数目前在做的探索,从两方面出发。一是物联网方向,物联网主要是和设备打交道,实现设备上的边缘计算;从云函数本身的特点来讲,它属于触发型运算,真正数据产生之后才会拉起运算。云函数交由平台托管的调度,可以把云函数调度到用户设备上去,二把云函数调度到 CDN 的节点上去,虽然 CDN 可以认为是云的一部分,但 CDN 本身已经很靠近用户,CDN 节点实际上已经在云的边缘。

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

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

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

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

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

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

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

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

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

AI 能力表面上看起来和边缘计算没有关系,其实不然。如果本身已经在物联网的边缘设计上具有了云函数的执行能力,那么是不是可以进一步考虑把 AI 能力下发到设备上去的,比如我们在云中进行数据的收集和训练,生成模型之后,利用模型更新云上的函数,然后可以利用一键下发把这种能力下发到设备中,使设备具备更强的 AI 能力。

通过这种方式可以让更多的设备接入 AI 能力,比如让家里的摄象头直接识别人脸,认识你的家人,或者让更多的医疗设备直接对医疗检查结果做出判断,识别疾病类型等。这些都将会是后期持续和各个物联网厂商进行摸索,往前推进的过程。

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

另外一个角度来说,我们为什么做 CDN 的边缘计算?CDN 本身是把数据放到边缘去的一个过程,而边缘计算是为了把计算放到边缘去。为了更快的响应用户的操作需求,对于边缘传上来的数据进行更快的处理,这也是云函数对于边缘的探索。

对于边缘计算来说,云函数要做到的就是用户在云中能完成函数的编写、管理,在所需的位置把云函数下放各个位置运行和使用。

云函数未来在边缘计算中还会有大量的探索机会,CDN 厂商、物联网厂商、硬件厂商等都将会有持续不断的合作发展,去探索尝试将边缘的物联网能力、边缘的 AI 能力、边缘 CDN 能力落地。

Q&A

Q:腾讯云 Serverless 可以自己部署吗?

A:自己部署有分两种,一种是把云函数部署到设备上的能力,一种是 Agent 的部署。Agent 本身是需要用户自行部署到用户自有的设备上去的。而今天演示用的是树莓派,Agent 不局限于树莓派,它可以在更强的服务器中运行,比如可以用到设备的 GPU、设备的存储、文件等进行分析计算。

Q:我们想在自己内部部署一个类似的 Serverless,腾讯云可以支持吗?

A:您说的是私有化部署,云函数本身没有考虑,腾讯云云函数管理整体是在云上的,边缘计算提供更多的是边缘的调度和计算能力,函数在云上配置后,调度到设备上运行,云函数本身对于设备上的数据读取全部由自己控制,读取不用走网络,因为执行的代码包已经下发到设备上去了,体现的是让计算更加靠近数据的理念。

Q:如果提前设置好代码下发到设备上去,AI 也可以断网吗?

A:对,代码运行在你的设备上。两种情况,一种是我刚才演示的物联网的边缘计算。本身的代码包装下发到设备之后,在设备上运行,断网没有关系。

云函数本身也提供 AI 能力,在云上提供,所以在云上运行。

对于 AI,云上产品化的速度会更快,目前腾讯云已经在为部分客户进行支持,云上的相关操作说明后续也会提供出来,大家可以在线体验 AI 能力。

Q:针对 IoT 这块腾讯云发布了没有?

A:这个还没有发布,还在产品化,目前也是和一些客户协同推进这个能力,物联网设备各种各样,包括底层的硬件环境,比如树莓派的 ARM,或者 X86,或者 mips 等平台,对于 Linux 里的内核功能,文件系统的支持,对于存储、内存、CPU 的要求也在整理中。

Q:云函数能够被用于传统应用吗?

A:云函数的特性因为本身是触发式运行,短暂运行的方式,所以和传统的很多开发单体的运行方式不太一样,更多是偏向于新业务开发,或者是小的新业务上线,或者急需要弹性应用能力的使用,传统的可以做改造,但是到时候需要提供一些改造的建议。

效率提升更多是在业务开发的速度上,实际上对于业务运行环境不用再过多做运维性的动作,对于扩缩容也不用考虑,业务开发之后就可以上线,运维交给平台,扩缩容能力也是交给平台,为用户减轻压力,业务用量上来之后怎么承载业务,怎么保证业务不崩溃,云函数已经解决了这个问题,本身的扩容可以理解为无限能力的扩容。

Q:Serverless 在线能力有没有额外的规划?Serverless 的程序和代码能不能访问云主机上面的接口?

A:目前有在做很多,包括边缘计算、CDN 以及和腾讯云的各种云产品打通,Serverless 本身最大的价值在于和各个云产品打通之后的效能,可以认为是各个云产品之间的黏合剂或者是轻量级计算的联合。而和后端的对接,包括数据库、CVM 直接打通,更多是网络上的问题,即将会推出和 VPC 网络的打通,用户 VPC 业务可以用云函数直接访问。

以上内容整理自 1 月 20 日腾讯云微服务架构交流会。分享人是黄文俊,腾讯云高级产品经理,曾经历过企业级存储、企业级容器平台等产品的架构与开发,对容器、微服务、无服务器、DevOps 等都有浓厚兴趣。

本文转载自公众号云加社区(ID:QcloudCommunity)。

原文链接:

https://mp.weixin.qq.com/s/hmB-Vo0sHT0s3M48VciBrQ

评论

发布