Categories
程式開發

Serverless国内发展的纵向观察


云计算正在各领域持续深化其影响力,同样,各领域下日益变化的需求,也在倒逼云计算不断进行自我优化。

2008 年可以说是大家比较公认的云计算元年,因为在这一年中越来越多的行业巨头和玩家注意到这块市场并开始入局。近年来,随着企业数字化转型在全球范围的普及,云计算产业得到了快速的发展。云正在重塑企业 IT 架构,外加上疫情的影响,数字化也被提上了许多企业的日程表,这更是加快了基于云服务的企业数字化转型。

但是力的作用是相互的,在改变行业的同时,行业也在改变着你。由于市场对于高效、快速、实时的需求越来越重,云计算的发展却逐渐“滞后”。原因在于过去十年来随着云计算的普及,许多应用和环境都已经变为了服务,开发者可以直接使用其中所集成的某一能力,是“构建一个框架运行在一台服务器上,对多个事件进行响应”的模式,但是这种模式对时下这种快速响应的需求已经感到了吃力。

2012 年,随着 Serverless 这一理念的推出,这一理念在霎时间就风靡了全球。在那个云计算还在努力扩张的时代,这种无服务器化的想法极大刺激了全球开发者的神经。Serverless 的出现更是将主机管理、操作系统管理、资源分配、扩容,甚至是应用逻辑的全部组件都集成为服务,开发者可以更直接的把大部分后台能力作为一个能力接口来使用。将开发过程中的能力使用改为服务使用,通过构建或使用一个微服务或微功能来响应事件。

那么这些企业为什么要采用 Serverless 呢?在此前 InfoQ 报道的一篇《2019 年 Serverless 应用报告:三分之二的落地实践都成功了?》的文章,其中提到了对于企业和开发者来说,促使他们使用 Serverless 最直接的因素有以下三点:

  • 首先,“减少运营成本”是大家采用 Serverless 的第一大原因,应用 Serverless 之后,就无需为潜在的流量高峰购买大部分时间处于空闲状态的服务器机架;
  • 第二,“自动按需扩展”,采用 Serverless 之后,可以随时扩展到当前的使用量,消除了意外或者季节性流量高峰的困扰;
  • 第三是“无服务器维护”,由于企业中大部分开发人员都是软件工程师,并不是系统管理员,所以对于软件的修复、保护和管理并不擅长,而使用 Serverless 之后,这些工作都可以交给供应商,他们只需专注于软件开发。

毫无疑问,这都是 Serverless 最具竞争力的优势。而这些深入人心的能力,就是 Serverless 在短短几年的发展历程中快速积累形成的。

Serverless,不只是一个单纯的理念

Serverless 译为无服务器架构, 首次出现是在 2012 年;2014 年年底 AWS 推出了 Lambda 产品标志着 Serverless 逐渐走向商业化;2016 年 Google Cloud Function 和微软 Azure Function 的成功,使得 Serverless 理念开始成为趋势。

从理念空谈到实践落地,Serverless 开始走向繁荣。

提到 Serverless,很多人的第一印象就是 FaaS+BaaS,当然这是 Serverless 的一种实现形式,也是主流对 Serverless 的理解,但是对于 Serverless 的完整定义却一直都是这个领域内的问题之一。由于没有准确的定义,使得 Serverless 在前几年的定位过于宽泛,各类技术炒作也层出不穷。不过在最近几年的发展中,随着落地实践案例不断增多,业内对于 Serverless 的认知在加深,对于 Serverless 的定义也逐渐变得清晰。

Serverless 架构由两部分构成,分别是 FaaS 和 BasS。这种”XaaS“的名词类型想必每个人都很熟悉了,是表明在云计算时代下各种能力即服务的标准公式,而 FaaS+BaaS 就是函数即服务与后端即服务的结合。

后端好理解,函数即服务应该如何理解?开发者先将函数定义封装在容器中,通过调用函数来实现调用后端存储等服务,进而快速完成整个后端能力在整个产品中的效力的过程就是函数即服务(具体内容下文会提及)。不过需要强调的是,Serverless 虽然译为无服务器,但其并不是真的不需要服务器,而只是将服务器等基础设施的管理“隐藏”起来,开发者无需担心一切由平台维护,开发者只需关注业务逻辑即可。

Serverless国内发展的纵向观察 1

IaaS 时代,基础设施即服务,用户不再需要购买实体硬件设施,预示着云计算时代的开启;SaaS 时代,软件及服务,各种线上能力开始在云端喷薄而出;BaaS 时代,仅提供应用依赖的第三方服务,只以 API 的方式提供应用依赖的后端服务;而在 FaaS 时代,用户直接提交代码包即可实现运行和部署,开发者不再关注底层,Serverless 必然将在这个阶段开始繁荣。

从全球范围来看,根据咨询公司 O’Reill 2019 年 12 月发布的 Serverless 使用调研报告显示,已有 40% 的受访者所在的组织采用了 Serverless,并且使用 Serverless 技术的行业也十分广泛。更值得关注的是,有超过 50% 的受访者在一至三年内采用 Serverless,而 15% 的受访者在三年前就已经开始使用 Serverless,其落地效率可见一斑。

接下来再将视野落脚在国内,Serverless 也迎来了其黄金发展阶段。

Serverless 在腾讯云逐步实现纵深发展

从空谈理念到技术选型的 C 位,Serverless 在国内逐渐成为实践核心。

虽然 Serverless 进入国内的时间相对较晚,但其发展速度却是最快的,国内企业对于 Serverless 的接受程度也越来越高。近几年国内的腾讯云、阿里云、华为云三大公有云厂商均开始提供基于 Serverless 框架的能力服务,其中腾讯云作为 Serverless 的先行者,近几年频频有大动作发声:

  • 腾讯云云函数 SCF,作为一款 FaaS(Function as a Service,函数即服务) 产品,其提供了各类触发器来控制函数的执行条件,代码完全由事件触发,平台根据请求自动平行调整服务资源,通过对一段数据执行函数计算然后进行输出;
  • 全球最流行的 Serverless 开发平台 Serverless.com 达成战略合作,其面向国内开发者的 Serverless Framework,其具有资源编排、自动伸缩、事件驱动等能力,覆盖编码、调试、测试、部署等全生命周期,帮助开发者通过联动云资源迅速构建 Serverless 应用。

除此之外,腾讯云在 Serverless 的落地过程中也在长期保持务实的风格,而这种专注于实践能力的优化,也得到了全球咨询与服务机构 Forrester 认可。在 Forrester 最新发布的《The Forrester New WaveTM: Function-As-A- Service Platforms, Q1 2020》报告中,腾讯云 FaaS 能力凭借在产品体验、安全性、战略愿景等方面的绝对优势脱颖而出,综合评分位居全球前三,也是中国唯一进入全球 Top3 的云厂商,并被 Forrester 官方赞为“强劲表现者”,原因主要有以下几点:

  • 开发、运维、调试、部署:针对开发者关心的 Serverless 架构下开发、运维、调试、部署等痛点,腾讯云提供了全云端闭环体验。不少企业级 Serverless 项目上云的成功案例,让大家更有信心:“上云”,真的变得越来越容易。
  • 开发者工具集方面:腾讯云提供了本地命令行工具、IDE 插件和 Web IDE 等支持,同时,还提供了健壮的功能隔离、租户权限管理和支持虚拟网络等功能。丰富的开发工具集,让开发者工作时如虎添翼。
  • 安全方面:腾讯 Serverless 在租户权限隔离、网关鉴权、公网防火墙、MicroVM 级别隔离等维度付诸巨大努力。守护每一行代码的安全,是腾讯云的职责所在。
  • 计费粒度:腾讯云 Serverless 首发的 1ms 的计费粒度,如此精打细算,全球也是“罕见”。要知道,目前行业普遍的时长计量粒度为 100ms(当实际运行时长小于 100ms 时,按 100ms 计费)。
  • 全球部署:目前,腾讯云 SCF(Serverless Cloud Function)已经在北美和亚太地区多个地区上线,而在南美、澳大利亚和欧洲等地区,腾讯云也正在加速部署,推动 SCF 在全球的部署。

很明显可以看出,腾讯云 Serverless 的技术体系和能力逐渐丰满并走向成熟。

Serverless Framework– 开发者的体验纵深

从 2017 年至今,经过三年的沉淀,腾讯云 Serverless 的用户规模以及产品下载、调用等次数每年都在急速增长。在这三年中,腾讯云积极吸收用户反馈,结合时下行业遇到的通用性问题,不断丰富和完善 Serverless 的架构和能力。

而在底层基础设施方面,腾讯云 Serverless 采用了轻量化虚拟机技术,现阶段的 Serverless 架构能够轻松实现业务进程的毫秒级启动。并且腾讯云在最底层做了双活,加固了对底层资源的安全保护;在资源管理层,腾讯云采用了集群监控,如果一个集群出现故障,系统会自动切换到另一可用集群,尽可能将对用户的影响降到最低。此外随着用户量的增加,腾讯云也设置了专门的自动扩缩容算法,以应对用户的需求变化。

Serverless国内发展的纵向观察 2

这里的用户当然是指使用 Serverless 的开发者群体,他们只需关注上图绿色部分以及和业务代码相关的的部分,其它底层设施完全交由腾讯云托管,极大缩短了整个研发周期,也不用因为服务器的维护而造成额外的支出。

Serverless 从来不是一款产品,也不是一个工具,而是一整套能力的合集。

如果要利用 Serverless 能力实现业务的落地,开发者需要依靠云函数 SCF、储存服务、开发者平台、开发者工具、应用服务等一系列能力的支持。而腾讯云则将这部分能力整合到了一起,推出了一站式 Serverless 应用开发平台 – 腾讯云 Serverless Framework。

Serverless国内发展的纵向观察 3

这套框架是腾讯云选择了业内主流的 Serverless Framework 无服务器应用框架,结合国内开发者的习惯于业内痛点,为国内开发者打造的一站式 Serverless 应用开发平台,具有资源编排、自动伸缩、事件驱动等能力,覆盖编码、调试、测试、部署等全生命周期管理能力,帮助开发者通过联动云资源来迅速构建 Serverless 应用,为开发者提供了全面的 Serverless 应用开发环境。

Serverless Framework 作为一款标准化、组件化的 Serverless 应用开发平台,具体优势主要有以下几方面原因:

  • 应用级框架:Serverless Framework 提供贴合应用场景的框架,开发者根据实际需求选择对应框架后,只需专注于业务逻辑的开发,无需关注底层资源;
  • 便捷部署:开发者部署应用时,Serverless Framework 会根据应用特性,自动完成云函数、API 网关、COS 等基础资源的部署和配置,无需再手动部署配置每一项基础资源;
  • 一站式体验:通过 Serverless Framework,开发者可以快速创建 Serverless 应用,并完成应用的调试和部署,监控已发布应用运行状态并快速排障;
  • 云资源能力的高度封装,灵活的组装方式。
  • 全面的应用开发平台背后则是安全稳定、易用高效的无服务器函数计算平台支撑。腾讯云云函数 SCF 为企业和开发者们提供的 Serverless 执行环境,使用者无需购买和管理服务器,只需使用 SCF 平台支持的语言编写代码即可运行,帮助开发者脱离繁杂的配置工作,不再受到后台架构和运维的干扰,是实时文件处理和数据处理等场景下理想的计算平台。

去服务器化是大势所趋

可以说,Serverless 架构的兴起,使得去服务器化真正解放了开发者,让基础设施管理有了新方式。随着技术上对去中心化、轻量虚拟化、细粒度计算的需求愈发强烈,这种“全云化”的开发模式也预示着真正的云计算时代正在到来。

但是在未来,如何更好地践行去服务器化,如何利用 Serverless 来帮助每一名开发者实现更低成本、更高效、更稳定的业务部署,这不仅仅是腾讯云在思考的问题,更是全球 Serverless 践行者一直在寻找的方向。

6月19日,ServerlessDays 将首次进入中国,更多详细内容可点击此链接访问大会官网查看。