众所周知,云计算的出现改变了传统IT架构和运维方式,而以容器、微服务为代表的技术更是在各个层面不断升级云服务的技术能力,它们将应用和环境中的很多通用能力变成了一种服务。
Serverless架构的出现,同样带来了跨越式的变革。
2018年,Gartner报告将Serverless Computing列为十大未来将影响基础设施和运维的技术趋势之一。
KBV研究公司2020年发布的《全球Serverless架构市场》报告同样显示,全球Serverless架构市场的规模预计到2024年将达到140亿美元,在这段预测期内将以23.4%的年复合增长率增长。
如今,Serverless已扛起了变革传统IT架构的大旗,成为企业数字化转型革新架构的首选。
Serverless发展如火如荼
Serverless并不是字面意义上指代的那样再也不需要服务器,而是指计算资源作为服务而不是服务器的概念出现。
尽管Serverless并没有官方权威的定义,但可以肯定的是,它是构建和管理基于微服务架构的完整流程,允许在服务部署级别而不是服务器部署级别来管理应用部署,甚至可以管理某个具体功能或端口的部署,从而让开发者快速开发软件。
这是因为它由函数即服务(FaaS)和后端即服务(BaaS)的架构组成,可以给企业提供直接的运行环境。
对于开发者和使用者来说,不用感受服务器,就可以调用函数平台完成函数运行,服务器的逻辑和状态也是由服务提供方管理,开通即可服务,恰好符合当前硬件软件化、软件服务化的技术趋势。
这样的特征和酷炫的功能让Serverless可以解决大多数用户和开发者最关心的问题——降低运维成本,缩短开发周期,专注于业务逻辑开发整合,因而成为云计算中一股厚积薄发的力量,获得无数开发者青睐。
Serverless最早的框架产品源于2014年亚马逊推出的AWS Lambda,为云中运行的应用程序提供了一种全新的系统体系架构。
在这之后,Serverless也从概念、愿景逐步走向落地,在各企业、公司应用开来,众多IaaS及Pass厂商相继入局。
从Forrester报告可以看到,如今Serverless已出现四大阵营,分别是云计算巨头、传统IT大厂、创新企业和开源工具平台。
在云计算巨头阵营,AWS、微软、阿里云、腾讯云、谷歌云等都在提供Serverless计算服务,分别居于领导者和强劲表现者象限。
Serverless技术首先由AWS提出,并率先推出云服务,其他企业基本上是跟随者。
在传统IT大厂阵营,以IBM、Oracle等企业为代表,正在从云市场转入PaaS市场,提供Serverless创建平台、工具。
在创新企业阵营,Nimbella、Cloudflare等企业提供Serverless创建工具,可以轻松构建、管理、测试、监控用户的无服务器应用架构。
尽管各个厂商都在大力推广自己的Serverless服务、产品,但是开发者普遍还是会担心被厂商绑定,因此出现了开源阵营,即具备一定规模的组织会基于开源方案,搭建自己的Serverless平台。
而一旦某个开源方案成为主流,云厂商就会主动去兼容开源标准并增大社区投入。
目前,Serverless开源项目很多,如:目前GitHub Star数最高的Serverless框架,与主流云厂商集成得很好。
Knative是Google发布的基于Kubernetes的Serverless框架。分布式无服务器平台OpenWhisk最开始由IBM和Adobe驱动,后来捐给Apache基金会,2019年7月晋升为顶级项目等。
Serverless落地
面临五大挑战
巨大的市场空间之下是无限的潜力,Serverless的优势显而易见,但任何事物都有局限性,Serverless作为一项相较新潮的技术也不能免俗。目前Serverless的落地情况如何?
2020年O’Reilly的调查表明,超过2/3的受访者表示,其组织的Serverless落地都是成功的,Serverless已经超越“炒热度”的阶段,成为了一种实际可行的基础架构选择。
在国内,云原生产业联盟发布的《中国云原生用户调研报告(2020年)》显示,随着Serverless技术显著升温,近3成用户已在生产环境中应用。
其中,16%的用户将Serverless技术用于核心业务的生产环境,12%的用户用于非核心业务的生产环境,仅有36%的用户尚未使用Serverless技术。
尽管Serverless技术的价值已被很多用户认可,然而Serverless 的落地问题却往往很棘手,在应用Serverless时依然存在很多挑战。
挑战一:部署成本
据《中国云原生用户调研报告(2020年)》显示,在采纳Serverless技术前,部署成本成为用户选择Serverless技术前最主要考虑因素,49%的用户考虑部署成本的问题,35%的用户考虑技术知识库完备程度。
挑战二:供应商锁定
这是一个大家都会担心的问题,某个供应商平台编写的代码是不是能够迁移到其它平台。由于Serverless还是一个新兴市场,所以关于供应商之间的可移植性问题还处于探索阶段。
挑战三:工具集不完备
在应用Serverless化部署的过程中,由于现阶段平台产品的调试工具尚不完备,用户在Serverless化部署的过程中仍面临诸多挑战。
《中国云原生用户调研报告(2020年)》显示,51%的用户在应用上线调试方面问题凸显,41%的用户认为动态变化的Serverless环境监控存在问题,32%的用户在在线、离线测试以及配套测试工具方面存在问题。
对于Serverless架构而言,测试是复杂且劳动密集型的工作,需要处理更多的场景,同时需要依赖环境不同,集成也是一个需要解决的问题。
挑战四:技术框架和标准繁多
Serverless框架繁多,其中以兼容Kubernetes生态的框架更受用户关注。
《中国云原生用户调研报告(2020年)》显示,30%的用户基于Knative搭建Serverless化应用,23%的用户选用Kubeless,23%的用户选用OpenFaaS。
值得注意的是,目前提供Serverless技术服务的不同服务商都有各自的标准,在函数调用、事件触发、函数的黄金变量的定义等方面,都拥有各自一套封闭的标准,缺乏开源的规范和开源的生态支持,这也会给用户落地Serverless带来难度。
挑战五:人才培养
由于Serverless还是一个比较新的技术,很难找到标准、正式的培训,所以企业必须形成特定的文档培训员工,同时需要根据实践案例不断更新文档。
另外,由于Serverless处于高速发展阶段,各大供应商也在不断推出新功能,这也给企业培训员工增加了不少难度。
结语
作为一项新兴技术,Serverless在发展和落地过程中会遇到很多难题。 但不可否认,随着用户心智的建立,产品本身能力的完善,用户在很多场景下使用Serverless架构,能够在可靠性、成本和研发运维效率等方面获得显著的收益。
2019年,UC Berkeley发表了一篇论文,“Cloud ProgrammingSimplified: A Berkeley View on Serverless Computing”,预言Serverless将主导下一个十年云的发展,产业的发展是螺旋式上升,Serverless的诞生和兴起逻辑早已蕴含其中。
相信下一个十年, Serverless 将重塑企业创新的方式,帮助云成为社会发展的强大动力。