写点什么

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

  • 2019-10-24
  • 本文字数:4153 字

    阅读完需:约 14 分钟

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

Serverless 是一个比较新的概念,2017 年开始在行业内兴起,边缘计算则是一个更新的技术。那么 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 节点实际上已经在云的边缘。



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


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



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


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


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


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


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



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


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



另外一个角度来说,我们为什么做 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


2019-10-24 23:091156

评论

发布
暂无评论
发现更多内容

带你认识图数据库性能和场景测试利器LDBC SNB

华为云开发者联盟

人工智能 华为云 图数据库

关于企业数字化的展望(38/100)

hackstoic

数字化

如何使用物联网低代码平台进行画面管理?

AIRIOT

低代码 物联网 低代码开发 低代码开发平台 低代码,项目开发

Bit.Store:熊市漫漫,稳定Staking产品或成主旋律

鳄鱼视界

数仓的字符截取三胞胎:substrb、substr、substring

华为云开发者联盟

数据库 后端 开发 华为云

Bit.Store:熊市漫漫,稳定Staking产品或成主旋律

西柚子

拥抱云原生:江苏移动订单中心实践

鲸品堂

云原生

可观测,才可靠:云上自动化运维CloudOps系列沙龙 第一弹

阿里云弹性计算

DevOps 可观测性 自动化运维 CloudOps

于文文、胡夏等明星带你玩转派对 皮皮APP点燃你的夏日

联营汇聚

OpenSSF 安全计划:SBOM 将驱动软件供应链安全

SEAL安全

软件物料清单

Substrate 源码追新导读: 4月底重大更新: Nomination Pool 即将上线, NFT增加锁定功能

彭亚伦

Substrate 波卡 波卡生态

跟着官方文档学 Python 之:简介

甜甜的白桃

Python 零基础 6月月更

【干货分享】红黑树硬核讲解

C++后台开发

后端开发 红黑树 linux开发 Linux内核 C++开发

什么是 ICMP ?ping和ICMP之间有啥关系?

wljslmz

网络协议 ping ICMP 6月月更

工作流自动化 低代码是关键

力软低代码开发平台

大促场景下,如何做好网关高可用防护

阿里巴巴云原生

阿里云 高可用 云原生 网关 高可用微服务

Hi,你有一份Code Review攻略待查收!

Jianmu

后端 Code Review 代码规范 SonarQube checkstyle

大数据性能提升28%!阿里云新一代本地SSD实例i4开放公测

阿里云弹性计算

大数据 io SSD NoSQL 数据库

Bit.Store:熊市漫漫,稳定Staking产品或成主旋律

小哈区块

SQL报了一个不常见的错误,让新来的实习生懵了

华为云开发者联盟

数据库 sql 程序员 后端 华为云

从科研创新到产业落地 华为发布人工智能大模型全流程使能体系

科技热闻

今晚战码先锋润和赛道第2期直播丨如何参与OpenHarmony代码贡献

OpenHarmony开发者

OpenHarmony

本周二晚19:00战码先锋第8期直播丨如何多方位参与OpenHarmony开源贡献

OpenHarmony开发者

OpenHarmony

国内首家!EMQ加入亚马逊云科技“初创加速-全球合作伙伴网络计划”

EMQ映云科技

物联网 IoT emq 亚马逊 6月月更

【ELT.ZIP】OpenHarmony啃论文俱乐部—数据密集型应用内存压缩

ELT.ZIP

OpenHarmony 压缩数据 压缩算法 ELT.ZIP

在线文本按行批量反转工具

入门小站

工具

4种方法教你如何查看java对象所占内存大小

华为云开发者联盟

Java 开发 内存 代码

一套系统,减轻人流集中地10倍的通行压力

天天预约

人脸识别 考勤管理 设备接入 预约工具 疫情防控

【ELT.ZIP】OpenHarmony啃论文俱乐部—见证文件压缩系统EROFS

ELT.ZIP

OpenHarmony 压缩数据 压缩算法 ELT.ZIP

2022年第一季度消费金融APP用户洞察——总数达4479万人

易观分析

消费金融

开箱即用!Linux 内核首个原生支持,让你的容器体验飞起来!| 龙蜥技术

阿里巴巴云原生

Linux 阿里云 容器 云原生

腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来_文化 & 方法_黄文俊_InfoQ精选文章