越来越火的Serverless(无服务器计算),到底是个啥?

HelloKitty 2022-12-05 11:11

扫一扫 在手机阅读、分享本文

1713

本文由 鲜枣课堂 ,作者小枣君 撰写/授权提供,转载请注明原出处。

到底什么是 Serverless?

英语好的童鞋,可能一眼就看出来了,Serverless 是由 Server 和 less 两个词根组成的词。从字面上理解,就是“无服务器”。

行业通常所说的 Serverless,主要是指“无服务器计算(Serverless Computing)”。

那么问题来了,这年头,就连小学生都知道,服务器是具有很强计算能力的计算机,是我们现在最主要的计算工具。“无服务器计算”,如果不采用服务器,那该怎么算呢?

事实上,Serverless 所谓的“无服务器计算”,并不是真的不需要服务器,而是说,对于用户,服务器变得“不可见”了(或者说“无感知”了)。

越说越玄乎了,有木有?别急,还是让我从头开始说起吧——

Serverless 的诞生背景

1946 年 2 月,世界上第一台数字式电子计算机 ENIAC 诞生,标志着人类正式进入了数字计算机时代。


早期的计算机都是大型机,体积庞大,价格昂贵,但是,算力却很弱。当时,这些机器只有很少的公司才能拥有,用于特定的计算目的。

到了 1970-80 年代,为了解决单点式计算(一台大型机,独立完成全部的计算任务)算力不足的问题,专家们发明了网格计算这样的分布式计算架构,取得了不错的效果。

说白了,分布式计算,就是把一个巨大的计算任务,分解为很多的小型计算任务,交给不同的计算机分工完成,

1.png

再后来,随着芯片技术的进步,计算机的体积变得越来越小,算力也变得越来越强劲。不久后,小型化的计算机出现了,也就是我们常说的 PC(Personal Computer,个人电脑)。

计算机制造和使用成本的不断下降,加速自身的普及,也刺激了计算机网络的出现与发展。从局域网到广域网,再到互联网,计算机网络的规模变得越来越大。

互联网的出现,彻底改变了计算机服务用户的方式。

此前,一个机房服务于一所学校、一家企业、一个政府部门,现在,有了互联网,服务对象可以是全球用户,规模大大增加了。

用户规模增加,意味着对算力的需求也增加了。互联网服务提供商,需要一种更强大、更便宜的算力,满足用户需求。

于是乎,就有了云计算。

很多人认为,云计算就是一个超大号的机房,和以前的企业机房没有区别,只不过服务器更多些。

这种观点是不对的。

云计算的本质,不是算力资源的简单堆砌,而是池化——它将大量的零散算力资源(廉价的算力资源)进行打包、汇聚,实现更高可靠性、更高性能、更低成本的算力。

具体来说,在云计算中,CPU、GPU、内存、硬盘等计算资源被集合起来,通过软件的方式,组成一个虚拟的可无限扩展的“算力资源池”。如果用户有算力需求,“算力资源池”就会动态地进行算力资源的分配,构建一个虚拟的“计算机”。用户按需使用、付费,即可。

相比于用户自购设备、自建机房、自己运维,云计算有明显的成本优势,可以节约大量资金和人力。

根据提供算力资源的层级不同,云计算通常也分为IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)。如下图所示:

2.png


那么,问题又来了——云计算这种“租”的方式,是不是最终极的算力资源使用方式呢?我们作为用户,使用算力,还能更简单一点吗?

答案是肯定的。

不管是自建机房,还是云计算,用户都需要和服务器打交道,和软硬件环境打交道。这些都是工具和过程,而我们的最终目的是什么?是得到运算结果。

3.png

那么,为了得到结果,我们是不是一定要关心环境的搭建过程?

不一定。既然环境可以租,那何不更彻底一点,直接“租”服务呢?

举例来说,如果把计算过程理解为炒菜。以前,我们为了炒菜,需要自己建个厨房,自己买锅碗瓢盆、油盐酱醋,自己亲自炒菜。后来,有了云计算,我们可以租个厨房,租工具,然后炒菜。现在,想要更简单的话,是不是可以直接叫外卖?

再例如,以前,我们上班通勤,是自己买车,自己开车。然后,有了云计算,相当于租车。现在,是不是可以直接打车?

说白了,我们要的是计算服务和计算结果。计算环境(硬件),我们完全可以不去操心。

4.png

说到这,我们的主角——Serverless,终于闪亮登场了。

对于 Serverless,我们可以把它理解为一种架构,一种理念,甚至是一种思想。

Serverless 的核心目的,就是在云计算的基础上,再向前迈进一步,彻底“包揽”所有的环境工作,直接提供计算服务。

在 Serverless 架构下,开发者只需编写代码并上传,云平台就会自动准备好相应的计算资源,完成运算并输出结果,从而大幅简化开发运维过程。

换句话说,用户完全不用关心厨房,你把食材提供给 Serverless 平台,它负责把菜炒好,就这么简单

Serverless 的特点

Serverless 是云计算的进一步延伸,所以,它继承了云计算的最大特点——按需弹性伸缩、按需付费。

现在的互联网服务,基本上都是采用微服务架构。也就是把一整套服务,拆分为多个细分服务,由不同的服务器完成运算。

Serverless 的特点是,这个服务足够“细小”,变成了“函数级”的颗粒度。

5.png

所谓函数,就是提供输入,计算输出。

从层级上来看,Serverless 在传统云计算 SaaS 的 Application(应用)层级之上,又加了一层——function(函数)。它的颗粒度更细,可以更灵活地满足用户的算力需求。

6.png


按照 CNCF 对 Serverless 的定义,Serverless 架构是采用 FaaS(函数即服务)和 BaaS(后端服务)服务来解决问题的一种设计。

FaaS 就是 Function as a service(函数即服务)。每一个函数都是一个服务,函数可以由任何语言编写,直接托管在云平台,以服务形式运行,通过事件触发。

BaaS 则是 Backend as a service(后端即服务)。云平台提供的后端组件整合,开发者无需开发和维护后端服务,通过 API/SDK 的调用,便可获得例如数据存储、消息推送、账号管理等能力。

Serverless = FaaS + BaaS

Serverless 的背后,依然是虚拟机和容器。只不过,服务器部署、runtime 安装、编译等工作,都由 Serverless 计算平台负责完成了。对开发人员来说,只需要维护源代码和 Serverless 执行环境的相关配置即可。这就叫“无服务器计算”。

Serverless 架构的最大优势,显然就是帮助用户彻底摆脱了基础设施管理这样的“杂事”,更加专注于业务开发,从而提升了效率,降低了开发和运营成本。

根据业界的统计,在商业和企业数据中心里的典型服务器,日常仅仅只提供了 5%~15% 的平均最大处理能力的输出。这是一种算力资源的巨大浪费。

Serverless 的出现,可以让用户按照实际算力使用量进行付费,属于真正的“精确计费”。

换言之,用户的每一分钱,都花在了刀刃上。

Serverless 的发展历程

世界上第一个 Serverless 平台,是 2006 年发布的 Zimki。这个平台提供服务端 JavaScript 应用,支持“按照实际调用付费”。不过,当时他们并没有使用 Serverless 这个名词。

后来,到了 2012 年,Iron.io 的副总裁 Ken Form 在文章“Why The Future of Software and Apps is Serverless”中,首次提出了 Serverless,才宣告这个概念的正式诞生。

2014 年 11 月,亚马逊率先推出了真正意义上的第一款 Serverless FaaS 服务——Lambda。从此,各大厂商开始跟进。

2017 年,Serverless 开始在国内落地。这一年,阿里云和腾讯云先后推出了自己的 Serverless平台。阿里云的 Serverless 平台,被直接命名为函数计算(FC,Function Compute)。

一年后的 2018 年,阿里云推出 Serverless 容器服务 ASK 和 Serverless 应用引擎 SAE。

那一时期,刚好小程序开始火爆。Serverless 的灵活架构,非常适合小程序的开发。于是,吸引了大量的开发者们。

到了 2019 年,国内厂商纷纷入局 Serverless。如今,Serverless 已经成了各大云厂商的标配,受到整个行业的热捧。

本月初,2022·云栖大会上,阿里云智能总裁张建锋表示,以云为核心的新型计算体系正在形成,软件研发范式正在发生新的变革,Serverless 是其中最重要的趋势之一。

7.png

他认为,Serverless 让云计算从一种资源真正变成一种能力,未来云将全面 Serverless 化,更加接近“电网”模式,按计算的调用次数付费。

目前,阿里云已经拥有超过 20 款 Serverless 产品,包括函数计算 FC、Serverless 应用引擎SAE、Serverless 容器服务 ASK、PolarDB 数据库、AnalyticDB 数仓等。其中函数计算日调用次数超过 200 亿次,整体规模位居国内首位。

前面小枣君也提到,Serverless 并不是没有服务器的计算,而是将算力环境和资源进行了“隐藏”,让用户不可见,无需操心。事实上,Serverless 不仅需要算力资源,而且对算力资源的要求比以往更高。

以阿里云为例。他们之所以能够做 Serverless 平台,就是因为背后有四大核心技术的支撑。这四大核心技术,分别是:神龙计算平台、袋鼠沙箱容器、盘古存储平台和洛神网络平台。

在算力芯片上,阿里云今年 6 月新推出的一款云数据中心专用处理器 CIPU(Cloud Infrastructure Processing Unit),也非常擅长对数据中心的计算、网络和存储资源进行管理和加速,帮助进一步提升 Serverless 平台的性能。

Serverless 的落地案例

接下来,我们不妨通过几个案例,详细看看阿里云 Serverless 平台究竟是如何提升算力效率的。

阿里巴巴每年的双 11 促销,是行业公认的算力极限挑战。海量用户、高并发,对系统的处理能力有着极高的要求。

2020 年天猫双 11,阿里云实现了国内首例 Serverless 在核心业务场景下的大规模落地,扛住了全球最大规模的流量洪峰,创造了 Serverless 落地应用的里程碑。

今年天猫双 11,阿里云 Serverless 支撑业务场景更多,范围更广。阿里云函数计算(FC)与集团内的运维体系全面实现标准化对接,打通了研发的最后一公里,首次实现了业务全链路“FaaS+BaaS”的 Serverless 体系化研发,覆盖淘特、淘系、阿里妈妈、1688、高德、飞猪等业务场景。

根据数据统计,支撑场景数量同比增加2倍,峰值流量总数同比增加3倍,实现了百万 QPS 的突破,人效提升 40%。

8.png

再来看看外部用户。

网易云音乐,是阿里云 Serverless 产品的重要客户之一。

他们的产品背后,有非常多的算法服务支撑,比如多种码率的音频转码、听歌识曲中应用的音频指纹生成和识别、副歌检测、小语种音译歌词等等。

这些任务的资源需求和执行时间变化很大,需要使用 C++、Python 等多种语言实现,对算力的弹性要求非常大。

早期的时候,网易自建了一个算法服务平台,进行应对。但随着业务增长,以及算法复杂度的不断增加,基础设施管理的负担越来越大,严重影响了工作效率。

引入阿里云 Serverless 平台之后,网易的算法计算需求得到了很好的满足。网易在函数计算上高峰期一天处理超过 2000 万个任务,算法应用到业务 10 倍速的提升,稀疏调用的算法成本大幅缩减。

同样的效率提升,还发生在南瓜电影、越光医疗、世纪华联、江娱互动等企业身上。他们都是阿里云 Serverless 平台的用户。

9.png

2021 年 3 月,阿里云函数计算凭借在产品能力、安全性、战略愿景和市场规模等方面的优势脱颖而出,在 19 个评估项目中,拿到了8项满分和 12 项最高分,进入了 FaaS 领导者象限(综合产品能力位列全球第一,战略愿景全球第二)。这是首次有中国云厂商进入 Forrester FaaS 领导者象限。

结语

随着数字经济浪潮的蓬勃发展,以及各行各业数字化转型的不断推进,算力的价值正在持续提升。

在单纯提升芯片算力方面,我们面临越来越大的挑战(摩尔定律逐渐失效)。在这种情况下,我们必须更多地考虑,该如何提升算力的使用效率。

作为一种灵活轻量化的新型算力架构,Serverless 毫无疑问是我们挖掘算力潜力、提升算力效率的一个重要手段。

客观来说,目前的 Serverless 谈不上完美。在实时性等方面,还存在一些不足。小枣君相信,随着时间的推移,这些问题最终都会得到解决。

Serverless,将引领我们全面走向算力新时代。

扫一扫 在手机阅读、分享本文

扫码关注公众号

获取更多技术资讯

客服微信
享受1V1专属服务
免费领取技术福利
发送名片申请入群
与CTO聊合作
(备注姓名、公司及职位)
热门文章