2021年5月,美国计算机协会(ACM)通讯杂志发表了一篇具有历史意义的文章:《什么是无服务器计算(Serverless Computing),以及为什么它会成为云计算的下一个形态》。在这篇由9名美国业界专家和学者联合撰写的文章中,将自2010年开始的十年定义为云计算第一个形态,该形态变革了系统管理员的工作;而自2021年开始的下一个十年即将进入云计算的下一个形态,即将变革开发者的工作。

在云计算的第一个十年,通过兴建的大型多租户数据中心以及位于其中的虚拟服务器和虚拟网络等,大幅简化了系统管理员的工作;而在云计算的下一个十年,则将向云软件的开发者隐藏这些服务器、虚拟服务器等硬件基础设施,通过代码抽象进一步简化云开发,让开发者更易于编写云软件。在云计算的下一个形态,关注点从服务器转换到应用软件,开发者不再关注底层云基础设施的复杂的配置、管理与运维,而只需要关注业务逻辑即可。相比之下,学者们将第一种形态的云计算称为“有服务器计算(Serverful Computing)”。

ACM的学者们认为,Serverless的时代才刚刚开始,正如2010年的云计算才刚刚开始一样——未来的Serverless计算将显著不同于今天的Serverless应用(FaaS函数即服务),未来的Serverless将成为公有云数据中心基础设施的统一管理与服务交付模式。

(腾讯云Serverless中心副总经理罗茂政)

而腾讯云则是Serverless的积极推动者,在2021年6月5日的Techo TVP开发者峰会Serverless Days大会中国站2021上,腾讯云Serverless中心副总经理罗茂政强调,腾讯云非常认同Serverless的方向,Serverless不仅是FaaS+BaaS,更是一种技术架构理念。当前,Serverless仍面临很多挑战,但路径已经十分明确,腾讯云将持续投入Serverless Computing。腾讯云Serverless产品总监张浩宣布截止当天的腾讯云Serverless开发者已达百万+、日均资源调用量达亿+GB、日均调用量达百亿+次。

Serverless:云计算的下一个形态

早在2014年,AWS推出业界首个云函数产品Lambda的时候,就引起了轰动。AWS Lambda是第一种Serverless无服务器计算的代表,这就是FaaS函数即服务。AWS Lambda服务对触发事件作出响应,运行相关代码并自动管理底层计算资源。AWS Lambda体现Serverless计算的主要优势,包括大幅简化云开发、真正的Pay-as-you-go、更强的弹性计算。所谓函数即服务,即像使用电子表格中的公式一样简单,FaaS适合于物联网等事件触发型应用。

(Serverless与Serverful的对比。来源:ACM)

随着FaaS的流行,出现不少同样可以运行任何代码且具备Serverless计算特点的云服务,诸如Google Cloud Dataflow、AWS Glue等,每一个云服务都针对特定的应用场景。随着Serverless计算理念被广泛接受,CNCF云原生计算基金会在2018年成立了Serverless计算工作组。CNCF认为Serverless远不止于FaaS,也就是随需在一段短时间内运行一小段代码,AWS Lambda是这个1.0阶段的代表但在执行时间、协议和本地开发体验等方面有其局限性。在2.0阶段,一些解决方案实现了对Kubernetes的抽象,代表为Knative,即对容器技术的Serverless化,这样就可以没有函数运行时间的限制,也可以使用任何语言。

接下来,CNCF认为,真正的Serverless愿景,是处理更多的复杂编排和集成模式,以及结合有状态的管理。之前的Serverless应用都是无状态应用,但现在越来越多被创建的解决方案,其目的是以Serverless模式实现已有的带有编排的集成模式,也就是对PaaS通用云服务的Serverless化,CNCF称之为2.0阶段。今天的PaaS层,无论是微服务、单体应用还是函数,都以容器化方式运行,而在这一层实现Serverless方案,企业就可以同时运行Serverless和Non-Serverless两种计算任务。

简单理解,Serverless的真正愿景就是面向云开发者,隐藏云底层的系统管理与运维工作。正如同传统高级编程隐藏了CPU的工作方式,Serverless编程将隐藏云中服务器的工作方式——也就是如何构建可靠、可扩展、安全的分布式系统。一旦实现了对PaaS层的Serverless方案,云开发者就再也不用关心底层分布式云系统的配置和管理细节。实际上,对今天的云开发来说,开发者仍然要与系统管理员一起,配置所需的云中虚拟机、容器、灾备等底层云基础设施细节,这对于开发者来说还是有一定的门槛。而且当前的所谓云服务自动伸缩也是需要提前预留虚机实例,而这些预留实例无论使用与否都要付费。

在过去十年,云计算IaaS层的大规模兴起和流行,特别是Kubernetes对云IaaS层的统一,极大简化了系统管理员的工作——从本地服务器到云中服务器,系统管理员可以通过浏览器就轻松管理海量的服务器和完成分布式系统架构与运维。未来十年,Serverless计算将向云开发者进一步隐藏底层云及分布式系统的工作——大幅简化云开发、真正的Pay-as-you-go以及更强的弹性计算,没有云系统管理知识与技能的普通开发者也可以通过拖拉拽方式的低代码和无代码方式,轻松完成业务逻辑的编排和业务软件的开发。

Serverless计算的前沿

ACM的专家和学者认为,无服务器Serverless计算将主导下一个阶段的云计算形态,释放云计算的强大能力并交到所有应用开发者的手中。当前的Serverless编程抽象分为两种:面向特定应用和面向通用PaaS领域,其中面向特定应用的即FaaS,而面向通用PaaS服务的Serverless方案则是Serverless研究的前沿。

(两种Serverless抽象。来源:ACM)

前沿方向之一,Serverless数据库与存储。SQL与NoSQL数据库和存储(特别是对象存储)是数据服务的基础,数据服务是PaaS通用核心技术之一。如何实现Serverless化的数据库与存储方案,是PaaS Serverless的前沿研究之一。其中涉及到从传统的给定容量、连接与查询限制的实例供应,转向可按需实现计算基础设施和成本的线性扩展模式。2020年4月,腾讯云正式发布了国内首个Serverless数据库产品——PostgreSQL for Serverless,该数据库不需要用户创建实例,完全基于Serverless架构,最快能够1秒钟内完成部署,用户使用该数据库完全按照实际使用量付费,成本降低70%。2020年底,腾讯云进一步发布了国内首款Serverless MySQL数据库。

前沿方向之二,复杂微服务场景编排。今天最常用的Serverless场景,当属支持微服务架构。微服务作为云原生技术的“三驾马车”之一,主要提供执行单一任务的小型服务、小型服务之间通过API方式调用、小型服务可以横向扩展,微服务可以由各种PaaS或容器技术实现,而Serverless也被视为微服务的一种实现方式。Serverless计算以执行小型代码、自动伸缩、真正的按使用量付费等为特点,非常适合微服务架构。腾讯云应用与服务编排工作流ASW是一个用来协调分布式任务执行的编排产品,可以将多个腾讯云服务按步骤进行调度,完成各种业务应用场景。ASW支持所有腾讯云服务的编排调度,包括云函数、Serverless服务,例如在音视频处理中ASW通过云函数,可以将转码任务进行切片并行处理,大幅提高任务处理的吞吐量,满足高实时性、高并发能力的视频应用、社交应用场景。

前沿方向之三,本地及远程Serverless调试。云上的各种服务,在本地无法完全模拟,程序员大都遇到过本地和远程环境运行结果不一致的情形,追查起来费时费力,不仅效率低下,也造成很差的开发体验。而对于Serverless应用的调试,要在本地构建一个容器环境,成本也不低。腾讯云首发了云函数的在线远程调试功能,采用Node10及以上版本的runtime,使用Chrome浏览器打开云函数控制台,在函数代码页便可看到在线调试的入口,这样开发者就能连入云端容器,代码在云端生产环境和调试环境是一样的。此外,腾讯云Serverless本地开发工具(SCF CLI)以开源项目的形式维护,让开发者可以方便的实现函数打包、部署、本地调试,也可以方便生成云函数的项目并基于demo项目进一步开发。而腾讯云Serverless VS Code插件,则支持用VS Code原生的调试入口调试云函数。

在其它的Serverless性能、扩展连接更多服务等前沿方向上,腾讯云也一直在探索相关的实践。面向异构芯片的抽象,腾讯云推出了Serverless GPU调度能力,这样就能同时调度CPU通用计算芯片以及GPU面向特定计算的芯片;面向Kubernetes抽象,腾讯云推出了Serverless Kubernetes;面向Serverless性能方面,腾讯云云函数SCF首创提供了函数异步执行模式,可以让Serverless任务实现24小时超长时间稳定运行、单实例更多算力等,满足音视频处理、ETL 数据批处理、机器学习及AI推理等;在连接更多SaaS和PaaS服务方面,腾讯云Serverless今年上线了事件总线,可连接超过十款PaaS服务,而通过腾讯千帆SaaS计划还能连接更多的SaaS服务……

国内最大的Serverless服务商

腾讯云Serverless副总经理罗茂政在Techo TVP开发者峰会Serverless Days大会中国站2021上强调,腾讯云已经成为国内服务规模最大的Serverless厂商。2021年3月,Forrester 发布《The Forrester Wave: Function-As-A-Service Platforms, Q1 2021》报告,腾讯云Serverless综合评分再次跃居全球顶级序列,被 Forrester 评为“强劲表现者”,其中在产品服务矩阵、合作伙伴生态,以及客户规模维度上得分国内第一。去年,在Forrester另一份云函数服务能力研究报告上,腾讯云凭借在产品体验、安全性、战略愿景等方面的绝对优势,成为中国唯一进入全球Top3的云厂商。

腾讯云对Serverless高度重视,可以说在云原生领域“All on Serverless”。腾讯云积极推动国内Serverless生态和国际接轨,将全球流行的Serverless Framework平台引入中国,推动了中国的Serverless技术尽快与国际对齐,让Serverless客户快速享受到技术全球化优势。腾讯云将ServerlessDays引入中国,ServerlessDays是面向开发人员的全球技术会议,已经在全球40多个城市举办,成为Serverless技术发展风向标,2020年在腾讯云的推动下首次来到中国。此外,腾讯云还运营了中国首个以Serverless为主题的技术社区。

目前,腾讯云已经推出了国内最大、最完整的Serverless产品矩阵和开发平台。腾讯云Serverless不仅仅是云函数,而是将Serverless理念扩展到更多的PaaS和IaaS层。在基础设施层,腾讯云Serverless支持MySQL和PostgreSQL两种主流开源数据库,还支持存储、网络等基础IaaS服务;在Serverless计算方面,腾讯云提供了云函数SCF、弹性容器服务EKS、工作流ASW、事件管理EventBridge;在Serverless开发者工具方面,腾讯云提供了Serverless Framework、VS Code插件、Cloud Studio Web IDE等多种工具;在Serverless应用生态方面,腾讯云推出了CloudBase云开发和微搭低代码WeDa等小程度开发平台,支持Spring Cloud、Service Mesh和分布式事务DTF等微服务场景,提供了HTTP服务、音视频转码、ETL数据处理等企业级方案;在监控排障工具方面,腾讯云提供了微服务观测平台TSW、应用性能监控TAPM;在云服务集成方面,腾讯云提供了腾讯千帆SaaS应用连接器、实时音视频TRTC、数据湖计算DLC、多媒体实验室等工具与资源。

针对Serverless应用面临的缺少基于业务场景的解决方案、开发工具不完善导致开发体验欠佳以及成本费用过高等挑战,腾讯云Serverless从产品化角度帮助开发者尽快上手Serverless。例如:在计费方面,腾讯云在全球率先发布了1毫秒计费粒度,目前行业内Serverless服务的计费粒度普遍为100毫秒,而1毫秒计费粒度则极大帮助用户降低成本;在开发体验方面,腾讯云从开发者的视角出发,重点解决整个生命周期的挑战,使Serverless 的项目开发更贴近用户习惯,提高开发效率;在业务场景方面,腾讯云针对音视频转码、IOT事件响应、小程序开发等各种业务需求提供对应的Serverless方案。

腾讯云Serverless也结合了腾讯自身使用Serverless的实战经验,包括多业务场景多租户的安全隔离、高并发的函数实例扩缩容、百万级别函数实例的集群管理,以及几十毫秒级别的冷启动延时等。其结果是:使用腾讯云自研的轻量级虚拟化技术,MicroVm启动时间缩短至90毫秒,函数冷启动减低至200毫秒,并且支持上万台计算节点同时扩容;在函数与VPC网络打通中,依托于新的隧道方案,时间也由原来的秒级降低至毫秒级等等。

今天,金融、政府、工业、零售等传统行业都在进入Serverless领域,Serverless生态正处于蓬勃发展的阶段。目前,腾讯云Serverless已经服务了超过1万家企业,包括互联网头部厂商、大型金融科技企业等在使用Serverless构建IT系统。例如某国内头部智能家居厂商,就采用了腾讯云Serverless产品、服务和架构,实现了近乎无人值守的弹性免运维体验,让这家公司IT团队能够聚焦于智能家居服务,而不用关注基础设施管理。

【全文总结】Serverless是继虚拟机和容器之后的新一代通用计算平台,是云计算特别是公有云的下一个形态,将主导下一个阶段的公有云。腾讯云作为国内最大的Serverless开发平台和支持者,已经走在Serverless全球的前沿,大幅降低Serverless门槛,全力释放云计算红利,推动云开发的全面变革。人人都是开发者的时代,在Serverless的推动下,即将到来。(文/宁川)

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐