Serverless 崛起背后的五大挑战

众所周知,云计算的出现改变了传统 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 将重塑企业创新的方式,帮助云成为社会发展的强大动力。​

(文章转自科技云报道 | ITCloud-BD)

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/75e63f595c8e90cbea4385e96
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券