正式定档!QCon 北京站改期为2024年4月11-13日,地点:北京·国测国际会议会展中心 >>> 了解详情
写点什么

腾讯云微计算实践:从 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:09851

评论

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

牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

Metasequoia 激活版(水杉三维模型游戏建模)

魔仙苹果mac堡

水杉3D建模 Metasequoia 4 破解

Pushing to Git returning Error Code 403

刿刀

bitget合约一键跟单社区交易平台开发功能以及模式分析

开发微hkkf5566

文档智能分析产业实践,基于PP-StructureV2和OpenVINO实现训练部署开发全流程

飞桨PaddlePaddle

软件测试/测试开发丨app自动化测试之Appium 源码分析

测试人

软件测试 自动化测试 测试开发 appium

忘记英文单词拼写怎么办?试试OS X 系统的英文补全功能

魔仙苹果mac堡

mac电脑 英文补全功能

国际版语音房聊天APP,视频语音平台开发搭建经验及后台项目简要说明

山东布谷科技胡月

语音聊天系统 语音直播app开发 国际版语音直播APP 国际版语音系统源码 语音聊天房系统搭建

Java开发一年不到,来面试居然敢开口要20K,面完连8K都不想给~

程序知音

Java 编程语言 java面试 java架构 八股文

证书过期为何频频发生,该如何避免?

不思jo

故障 #运维

双非渣硕,开发一年,苦刷算法三个月,四面字节成功斩获offer

做梦都在改BUG

Java 数据结构 面试 算法

Spring为什么需要三个级别的缓存来解决循环依赖

做梦都在改BUG

Java spring 面试 循环依赖 三级缓存

腾讯T4整合Spring+Spring MVC+MyBatis+Redis实现,附源码

做梦都在改BUG

Java redis 面试 SSM框架

阿里云EMAS:2月产品动态

移动研发平台EMAS

阿里云 移动开发 移动研发平台 emas

软件测试/测试开发丨app自动化测试之Appium 原理 与 JsonWP 协议分析

测试人

软件测试 自动化测试 测试开发 appium

ONES 入选北大光华 MBA 整合实践项目,推动校企合作

万事ONES

扫一扫,原来这么简单

HMS Core

HMS Core

Python Dev Day@北京站,我们来啦!

PyChina

第二届“鼎新杯”数字化转型应用征集大赛在京启动

信通院IOMM数字化转型团队

数字化转型 鼎新杯

宝塔SSH ROOT账号无法登录

源字节1号

开源 软件开发 小程序开发

软件测试/测试开发丨iOS自动化真机测试验证环境过程中常见问题

测试人

软件测试 自动化测试 测试开发 ios测试

一文详解Java中的ThreadLocal

做梦都在改BUG

Java 多线程 线程池 ThreadLocal

软件测试类型有哪些?它们之间的区别和联系

测吧(北京)科技有限公司

测试

HashData携手新炬网络 共推国产云数仓产业发展

酷克数据HashData

安装Agisoft Metashape Pro的Mac电脑配置要求

魔仙苹果mac堡

三维建模 Agisoft Metashape配置

太厉害了!GitHub上标星80K的微服务实战笔记,看完跪了

做梦都在改BUG

Java 微服务 Spring Cloud Spring Cloud Aliababa

视频转换工具:MacX Video Converter Pro中文版

真大的脸盆

Mac Mac 软件 视频转换 格式转换器

CSIG企业行-走进合合信息成功举行,聚焦生成式人工智能、智能文档处理前沿热点

合合技术团队

人工智能 图像识别 ChatGPT 文档处理 生成式人工智能

揭秘ChatGPT背后天价超算!上万颗英伟达A100,烧光微软数亿美元

Openlab_cosmoplat

微软 开源社区 ChatGPT

软件测试/测试开发丨iOS自动化测试之基于模拟器的自动化测试

测试人

ios 软件测试 自动化测试 测试开发

AI 未来已至,向量数据库站在新的节点上

Zilliz

英伟达 非结构化数据 Milvus 向量数据库

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