【FCon上海】与行业领袖共话AI大模型、数字化风控等前沿技术。 了解详情
写点什么

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

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

    阅读完需:约 14 分钟

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

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

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:09909

评论

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

图解 Vue1.0 响应式系统

前端黑板报

源码分析 Vue Reactive

架构师-第二周

师哥

UML实践-食堂就餐卡系统

shangyu

极客大学架构师训练营

数仓大法好!跨境电商 Shopee 的实时数仓之路

Apache Flink

大数据 flink 流计算 实时计算

二叉查找树的解读和实现

ytao

Java 数据结构

奈学教育《百万架构师》课程大纲(1)

古月木易

极客大学架构师训练营

奈学教育《百万架构师》课程大纲(1)

奈学教育

架构师

高承实:区块链将对哪些场景赋能,如何赋能?

CECBC

区块链技术 产业 赋能

游戏夜读 | 中国的游戏制作人

game1night

XSKY发布S3 Console,助力企业轻松玩转非结构化数据可视化管理

XSKY星辰天合

【玩转写作社区】如何让专业编辑青睐你的文章?被推荐置顶?

InfoQ写作社区官方

写作平台 InfoQ 玩转写作平台 热门活动

细说几种内聚

落英亭郎

高内聚 面向对象设计 面向对象思想

奈学教育《大数据架构师》课程大纲(1)

奈学教育

大数据

架构师训练营第二周课程感想1

tuuezzy

Java 架构师

【面向对象】—依赖倒置、接口隔离

不二架构

极客大学架构师训练营 依赖倒置 接口隔离原则

奈学教育《大数据架构师》课程大纲(1)

古月木易

大数据

POJO类中布尔类型为啥不让用isXxx命名

Java课代表

实时即未来?一个小微企业心中的流计算

Apache Flink

大数据 flink 流计算 实时计算

Flink on Zeppelin (4) - 机器学习篇

章剑锋_Jeff

大数据 flink 学习 流计算 Zeppelin

使用wavm运行wasi wasm程序

Foliage

依赖倒置总结

石刻掌纹

Cache类接口隔离设计

石刻掌纹

《实现领域驱动设计》拆书稿 DDD入门 & 领域、子域和限界上下文

三界

架构 领域驱动设计 DDD

记录一下,我的记录之道

非著名程序员

学习 程序员 提升认知 工作效率

如何看待年仅 28 岁的程序员实现财务自由,宣布从字节跳动退休?

非著名程序员

程序员 自由职业 程序人生 财富

第二周作业

Diven

使用 Python 制作酷炫多彩的 Jenkins 插件词云图

donghui

jenkins wordcloud

【摘】Git-从零单排 04期

卡尔

TiDB原理解析

Chank

Flink 在快手实时多维分析场景的应用

Apache Flink

大数据 flink 流计算 实时计算

软件设计原则作业

梅子黄时雨

极客大学架构师训练营

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