无服务器技术Serverless最早诞生于2014年,主要目的是发展云计算,并且它可以解决用户应用上云的面临的两大问题:
一是服务器资源的浪费。按照《福布斯》的统计,在商业和企业数据中心的典型服务器仅提供 5%~15% 的平均最大处理能力输出。
虽然云计算提供按需使用、按使用付费的方式,但是服务器等资源利用的粒度还是很大。这无疑是一种资源的巨大浪费。
另一个问题则是用户在应用开发时,必须考虑云计算资源的情况,不能专注于业务的发展,加大应用开发的复杂度,上线时间加长。
因此,Serverless技术在云计算资源的利用和让用户专注业务发展而不需关注云资源的优势,立即吸引了用户的注意。
今年市场研究机构Forrester发布的最新报告认为,Serverless计算的兴起,让FaaS成为继IaaS、PaaS、SaaS之后一种新的云计算能力提供方式。
无服务器的“正面”
作为一种新型的开发架构,Serverless被认为是继虚拟机和容器之后,第三代通用计算平台。
因此,当阿里云提出All in Cloud,上云成为企业IT建设的主要方式后不久,腾讯云经提出All in Serverless,是云计算发展的一种延续和深入,将给用户带来体验更好的服务。
云原生计算基金会CNCF给出了Serverless的定义中:
Serverless计算意味着运行应用代码的服务器与用户不直接面对面了。在无服务计算时代,研发人员无需对服务器进行监控、配置、更新、扩容等运维操作。
客户只需要将代码上传到云厂商提供的无服务器计算平台上即可,云服务商会保证代码能正常运行,当流量突增时,自动对服务器进行扩容;流量减少时,对服务器进行缩容。
这样,运维操作对研发人员来说都是黑盒的,会将开发人员从繁琐的运维工作中解放出来。Serverless可以根据用户请求来计费,完全做到按量计费。
Serverless的优势和价值首先在互联网企业中得到验证,阿里、腾讯的不少应用首先采用了无服务器架构,给用户带来的价值主要包括三个:
第一,减少运营成本是大家采用Serverless的第一大原因,应用Serverless之后,就无需为潜在的流量高峰购买大部分时间处于空闲状态的服务器。
第二,自动按需扩展。采用了Serverless之后,可以随时扩展到当前的使用量,消除了意外或者季节性流量高峰的困扰。
第三,不要关注服务器的维护工作。由于企业中大部分开发人员都是软件工程师,并不是系统管理员,所以对于软件的修复、保护和管理并不擅长,而使用Serverless之后,这些工作都可以交给供应商。
无服务器的“反面”
那么,Serverless技术与架构在中国有哪些新的进展呢?
首先,Serverless覆盖的场景逐渐扩大了,从去年大家讨论比较多的前端/小程序等场景,扩展到很多不同场景,如HTTP服务、IOT事件响应、多媒体转码等,各种各样的服务、场景都可以采用Serverless来实现。
其次,产品成熟度提升了。对比去年开发者体验,不同企业包括腾讯云、阿里云、AWS等所提供的产品,不管是性能还是功能,甚至是开发体验,今年都有明显的提升。
比如腾讯云提供的一站式开发者工具,从开发命令行到IDE插件到控制,从开发者自动去建设监控,到运维到日志检索功能等,日益完善。
不过市场分析机构O’Reilly 的一项调查发现,约九成的企业已经在使用云计算及其相关产品,而企业对于Serverless应用的态度还很保守。
根据调查结果显示,34% 的受访者表示正在使用 Serverless,37%的受访者表示将在未来采用Serverless。
同时还有少部分企业已经对Serverless应用做了“实验”,如通过供应商评估确定Serverless方案或在有限的基础上测试 Serverless。
图片来源:O’Reilly
任何事物都有两面性。Serverless 优势固然很多,但是在企业中落地时,难免会遇到一些问题。
因此,专家认为,Serverless的应用还面临一些挑战,如缺少基于业务场景的解决方案,开发工具不完善导致开发体验欠佳,以及成本费用过高等。
另外,企业的业务发展整体理念还停留在传统应用层面,对无服务器函数的运作机制、事件触发行为等了解不深,加上框架做了很多屏蔽的工作,很容易出现某些代码编写错误或者前期需求评估不到位,能力无法实现的情况。
另一方面,FaaS函数新的事物还需要时间逐步沉淀,加上弹性容器的影响,整个链路都还是新生事物,需要时间去验证稳定性和可靠性。
几大供应商的进展
如今正是云厂商Serverless开疆拓土的时代。
最早提出Serverless概念的AWS,于2014年年底推出Amazon Lambda。
AWS拥有种类最丰富的Serverless函数,可以协同运行。云原生计算基金会(CNCF)的调查数据表明,AWS Lambda在蓬勃发展的Serverless市场占有70%的份额。
2019年,阿里提出Serverless架构。2020年,阿里Midway Serverless v1.0正式发布,将阿里的 Serverless 能力逐步开放。
Midway Serverless 是套面向 Serverless 的解决方案,包括框架、运行时、工具链、配置规范几个部分,提供了一些面向 Serverless 体系的特有能力:平台间迁移更容易,让应用更易维护和扩展,企业级开发链路更简单顺畅,生态更轻量和自由等。
2020年,腾讯云展示了其在Serverless领域的最新进展,包括率先在业界推出1毫秒计费模式,将行业标准提升百倍,使用者可以真正实现按需付费,彻底消除了困扰用户的资源成本浪费难题。
为持续降低开发门槛,推动Serverless大规模应用,腾讯云构建起完善的生态。
比如,在微信生态,推出的“小程序·云开发”产品,由于可以大幅提升小程序的开发效率,上线一年后注册账户即超过23万,为超过50万开发者提供服务。
3月1日,市场研究机构Forrester发布的最新报告认为,在Serverless计算最主要的技术方向——函数即服务平台(FaaS)方面,AWS、微软两家企业居于领导者象限,腾讯云、阿里云与谷歌云、Nimbella、IBM、Cloudflare等处于强劲表现者象限,Oracle则处于挑战者象限。
未来走向
在Serverless技术与架构方面,看得见的进展包括:过去三年,Serverless的用户规模、产品下载和调用等每年呈现10倍速增长;开发者数目的成倍的增长;云计算巨头正在全力通过构建生态、打造社区和解决客户面临的发展挑战,推动Serverless技术在全球的应用和发展等。
未来,越来越多的企业开始步入All in Serverless,快速实现云端迭代,不仅运维成本得到大幅降低,还实现了自动扩缩容,节省了资源投入。
云巨头会持续应用新的技术、提供新的功能、开发新的产品和构筑新的生态,从多方面为开发者提供全面完整的Serverless体验。