关注 TencentServerless 公众号,回复「PPT」,即可领取本届大会演讲 PPT。
Serverless 是继虚拟机、容器之后,第三代的通用计算技术,也是腾讯云战略级投入的技术赛道。Serverless 并不是一个新概念,在后疫情时代,我们看到 Serverless 技术正在加速落地,越来越多的企业希望通过新技术降本增效。本文由腾讯云 Serverless 产品总监张浩在 Techo TVP 开发者峰会 ServerlessDays China 2021 上的演讲《Let's Dive Into Serverless World》整理而成,向大家分享 Serverless 的业界发展情况和最新趋势。
点击可观看精彩演讲视频
在开始演讲之前,我先简单讲讲对 Serverless 的理解。Serverless 是一种继虚拟机、容器之后第三代通用的弹性计算的技术,怎么理解?它可以让开发者更加聚焦业务的开发,只需要编写、上传业务代码,就可以运行你的应用程序,不需要关注的基础设施的运维和容灾,所有团队精力都可以用在应用交付上,极大提升业务和团队迭代的效率,这是我所认为的 Serverless 的价值。
今天的分享分为四个部分,首先我会先跟大家讲讲,腾讯看到的 Serverless 技术发展的快速趋势,以及在国内 Serverless 发展的整体情况。
01.
Serverless 国内发展现状
首先,第一页 PPT 有三个数字,这三个数字相当激动人心,为什么?我早上看了运营日报,截止到今天,我们已经在腾讯云平台上服务了超过一百万开发者。全国写代码的人有多少?之前 CSDN 有一个统计:全国从业者加学生实际写代码的人有五百万,而腾讯云 Serverless 服务了一百万的开发者。在资源调用量上,我们现在是一个亿的级别,整个 Serverless 服务的日调用量也超过了百亿,是相当大的规模。这里我也代表团队做一个表示,腾讯作为国内最大的 Serverless 技术提供商,我们会持续地在 Serverless 技术发展上全力以赴投入,给开发者带来更好的体验。
之前有一些开发者或同行会问我,说“张浩你觉得 Serverless 技术是不是比较适合做一些外部服务、小程序,做一些 H5 页面、逻辑比较轻的产品?”确实我要承认腾讯在 C to B 连接生态的整合方面做得相当好,我们有小程序在 Serverless 领域的落地,有大量中长尾的开发者快速使用 Serverless 技术构建他们的应用。从最新的后台行业数据和业务的分布来看,现在有大量的、越来越多的后台业务,会有重计算的数据处理业务,包括金融政府、工业、零售产业和互联网的一些偏传统行业的一些应用大量进入 Serverless 技术领域落地。这一页的数字可以看到,我们整个 Serverless 应用的生态正处于蓬勃发展的过程中。
今天腾讯云 Serverless 服务了超过一万家企业客户,里面不乏一些世界五百强的头部公司、大型互联网头部厂商,包括金融领域的一些金融科技企业正全力在用 Serverless 技术构建 IT 架构。
插一个小的 case 跟大家展开讲讲,这是一个 IOT 的案例。这家公司是国内智能家居的头部厂商,现在全国有百万级别的活跃的终端用户在家里使用他们的产品,每个月在京东和天猫销售渠道新增的出货量有几十万,我们 Serverless 的技术,为他们带来什么价值呢?引用他们 CTO 的原话,我们 Serverless 架构给他们带来一个近似于无人值守的体验,怎么理解?首先由于 IOT 的特性,它通过终端的出发,终端信号的上传,到达了后端的云端引擎,再到云端 Serverless 处理,整个业务规模的波动性和弹性的幅度非常大,上下经常有十倍的差距,而且在一些峰值 KPS 的时候会达到十万的 KPS,量非常庞大,每天调用量超过一百亿次,非常惊人;还有更大的压力,整套 IOT 系统在不断运行的过程中,每个月还会有海量新增的设备进入用户的家庭,还有新增的 active 的设备商到线上,所以每个月增速也是非常惊人。通过 Serverless 技术弹性,免运维整体的体验,让这家公司整个团队 IOT 服务、智能家居服务迭代,而不需要关注一些基础设施的运维和开发,所以极大提升了他们团队的效率,所以这位 CTO 评价这是一个「无人值守的弹性系统」,体验极佳。
接下来我们会看到更多企业级的应用、海量的服务在 Serverless 架构里落地。2017 年腾讯推出第一款 Serverless 服务云函数,在这之后,我们上线了弹性容器、云开发、微搭等各种各样的开发者工具,包括很多企业的应用调优工具,还有 Serverless 数据库。腾讯相信,我们通过完整的产品矩阵和基础能力,有信心去承接各种各样的服务的负载,去将开发者业务更好地通过 Serverless 技术落地。
02.
Serverless x 视频云
第一部分我讲得比较泛,第二部分我想讲讲今年 Serverless 技术在一个行业和技术领域最新的场景——视频领域。在疫情的大背景下,视频技术发展非常迅猛,在在线教育板块,很多原来传统线下的教育机构改到线上,用线上教育的方式连接学生和教师;在一些娱乐板块我们可以看到直播带货、游戏直播等等,给大家的娱乐生活带来非常大的补充;在企业板块,我们可以看到腾讯会议,一些线上展会,像广交会搬到线上举办,还有金融的在线开户等场景。它们都印证了视频技术改变了人和人之间的交流、人和企业之间的连接。视频的技术和 Serverless 可以有什么样的结合呢?今天我想分享三点 Serverless 视频在技术和场景上的落地。
首先的一个 case,是我们在华南地区 K12 的大教育机构,他们有非常多的像数学、英语等不同的课程,老师和学生会进行一个交互,通过音视频技术直播低时延的方式传输,涉及到弹性,需要把老师讲课视频内容进行不同格式、不同编码、不同分辨率推送到不同终端,去适配类似于安卓、iOS、iPad 场景,我跟研发团队深入交流下来有一个很大的感触,原来版本周期是一个月一个迭代的版本,这一个月一个版本咱们 IT 圈的人听起来会觉得是不是效率跟不上?一个月一个版本确实会比较慢,他们精力主要花费在哪里?首先他们只有三分之一的时间来写代码,剩下的时间可能要为了这种音视频处理的数据转码等一些计算准备还量服务器,进行一些调度容灾、弹性扩容的相关事情,通过 Serverless 的技术,很好地解决了他们的音视频转码问题,整个研发周期从原来一个月降到一周,而且整个计算设备的成本下降,他们下掉了几千台包括 16G、32G 和 64G 的服务器,让整个团队的效率从人到机器生产都得到了极大提升,这是我看到今年第一个大的在视频领域的落地。
第二块是腾讯的 TRTC 服务,它是低时延的,协助开发者和企业可以实时构建一个端到端管道的服务。这么讲有点抽象,年初的时候特斯拉创始人马斯克他们在推的,我相信很多人听过,通过 TRTC 就可以构建这个能力。TRTC 跟 Serverless 技术又能产生什么样的火花?我再举个日常应用场景的例子,大家都听说过 “千人千面” — 你去淘宝买东西,每个人每个用户根据大数据分析,AI 分析会推荐不一样的购物体验和场景,带来多元化体验的效果。在在线教育领域,千人千面正在逐步上线,怎么理解?教育这个领域现在最宝贵的资源是老师,好的名师非常少,一个老师同一个时间最多接受 3–5 个学生实时授课,如果你放一个录制视频效果又不大好,怎么解决?
通过 Serverless 计算和工作流弹性编排能力,结合 TRTC,我们最新的做法是可以先把老师今天要授课的内容录下来,对于不同终端学生,以及每个学生学习进度的不一致,以及学生学习反馈程度的不一样,最后内容不一样。可能有 5 个学生,上课时候我可能会进行录播推流方案让学生感觉到老师在跟 TA 讲课,但是每个人看到的内容其实都是不一样的,这样可以让老师有更多的精力聚焦在解答学生的问题上面,最后给企业带来的效果是什么?原来可能一个老师能对 5 个学生,上线之后做到一个老师可以对 10–15 个学生,而且整个学生反馈和好评率是直线上升的,Serverless 技术将我们工作流的编排结合 TRTC 这样一个快速应用创新给企业带来巨大的价值。
刚刚在视频这块的 Serverless 讲了两点:弹性计算和实时音视频结合。接下来讲一点,我们 Serverless 在视频内容的理解这一块的沉淀。这是我们在敦煌的一个案例,Serverless 跟敦煌实验室产生了什么样的化学反应呢?大家都知道敦煌莫高窟有上千年的珍贵的国家瑰宝级别的壁画,由于时间关系风化得很严重,敦煌研究院就针对怎么修复敦煌壁画,在做一个全国专家会诊的项目,腾讯 Serverless 加上腾讯多媒体实验室,我们是首家拥有Serverless GPU 计算资源调度能力的,这在业界也是首创,先于亚马逊、阿里云,我们首先在 Serverless 这块支持 GPU 的识别,通过视频算法的处理,通过我们多媒体实验室对于这种壁画视频内容进行实时的分析和对里面的一些受损部位的识别,在全国专家会诊的过程中提高了大家对壁画判断效率。这样的 case 是 Serverless 结合 GPU,结合视频识别理解的很好的技术理解。
再总结一下,我们腾讯云在视频云的落地还有一些场景,这背后还有一些我们细致的产品能力和技术提升。首先大家都知道云函数,腾讯云提供了创新的模式,我们可以让长的计算任务运行 24 小时甚至更长时间,很稳定,而且带详细追踪的运行能力,去解决长运算的弹性计算的问题。同时我们提供像 ASW 工作流的服务,可以协助开发者对数据处理的场景,技术逻辑编排,构建复杂业务架构。同时我们在 4 月份发布了标准的容器镜像,当前大家都知道像云函数,对于大型的应用,包括对于环境依赖复杂的应用,我们通过支持这种标准容器镜像的方式进一步加快企业应用的迁移,以上我提到这些细节点都很好地支持了 Serverless 技术在视频领域的落地。我认为今年这个方向是非常大的发展点。
03.
Serverless 链接万物
前面我讲了两部分,一个概况和视频落地,第三部分我分享一下 Serverless 连接万物。首先跟大家讲一个概念,如果熟悉云函数的话,大家都知道,它是一种以事件触发方式去调用云函数进行计算的模型,讲个典型的案例,有个存储的筒我往上丢一个照片,照片上传就是一个事件,我可以通过这样一个事件去触发 Serverless 的计算做非常多事情——我可以做图象的压缩、图象的处理,以及根据这样的通知做一些回调的处理,可以做非常多有创意的事情。今年腾讯 Serverless 平台上线了事件总线的平台,我们已经连接了云上超过十款 PaaS服务,通过这样连接以及跟十家 PaaS 服务的打通,创造和找到了非常多新的企业级有趣的场景。
对象存储和 Serverless 的创新,对象存储近期提了一个新概念叫「数据湖」。在云上会产生大量数据,结构化的,非结构化的,各式各样的,生产还有日志流,所有都可以在对方的存储里生成小的数据分析结果,供业务分析参考,这是一个大的数据湖的价值,作用有前置条件,把数据搬到数据湖里面,一般公有云平台,开发者数据包括企业数据是分散在个各个 PaaS 服务里面,Serverless 这样一个技术的连接能力,让数据处理变得非常简单,我们在各个产品入口打一个勾,或者简单勾选一下就可以把数据进行深度的数据处理,中间连接的能力和数据 ETL,数据传存、处理、写入能力都是通过 Serverless 处理的,高效又简单,这是我提到连接的一个点。
连接还有哪些大的方向呢?Serverless 在连接万物这块找到了新的蓝海,那就是跟 SaaS 的合作。腾讯千帆是腾讯云企业级 SaaS 连接器,它解决一个企业购买 SaaS 应用落地过程中会遇到账户系统的打通,业务接口的连接,数据的互通等等问题,怎么把所有的数据孤岛,业务孤岛串联在一起,腾讯非常擅长。
Serverless 我们是怎么做结合的?腾讯子公司办公系统一体化的 case。它的痛点是什么?腾讯在深圳,我们腾讯在产业互联网时代也有非常多的全资子公司,包括投资合作子公司,这里面涉及到比较大的痛点,首先子公司会采购非常多的扩展的 SaaS 服务,像金蝶财务、用友 HR 系统,一些扩展的办公软件,这些所有的 SaaS 服务能不能很好地跟当前腾讯自己的办公软件进行很好的整合和落地?我提到一个体验,大家肯定会感触比较深,能不能做到在一个地方登录,每个平台都能登录,单点登录问题能不能解决?不同管理员,不同职级、角色到系统里面账户的权限和操作范围是不是可以进行统一的管理?所有的问题都是我们整个腾讯子公司办公一体化里面要解决的难题,通过千帆技术加上 Serverless 开箱即用的编程能力,将 SaaS 问题集成到一起落地,开发周期公司内部投入两个工程师,两周左右的开发周期就落地了,这是我看到在 Serverless,除了连接云上的通用的 PaaS 服务,SaaS 这块会有非常大的新尝试,也是我认为的未来的风口。
04.
Serverless 开发者体验提升
前面已经讲了挺多内容,关于概况、Serverless 视频的结合,以及关于 Serverless 和 SaaS 连接其他 PaaS 服务的场景,最后还要讲讲开发者体验,虽然放到最后,我认为这也是最重要的事情,Serverless 技术远远没有到非常完备和彻底成熟的阶段,我们也经过了开发者调研、工单和投诉,密集的吐槽点是什么呢?Serverless 太黑盒了,难以调试,我不知道发生了什么难以定位的问题,又比如说我是全新开发者或者大学学生第一次用这个技术感觉上手门槛很高,不知道怎么用,不知道怎么迁移等等问题都阻碍了开发者使用 Serverless 技术或者享受新的技术带来的红利。我再讲讲腾讯的思考和落地。
1. 迁移
6 月份,我们会发布腾讯云新的云函数服务模式「Web Function」,它解决什么问题?我们回想一下写第一行代码是怎么学的,一般老师教你本地的电脑,开一个监听部署起来,这是所有人都能理解的服务方式学习的过程。那现在 Serverless 服务有什么问题呢?不管亚马逊或者阿里还是我们,作为一个新用户或者小白用户第一次用云函数的时候,很难把本地的体验、简单的服务,一行代码配置不改就能部署到 Serverless 上,云函数有一个独特的机制,某种意义上是私有协议,不是原生的 HTV,构建服务过程中,还需要配置负载均衡器,所有这些操作,我们认为对于开发者来说是一个极大的上手门槛。我们马上可以做到各种语言开发者能够零代码改造迁移到 Serverless 平台上来。
2. 调试
接下来讲开发者体验的另一个痛点,关于调试。很多开发者会有这样的规律,Serverless 看不见摸不着,只能通过函数代码,而且现在各个团队提供这种调试能力相当差,甚至说工具也不全,很难找到问题,腾讯云提到我们服务一百万开发者,相关投诉和反馈,我们收到非常多。有的厂商会想一些方式:你们在本地构建一个全套环境,我把镜像给你去调试体验。在本地构建全套体系是非常大的成本,我们相当多开发者没有做到这一步就已经流失了。腾讯云怎么思考这个事情?我们会把调试过程做得更简单,分为三步去做。首先我们提供一套非常好的 Serverless 的 CLI,让你各种开发语言在本地直接调试,我们会起一个模拟器,不需要任何学习和做复杂的环境配置,就能解决写第一行代码,简单的单元测试时能复现相关的问题。
刚刚提到的本地调试不足以覆盖所有问题,我们在本地调试基础上提供了模拟云端一模一样环境的云端调试能力,我们可以在同样的工具里面连接到云端运行的容器,可以让你开发过程的代码在测试过程中运行的生产环境一模一样,解决调试痛点。对于大型项目我们会上线云端全容器微服务构建的方式,有整套大型微服务系统,有依赖的后台逻辑,包括需要做一些调试的逻辑,我们允许开发者在线上构建全套对比在线发布后的环境去做所有的 Serverless 调试。我提到结合第一第二第三步,可以让开发者在 Serverless 开发过程中降低黑盒感,更快更好拿到计算容器的反馈,调整代码,上线运行,这是我们的思考。
最后讲讲自己的感受,我在云领域工作很久,从毕业开始做云计算、私有化、混合云,现在在 Serverless 领域,我认为当前包括云函数,我们微信的云开发平台,还有其他弹性容器的服务,以及包括 ServerlessDB 服务,都在层出不穷地满足开发者的需求,但这远不是 Serverless 技术的终点,Serverless 技术发展趋势以及核心价值观不需要关注基础设施,这种理念是云计算精神最好的诠释,3–5 年之后甚至更长远,Serverless 理念产品会成为云计算主流,服务所有开发者和企业,让中国产业互联网发展效率提升更高,谢谢大家。
分享嘉宾
张浩,腾讯云 Serverless 产品总监,负责腾讯云 Serverless Computing 平台的产品规划、产品功能设计、商业化落地。有多年的云计算从业经验,曾负责 CDN、分布式存储、公网网关、消息队列、中间件、微服务等多个领域的云产品。
推荐阅读
One More Thing
欢迎进入千人 QQ 群 (871445853) 交流 Serverless!
- GitHub: github.com/serverless
- 官网: cloud.tencent.com/product/serverless-catalog
点击「阅读原文」,轻松体验 Serverless 应用部署。