“王俊杰,腾讯云 Serverless 技术布道师,十余年互联网研发经验。负责 Tencent Serverless 技术在全栈应用开发的方案设计工作。主要研究 Serverless 与传统开发语言及开发框架相结合、Serverless 全栈应用开发模式、传统业务 Serverless 上云方法实践,Cloud Native App 的 Serverless 开发方法。曾担任百度搜索技术经理,负责搜索前端技术研发。TLC大会今天有幸采访到了王俊杰老师,从 Serverless 设计者的角度来全方位的了解云原生的开发理念和基础架构。
Q. 王俊杰老师您好,感谢您参加今天的采访。请您先简单介绍一下自己和您从事的工作。
感谢TLC大会提供这样一个机会。
我是王俊杰,目前在腾讯云就职。目前我主要做Serverless技术相关的工作,说的直白一些,我的工作就是帮助更多的开发者方便、快捷、低门槛、平滑的用上Serverless技术。因此,我主要研究 Serverless 如何与传统开发语言及开发框架相结合、Serverless 的应用场景、云原生应用Serverless开发模式、传统代码和业务的 Serverless 上云方法,建设Serverless在开发者生态中的影响力。
在这之前,我做了十余年的前端研发和前端技术团队管理,经历了从Web 1.0到2.0再到移动互联网,从前端性能到前端监控,再到前端组件化和前端工程化发展的整个时代,也算是一个前端老兵。
Q. 就在前几天腾讯云凭借在云函数领域的杰出成绩,获得了国内 FaaS(Function as a Service,函数即服务)领域首张可信云认证,这意味着腾讯云在 FaaS 领域的实力获得国家权威认可。能否介绍一下目前腾讯云 Serverless 云函数在行业的地位以及领先优势有哪些?
广义的 Serverless 可以是一种理念,可以是一种架构,也可以是一种产品。而 FaaS 是 Serverless 的基础计算资源,提供了底层算力支撑。对于任何业务,如果算力出了问题,那其余的一切都是空谈。腾讯云提供的 FaaS 服务叫做 Serverless Cloud Functions,简称为 SCF,即 Serverless 云函数。
评价一款云产品,需要考虑的维度是很多的。技术上要有过硬的高性能以及稳定性保障,同时还需兼顾易用性、低门槛儿,让用户简单快速的用起来 —— 并且不要改变原有的开发框架、开发模式等习惯。进一步来讲,监控和告警是否完备,开发工具是否顺手等等,都是云计算产品的评价指标。
在FaaS产品的评价标准方面,不同的评测机构的视角和维度也不同:Forrester提出了十大维度,可信云则有二十余项测试标准。腾讯云 FaaS 服务 SCF 云函数在 Forrester 的评测中获得了全球前三、国内第一名;SCF 也是第一个通过可信云 FaaS 认证的产品,获得FaaS-0001编号证书,这代表了腾讯云的 Serverless 服务受到了行业专家的肯定。说到优势,我就举两个差异化的小例子吧:
在开发工具方面,腾讯云 Serverless 和 serverless.com 公司的 Serverless Framework 是深度集成的。Serverless Framework 是在全球最广泛使用的 Serverless 开发套件,在Github 上面有超过3.5万的stars。搞技术最怕就是封闭,怕闭门造车。和开源框架的深度集成,让腾讯云的 Serverless 是开放的,是拥抱开源拥抱社区的,同时给开发者提供了最佳的开发方案 —— 能够享受到 Serverless 领域内主流开发套件给开发者带来的易用性和迁移便利。
除了开发工具方面,还要提一下计费模式。腾讯云 Serverless 全球首个实现了按1ms为颗粒度的计费模式,是迄今为止是最符合云计算本质的云计算产品。由于大多数的业务计算时长是超过1ms的,所以1ms计费真正实现了 “让计算能力像水、电一样无处不在随时可用,需要多少用多少,用了多少支付多少 ”。在I/O密集型的Web服务场景下,大多数请求只有30-50ms的计算耗时,相对于业内其他的100ms计费粒度可节约最高70%的费用。
Q. 作为腾讯云 Serverless 的技术专家,能否跟我们分享一下云原生是什么,云原生的开发理念有什么不同,以及腾讯内部对 Serverless 成功应用的案例。
云原生这个概念,超级热,对于云原生大家谈的太多了。
泛泛地说,只要整个应用生命周期都在云上,就叫云原生。具体的说,云原生实现层面有一大堆技术在支撑:Kubernetes、Serverless、微服务、DevOps、CI/CD等等。我们还发起了一个方向,叫无服务器原生(Serverless Native),来研究如何全部基于 Serverless 技术实现云原生应用,让开发者更少的关注底层资源,更加专注于业务和产品。
除了外部开发者,腾讯云Serverless 支持了非常多腾讯内部 Serverless 的应用场景,比如微信。
微信小程序云开发的底层计算资源是腾讯云 Serverless 提供的,在微信支付、微信读书也大量基于基于 Serverless 开发业务。腾讯IVWeb团队2019年就在内部通用的NGW(Node Gate Way)模块中基于了腾讯云 Serverless 服务实现了 SSR。腾讯在线教育IMWEB团队不仅在业务中落地了Serverless,还基于腾讯云Serverless打造了全套的大前端开发流程IMflow。
Q. 在腾讯云 Serverless 体系建设中,您遇到的最大的困难是什么?又是如何解决的呢?
Serverless 发展中最大的困难就是 Serverless 项目的落地。
之所以 Serverless 落地难,是因为一千个研发团队,就有一千个技术架构,各不完全相同。每个研发团队,都在探寻最符合自己的业务架构。而作为提供通用 Serverless 计算服务的腾讯云,要用什么样的模式,怎么样的方法,才能为技术架构千差万别的开发者提供服务呢?这是摆在我们面前的实际问题。
要解决这个答案,我们对开发者对于 Serverless 的需求进行了一些调研。按照开发者团队的规模,我们可以将开发者简单分为三类:
- 大型开发团队
例如,头部的互联网公司,他们拥有非常细化的研发组织架构,除了业务研发团队外,还有工程团队、效率团队、基础架构团队等等。他们基础设施完备,自研开发模式健全,他们对Serverless的需求,往往是在自动扩缩、按量计费的底层资源层面。高性能、稳定、安全、性价比高的 FaaS 计算资源,是他们最看重的。
- 中型开发团队
例如,腰部互联网公司,大型企业的互联网部门等。他们会更多专注于自己个性化的业务功能实现。在技术架构和开发流程方面,大多采用的是业内成熟的开源成熟方案。这类开发者对于Serverless的需求,已经不满足于提供底层资源;除了底层计算资源之外,对于软件架构、开发流程、代码托管、CI/CD,整套技术研发方案的均有需求。
- 小型开发团队
例如,个人工作室、小型外包软件开发商。他们的诉求主要就是快速实现自己客户需求,更倾向于用现成的开源软件或者解决方案 定制化开发的方式,来快速的实现交付项目。这类开发者对于 Serverless 的需求,已经上升到了解决方案的层面。希望 Serverless 服务能够为他们提供某个解决方案的快速部署和二次开发的可能。
基于此,腾讯云的Serverless计算服务也是分层设计的。
首先,我们提供了通用的FaaS计算平台 —— 云函数SCF,提供了底层云服务计算资源支撑。
Serverless 计算的资源之上,是 Serverless 的开发工具套件 —— Serverless Framework 帮助开发者更好的基于 FaaS 服务开发各类 Serverless 应用,其集成了整套开发、调试、部署、CI/CD的流程。
再上层是针对各类细分引用场景的Serverless 解决方案,包括Serverless HTTP、Serverless SSR基于Web的服务,还包括消息触发、AI推理、IoT计算的解决方案。
这一套设计,针对不同需求和层次的开发者,让他们总能找到最合适自己业务情况的 Serverless 落地方案。基于在腾讯云 Serverless 来落地业务,并不是一件难事。
Q. 云原生和 Serverless 会是整个大前端的发展方向吗?作为普通开发者,应该如何应对?
作为一个Serverless从业者,同时也是一个前端老兵。我觉得 Serverless “可以是” 大前端的发展方向,但这绝不意味着Serverless 只是一个前端的概念。Serverless 和其他的前端技术不同,它不是纯粹为了解决前端的问题而出现。Serverless 是云计算的未来,是整个软件和应用架构的未来,它属于每一种类型的应用开发者,是每一种开发者的未来。
之所以我们认为 Serverless 是大前端的未来,是因为 Serverless 封装和解决了底层资源的分配和管理,让开发可以更聚焦于业务。从这个角度看:谁现在做的业务最多,谁的受益就越大 —— 目前的大前端工程师明显更符合这个角色定位。
同时,Serverless 是未来,是风口。我接触过很多做 Serverless 的都是后端工程师,他们用类似于 Serverless Framework 工具,很快就可以搞定后端Web Service,专注于后端业务逻辑,前端UI基于Vue或者React也能很快的搭一个出来。现在前端的工具、脚手架、UI组件非常丰富,lowcode或者nocode的平台也趋于成熟,构建一个前端的UI已经不是什么难事。
对于普通开发者学习 Serverless 的建议,是大家要亲手试一下,体验一下。
试过之后,才可以理解什么是真正的 Serverless,在 Serverless 中文网(serverlesscloud.cn)有一些教程和实践供大家的参考。
活动推荐
腾讯 2020 TLC大会即将于9月5日本周六在深圳举办。大会设置“前沿技术”、“研发效能”、“信息流”等专场,通过分享业内知名企业在Serverless、大前端、工程化、WebAssembly等领域的实践方案,希望为大家在新技术的探索道路上提供借鉴和帮助!
团购会更加优惠哦!联系购票小助手:13726217869(同微信) 可以扫描下图二维码,查看官网了解更多详情!
One More Thing
立即体验腾讯云 Serverless Demo,获取 Serverless 新用户礼包,请在 PC 端访问:
serverless.cloud.tencent.com/start?c=wx