【六六互联】长期出售【美国抗投诉服务器】【欧洲抗投诉服务器】【亚洲抗投诉服务器】

serverless计算到底带来了什么技术突破?

serverless计算到底带来了什么技术突破?

serverless计算到底带来了什么技术突破?关于这个问题有不少争论,许多人认为serverless计算不过是一些已有技术的重组和封装,只是对一些PaaS产品(如Heroku, Firebase, Parse)的简单整合归纳。甚至有一部分人认为上世纪90年代非常流行的web host共享技术就已经实现了serverless的功能,比如他们都使用无状态化的编程模型,并且提供多租户机制。一个典型的例子就是CGI (Common Gateway Interface),它甚至允许你直接部署使用不同语言(Perl或PHP)编写的脚本到服务器上运行。而之前提到的GAE早在serverless概念流行起来的几年前就提供了相似的功能,但还是遭到了市场的否决,我们凭什么认为serverless是一种不同于PaaS和其他这些产品的革新呢?

今天使用cloud functions的serverless计算和它的前辈们有着几个重要的不同,主要体现在:更好的自动缩扩容、强隔离性、平台灵活度以及服务生态支持上。

以自动缩扩容为例,AWS Lambda提供的自动缩扩容能力和之前存在的类似功能相比拉开了显著的距离:它能够更精确地追踪机器的负载并且快速响应缩扩容,甚至允许缩容到零实例状态来实现零费用。同时,计费的粒度也精细到了毫秒级别,而不是之前的小时级,现在我们可以说,用户的服务是真正按照代码实际执行的时间来收费的,而不是之前那样按照需要执行代码的资源来收费的了。

serverless所需要的多租户硬件共享依赖于高性能的安全隔离,目前的主流选择是VM级隔离,但这里存在一个问题,就是VM的启动速度比较慢,不足以支持serverless所需要的弹性缩扩容能力。为了解决这个问题,AWS Lambda使用了两种VM实例的资源池,一种称为“预热池(warm pool)”,仅仅是被分配给对应的租户(但是不启动服务),另一种则被称为“激活池(active pool)”,它们是之前已经运行过函数服务的实例,并且会一直保持着去服务后续的请求。这些能够实现硬件高利用率的资源生命周期管理和多租户打包才是serverless的关键技术,使它区别于原有的类似产品。需要一提的是,为了解决多租户隔离的开支问题,现在也有很多除VM之外的隔离方案,比如使用容器、unikernel、libraryOS、语言虚拟机(如JVM)等。

serverless计算到底带来了什么技术突破?

除了自动缩扩容和多租户隔离外,serverless的其他几个不同点也为它的成功奠定了基础。相比于针对特定使用场景的PaaS服务,serverless计算所支持的应用范围要广泛得多,因为它允许用户将外部的库打包进服务,此外,今天的serverless计算的规模比起早起的web host共享技术要也要大得多。

在第1节中我们提过,cloud functions让serverless这一名词流行了起来。然而,它们的成功也离不开公有云早期时代出现的BaaS。