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

2023-11-17

欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~

作者:黄文俊,腾讯云高级产品经理,曾经历过企业级存储、企业级容器平台等产品的架构与开发,对容器、微服务、无服务器、DevOps等都有浓厚兴趣。

腾讯云serverless团队 发布在 云+社区

本文整理自1月20日腾讯云微服务架构交流会。

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业务可以用云函数直接访问。

相关阅读

使用腾讯云“自定义监控”监控GPU使用率

如何在Python中从零开始实现随机森林

自然语言处理的神经网络模型初探


此文已由作者授权云加社区发布,转载请注明文章出处

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • Eclipse中JUnit的安装及初始使用

    JUnit的下载 安装 1 下载 http www junit org JUnit软件包 版本很多 可以自行选择 2 在eclipse中添加junit jar包 打开eclipse gt 菜单栏点击project gt properties
  • ubuntu pip intall出现“设备上没有空间”的解决办法

    原因 空间问题呗 东西太多了 tmp盘不够大 pip install的时候文件包会预先下载到tmp盘 步骤1 在home目录下新建一个tmp文件夹 用来取代系统根目录的tmp文件夹 步骤2 设置环境变量TMPDIR export TMPDI
  • [LeetCode-02]-Add Two Numbers-性能极好

    文章目录 题目相关 Solution 1 错误的解法 2 正确解法 3 几个用例 后记 每周完成一个ARTS Algorithm Review Tip Share ARTS Algorithm 每周至少做一个 leetcode 的算法题 R
  • 强化学习打卡班第四五章

    强化学习打卡班第四五章 第四章 Policy Gradient梯度策略 例子 贝叶斯公式补充 奖励函数 reward function 最大化方法 梯度上升 PPO算法 从 On policy 到 Off policy 第四章 Policy
  • Linux 使用wget 命令下载JDK的方法

    Oracle官网上下载jdk 需要点击accept licence的才能下载 使用下面的命令 直接可以下载 wget no check certificate no cookies header Cookie oraclelicense a
  • DeBlurGANv2图像去模糊 训练自己的数据集

    之前在有位博主的DeblurGANv2教程的页面下留了言 很多小伙伴来私信我 config yaml怎么调参数 predict py和train py需要怎么修改 之前只跑了predict 有些问题也没办法解答 最近自己跑了一下train
  • MTU 和 MSS 区别

    MTU Maximum Transmit Unit 最大传输单元 即物理接口 数据链路层 提供给其上层 通常是IP层 最大一次传输数据的大小 以普遍使用的以太网接口为例 缺省MTU 1500 Byte 这是以太网接口对IP层的约束 如果IP
  • HPE Microserver GEN10升级BIOS

    到手的机子BIOS版本还是ZA10A290 非常有必要升级 便从HPE官网下载了最新的版本 ZA10A360 选择UEFI Shell方式更新 官网下载地址 https support hpe com hpesc public km pro
  • Cutter - Web视频剪辑工具原理浅析

    大厂技术 坚持周更 精选好文 最近一直在开发 web视频剪辑工具 cutter 这个工具可以方便老师们编辑拍摄好的视频 这是一个挺有意思的项目 预计分多章和大家分享介绍 本期主要介绍下其大体流程 方便大家对其原理有一个简单认知 Cutter
  • Docker安全设置

    Docker安全 Linux内核的命名空间机制提供的容器隔离安全 Linux控制组机制对容器资源的控制能力安全 Linux内核的能力机制所带来的操作权限安全 Docker程序 特别是服务端 本身的抗攻击性 其他安全增强机制对容器安全性的影响
  • elementui不生效

    1 element依赖vue 引入element js之前要引入vue js 2 element无法脱离Vue使用 html中必须new Vue el app 挂载上去
  • C语言函数大全--f开头的函数(下)

    f开头的函数 下 21 floor floorf floorl 21 1 函数说明 21 2 演示示例 21 3 运行结果 22 flushall 22 1 函数说明 22 2 演示示例 22 3 运行结果 23 fma fmaf fmal
  • php发送请求写请求头,PHP发送请求头和接收打印请求头

    一 发送请求头 发送地址 url http 127 0 0 1 2 php 请求头内容 headers array Authorization basic suibianzhi basic 使用curl发送 ch curl init url
  • 计算机缺失VCRUNTIME140.dll怎么办,那个修复方法可以解决

    计算机提示缺失VCRUNTIME140 dll怎么办 无法启动运行软件程序 如photoshop pr ae等等都是无法启动 打开电脑就报错 由于找不到VCRUNTIME140 dll 无法继续执行此代码 让我们先来了解一下VCRUNTIM
  • Gitee初练 --- 问题合集(一)

    Gitee 一 Windows找不到gpedit msc请确定文件名是否正确的提示 二 windows 10 凭据无法保存 三 解决 git pull push 每次都要输入用户名密码的问题 一 Windows找不到gpedit msc请确
  • C++ 读写二进制文件

    描述 C 来读取二进制文件 二进制文件的格式可以多种多样 比如dat index等 还可以是自行定义的格式 C 来写二进制文件 一 读二进制文件 结构体定义及头文件 include
  • 38 匹配字符串——findall()方法

    文章目录 语法 案例 语法 findall 方法用于在整个字符串中搜索所有符合正则表达式的字符串 并以列表的形式返回 如果匹配成功 则返回包含匹配结构的列表 否则返回空列表 findall 方法的语法格式如下 re findall patt
  • css实现图片叠加的几种思路(记录笔记)

    背景 实现点击事件 触发原图的img透明度降低 成为透明背景 并且加一个不透明的原图 可以用于加水印 一个div覆盖几个样式 使用的是vue vue cli搭建项目 几种思路 1 切换背景样式 设置一个key 当div元素触发点击事件 di
  • (SUB)选择排序时间、空间复杂度

    基本思想 将一组数据分为两部分 前面是已排序部分 后面是未排序部分 初始状态可认为位置 0 为已排序部分 数组下标从0开始 其余为未排序部分 每一次都从未排序部分选择一个最小元素放在已排序部分的末尾 然后已排序部分增加一个元素 未排序部分减
  • 腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

    欢迎大家前往云 社区 获取更多腾讯海量技术实践干货哦 作者 黄文俊 腾讯云高级产品经理 曾经历过企业级存储 企业级容器平台等产品的架构与开发 对容器 微服务 无服务器 DevOps等都有浓厚兴趣 由 腾讯云serverless团队 发布在