腾讯云李啸川:Serverless 化云原生释放云计算效率红利
01.
面向业务的技术体系关注哪些方面?
首先,通过业务视角来看为什么需要关注 Serverless。这里的业务视角是广义的业务,即满足需求,解决痛点,输出价值。技术对业务的助力可以简单归纳为三个阶段:
1. 迭代原型,验证业务
从零到一,通过技术手段提升业务原型的迭代和验证效率;
2. 持续优化,强化业务
在运行效率和工程效率方面不断优化,增强业务的竞争力;
3. 构建壁垒,赋能业务
在技术深度方面形成护城河,持续保持业务的差异化优势;
为了更好的支撑业务,在技术体系中我们会关注哪些问题?
1. 稳定性和质量,是业务正常推进的基石;
2. 开发效率,帮助业务争取宝贵的时间,决定了业务能否在赛道中胜出,比如有了新的想法能否快速得到验证;
3. 运行效率,是研发同学亘古不变的执着追求,更优化的算法,更优雅的架构,同时也将决定深度和难度;
4. 成本,这里的成本,一方面是资源成本,例如运行服务或系统,需要占用的计算、网络、存储等基础资源的成本。另一方面是时间和人力成本,对于企业来说,尤其是互联网或业务导向的公司,人力成本占企业整体比重较大;
02.
Serverless 能够释放哪些红利?
从工业界的角度来看,包含四个维度:
模块化程度
自动化运维程度
弹性效率
故障恢复能力
从这几个方面可以看出对基础设施层,进行了趋势演进的判断,目前 Serverless 在可以预见的阶段内,是计算平台的一个必然的演进方向,也是目前可预见的最终方向。
Serverless 分成两个阶段:第一个阶段是 容器化的 Serverless,再下一个阶段是 fPaaS Serverless 的平台。
关于学术界对 Serverless 定义,加州大学伯克利分校于 2009 年曾发表过一篇论文,精准预测了未来 10 年云计算演进的方向,2019 年又发表了一篇论文,预测 Serverless 将会成为未来云计算最终的产品形态或服务平台。
腾讯云连续两年举办 ServerlessDays China 交流峰会,2020 年邀请了文章主要作者之一 Johann Schleier-Smith ,给我留下印象最深的观点是,他把云计算分成两个阶段,第一个阶段:简化系统管理,包括虚拟机、容器等,提供可编程的、简化的管理方式,由云平台托管基础设施;下一个阶段:简化开发,开发者只关注核心代码,云平台负责系统管理、运维、架构等等,为开发提供更好的体验,让开发效率得到更大的提升。
在讲解了工业界和学术界的定义之后,我们来对比 Serverless 与传统 Server 的服务方式。
在传统的 Server 金字塔图中,从底层系统的安全、系统资源的调度,到中层的日志、监控、运维,再到上一层的数据、存储,最后金字塔尖的业务逻辑。对于业务开发来说,真正产生价值的就是上金字塔尖这部分业务逻辑的编写,服务于客户,为客户带来价值。下面的部分更多是基础的支撑,从这个角度来说,Serverless 就是解决下面的部分基础设施维护,平台侧承担底层基础部分,给到开发者更少的运维成本和工作量,Less is more,让企业把有效的人力、资源去放到更多产生业务价值的方面。
以业务开发举例,在规划一个项目时,大概有 50% 左右的时间设计整个架构,比如高可用、高并发、可拓展,如何设计架构才能支撑这样的规模,若平台侧来承接这部分工作,能够解放大量的人力和精力。
对于商业模式的改变,在一些典型场景:比如「电商秒杀」、「春晚抢红包」,都有瞬时的流量峰值,为了能承接这样瞬时的峰值,需储备巨大的资源,但这部分资源在很长的一段时间内是闲置的状态。
如何解决资源冗余的问题呢?
这种商业模式在以往衣食住行各行业早已经落地,只是在计算领域将其复用。早期是自建机房,接着开始租用云主机,最终通过 Serverless 形成按需付费。类比交通,购买汽车,自己负担维护、折旧成本并占用自有时间驾驶;租用汽车,租用期间占用自有时间驾驶且开不开都需要付租金;出租车,按需启动,里程计费。
云厂商提供的计算资源,在租用期间拥有使用权,但在租用过程中,会有一部分计算资源的冗余,而通过 Serverless 按需付费,根据实际需求量来申请使用计算服务,达成业务目标后即可终止计算服务,停止计费。
从这个角度来看,Serverless 核心价值可以归纳到三点:
1. 简化运维,能够提供稳定运行环境,支持多场景、弹性伸缩的服务;
2. 更低成本,按需付费,减少冗余资源的计费;
3. 时间效率,通过 Serverless 这种面向事件的编程模式,极大地简化架构设计,简化不同规范、不同标准的团队协作。快速地将业务落地,快速投放到市场做验证。
03.
Serverless 落地方式
1. 腾讯云 Serverless 产品矩阵
Serverless HTTP
目前支撑微信小程序开发平台,比较典型还有 Web 应用、API 服务等等。云函数已经支撑微信开发平台超过 100 万的开发者,每天超过 150 亿次调用。
Serverless Trigger
即触发器,由云上各组件定义"事件",通过事件驱动模型触发对函数的调用。
以上两点是轻量的调用和服务,音视频处理和数据处理 ETL 属于重计算场景,进一步细分,可以理解为音视频处理是对于非结构化数据的处理,包括转码、理解,数据处理,ETL 是对结构化数据的处理,包括数据的分析、汇总、 计算。
上面更多的是从应用的视角去看 Serverless 的产品能力,Serverless Framework 和云函数 SCF 是基础产品支撑,云函数是作为新一代计算平台,支撑上一层应用所有的计算需求。Serverless Framework 是腾讯云和北美「Serverless.com」这家企业合作的产品,是北美最流行的 Serverless 开发工具。
Serverless HTTP 产品能力
Serverless 触发器
Serverless 音视频处理
算力可配置,通过函数规格显式的选择计算实例大小; 框架 / 编码器可配置,支持部署自研的或者开源的编码器,实现原有转码或音视频处理服务的平滑迁移。 工作流可配置,上下游的产业链、业务流程串联,实现整个业务链条闭环。
Serverless 数据 ETL
除了对非结构化数据的一些处理,同样支持对结构化数据 ETL 的处理,通过对公网 API、DB、文件存储等多数据源的拉取、大量数据的批处理、加载至目标存储,覆盖到电商、搜索、内容、监测、分析等多个场景。
Serverless 多媒体处理 Serverless 数据处理 Serveless AI 推理 Serverless HTTP
本文作者:李啸川。
推荐阅读
立即体验腾讯云 Serverless Demo,获取 Serverless 新用户礼包,请在 PC 端访问:
serverless.cloud.tencent.com/start?c=wx20210427
GitHub: github.com/serverless 官网: cloud.tencent.com/product/serverless-catalog