作者 | 科技云报道
众所周知,云计算的出现改变了传统 IT 架构和运维方式,而以容器、微服务为代表的技术更是在各个层面不断升级云服务的技术能力,它们将应用和环境中的很多通用能力变成了一种服务。
Serverless 架构的出现,同样带来了跨越式的变革。
2018年,Gartner 报告将 Serverless Computing 列为十大未来将影响基础设施和运维的技术趋势之一。
KBV 研究公司 2020 年发布的《全球 Serverless 架构市场》报告中同样显示,全球Serverless 架构市场的规模预计到 2024 年将达到 140 亿美元,在这段预测期内将以 23.4% 的年复合增长率增长。
如今,Serverless 已扛起了变革传统 IT 架构的大旗,成为企业数字化转型革新架构的首选。
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 的落地情况如何?
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 将重塑企业创新的方式,帮助云成为社会发展的强大动力。