作者 | 杨丽
过去五年,同程艺龙机票事业部CTO王晓波经历的“挖坑”与“填坑”过程,至今让他回味。
在近日举办的Techo TVP 开发者峰会 ServerlessDays China 2021上,他这样描述了一个身为互联网公司研发负责人的“苦恼”:
“很多业务同学对产品功能部署的要求有多快?或许就是上午坐公交车被门夹了一下,想出来一个idea。然后他就希望下午的时候看到这个功能已经上线了。”
通常而言,研发人员上线新功能,往往需要架构设计、服务器部署,不是想象中写几行代码就能够完事儿。项目紧任务重,该上线的还得加油干。
于是,团队开始尝试Serverless服务,尽量减少在服务器、框架、部署,甚至开发过程等环节上的精力消耗。不同的是,当时尝试Serverless更多属于企业内部的项目,不需要服务对外,这也意味着很多技术解决不了的问题通过一道行政命令就执行落地了。
凝结五年经验与教训,他总结出三个灵魂发问:
“为什么要用Serverless?难道我们要追星吗?”
“究竟解决了什么问题?比如弹性计算省下来的钱,真得能换来一个业务吗?”
“对业务的帮助有多大呢?比如对IT架构设计的要求,从单体发展到微服务,再到ServiceMesh,再到Serverless,最后绕了一圈突然又觉得单体架构可能会比较好。这究竟是不是时代的局限性?”
王晓波将这种痛苦的经历总结为:缺少一个真正的方法论和工具进行管控。
对于更多的企业开发团队而言,又该避免尝试上手Serverless后继续变成原来所讨厌的事情?如何All in Serverless?
从All in Serverless到落地
2021年3月,市场调研机构Forrester公布的最新一项调研中,清晰地展示了国内各大云服务商在云函数服务能力的矩阵图。
在Serverless实践与推广方面,我们最早熟知的亚马逊云的Lambda就是一款相对成熟的函数计算产品,但这次不同的是,国内厂商似乎在追齐国际主流厂商的各项能力。
登入市场性报告的魔力象限或许并不能完全说明各自服务商的优劣势,实际上,他们各自在函数计算的实践和突破路径上其实都各有所长。但这至少说明一点,云函数已经得到云巨头的广泛性关注,而云函数背后衬托出的是以Serverless技术为核心的计算、存储体系架构的演进。
Serverless,简而言之,是应用服务层或函数计算来动态配置和部署云环境的计算负载。基于Serverless形成了函数计算产品体系,大致可分为两类:一类是计算,即FaaS(Function as a Service);一类是BaaS(Backend as a Service),如消息中间件、对象存储。
种种迹象表明,Serverless这项被认为是继虚拟机、容器之后的第三代通用计算平台,已经在很多互联网业态环境中得以应用。
据雷锋网观察,多数企业选择使用函数计算产品,主要源自其对弹性资源和成本的考虑,能够以更加细颗粒度地按量付费。Serverless本身是可以帮助客户用非常低的成本实现弹性高可用的能力,并且满足安全性的要求。其目的是为了简化开发工作中的运维任务,让开发者聚焦在应用上。
从用户侧的实际反馈来看,相比于几年前,大家的一个普遍感受是Serverless的实践路径及对问题的解决相对清晰了。这也让Serverless在更多企业、场景中的落地难题变得共性化。
Serverless使得开发人员对云基础设施的调用从原来的以资源为中心,转变成了以服务/应用为中心。其优势点在于可以为企业提供直接的运行环境,开发者无需感知底层复杂的计算资源,即可通过调用上层的函数产品完成每一次的计算调用。
例如,Serverless本身跟以往的计算形态差异比较大,整个研发和运维的体系跟传统应用是割裂的。这让不少人开玩笑,“DevOps做了什么多年,怎么说服Dev去做Ops呢?一个最简单的办法,就是把Dev变成Ops,然后把Ops开掉。”
问题在需求侧或许可以简单粗暴地解决,但这个过程中底层资源的逻辑和状态由云服务商来管理,难题自然也留给了供给侧。
今年2月,云原生基金会CNCF公布了2020年年度调查报告显示,使用无服务托管平台排名前三的分别是亚马逊的Lambda(57%)、Google云函数(27%)和Azure函数(24%);可安装软件应用排名前三的分别是Knative(27%)、Open FaaS(10%)和Kubeless(5%)。
性能的优势不足以弥补市场占有率或市场教育不足的问题。无论是云上环境还是安装套件下的函数计算,国内品牌还需要找到更多撬动的支点,深入了解客户所需。
那么,客户在关心什么?
在前不久与腾讯云 Serverless 副总经理罗茂政、腾讯云 Serverless 产品总监张浩的对话中,雷锋网获得了三个信息:
一些企业IT开始思考:跟随市场最先进架构的迁移成本、掌握新工具的使用成本,跟解决一个业务业务所需消耗的人力成本之间,存在一定的矛盾。
Serverless向下屏蔽了底层资源的复杂性,但同时也会带来很多技术的黑盒问题。
Serverless可以理解为一套云的计算架构,能够在大数据、AI、物联网、音视频等领域融合落地。比如需要实时处理数据的在线场景,就存在Serverless应用的空间。
解锁Serverless技术黑盒
一个关键点在于,Serverless会涉及很多的技术黑盒,这与其本身屏蔽了底层复杂技术相关。类似于深度神经网络本身存在的不可解释性造成了很多技术黑盒的问题,同样,Serverless领域也需要解决“不可观测性”问题。
举个最简单的例子,开发者往往不需要关心底层的计算资源,或者依靠何种性能的虚拟机或容器。但这反过来就也就意味着一旦遇到异常问题,开发者也是根本不清楚Serverless应用究竟是因为调度环境出现异常,还是某个产品模块出了问题。
因此,Serverless产品团队既需要做到尽量不让客户感知底层的资源环境,只关注向上的业务发展;同时,也需要给出可观测性的工具或解决方案帮助开发者实时评估风险,快速定位诊断出问题所在。
应用性能管理平台(TAPM)是腾讯云针对可观测性领域开发的一款产品平台,能够帮助客户对整个链路中的应用性能健康状况进行观测。
然而,有一个好的平台只是第一步。正如上述同程艺龙的王晓波遇到的情况,很多客户都往往存在遗留资产的包袱,发展至如今变成了从单体到微服务再到Serverless等多种架构并存的现象。
张浩告诉雷锋网,“现在其实有更多的客户会比较冷静地看待这个事情。在兼顾业务稳定发展的同时在一些新的业务领域尝试,这时,客户就需要利用Serverless的架构快速支持某些创新业务。”
比如在线教育市场的竞争性相对残酷,这种对企业业务和技术负责人带来的双重压力,会使得他们主动要求基于Serverless技术进行服务的调用、存储的迁移等等。
在他看来,“只有客户认可这个价值,客户才会主动愿意进行Serverless架构的迁移。其次才是服务商通过相应的手段和技术能力帮助梳理和过渡。”
此外,还有很多客户会非常担心供应商锁定的问题,不太希望自身的技术栈跟某个供应商绑定。这可能也并非任何一家服务商的本意。
张浩指出,腾讯云的思路仍让是希望留给客户足够的透明度和灵活迁移的能力,通过将服务和开发者体验做到最好来留住客户。
Serverless的未来与机遇
根据公开信息,微信小程序作为腾讯云开发的一个重要端应用,已经成为业界成绩最好的Serverless开发平台:云开发注册用户数达56万,服务超过100万次开发者,日调用次数超过7亿。
在小程序云开发最初上线的几年,尽管这个产品得到了很多开发者尤其是大前端在使用体验上的“吐槽”,但这种微服务的能力正伴随产品迭代升级越来越受到开发者的关注和认可。
目前来看,微信小程序可能是比较突出的一个应用,但并不意味着Serverless只有这一个应用场景。同样在音视频、大数据、AI、物联网等领域,Serverless的应用场景十分广泛。
例如,在音视频领域,在腾讯多媒体实验室与敦煌研究院合作利用AI为壁画“诊病”的项目中,腾讯云Serverless技术实际也得到了运用。
腾讯云通过为客户提供Serverless化的GPU调度能力,将多媒体实验室提供的AI算法能力构建在这套GPU集群上,使得最终提供给敦煌研究院壁画拍摄资料,已经通过AI图像识别算法能力进行了非常好的识别。
“Serverless可能只是你看到的一方面,另一方面它向下依赖是整套底层计算资源,包括虚拟机、容器、存储、网络等软硬件相关的产品,”罗茂政指出。这意味着Serverless自身计算架构的升级同样也需要依赖软硬件的结合,才能让上层的客户拥有一个非常顺滑的体验。
而接下来,除了像云函数外,团队将在应用层进行一些深度的探索,希望能够推出更多开箱即用的服务提供给客户。
小结
当前,数字化转型成为一件必然发生的事情。
而Serverless的崛起将成为数字化转型浪潮中企业IT变革的一个关键支撑力量。
作为一项新兴技术,Serverless不可避免存在其落地应用的诸多困难,但不可否认的是,Serverless为企业治理带来了显著成效。
据今年CNCF公布的数据还显示,30%的受访者在生产中应用了Serverless架构,这一数字相比上一年仍有所提高。
在这场Serverless的风波背后,各大云厂商乃至更多生态同盟,正暗暗鼓劲抢滩下一阶段数字化浪潮红利。