Serverless是云计算发展的产物,其实不管是云计算还是云原生,亦或者是Serverless架构,他具体是什么,都是很难说得清的,但是这并不影响我们对Serverless架构的理解。
一、心智层面
去服务器化:专业的事情交给更专业的人,开发者可以更关注于自身业务逻辑
字面解释Server和less的:就是将更少的精力放在服务器上,强调的是无服务器的心智或行为,而并非说不需要服务器。
可以这么理解,原来的传统模式下我们要做很多事情,包括硬件服务器层面的运维,如今都可以交给云厂商去做,而我们可以付出更多的精力在自身的业务逻辑上,套用上面的例子来说就是我们出去旅游,可以直接选购酒店,而不需要租房子然后购买生活用品等,我们可以拿出更多的时间出去玩,Serverless架构是一种无服务器的心智,强调将更专业的事情交给更专业的人,开发者只需要关心自身的业务逻辑即可
当然,除了这一种心智之外,它的架构是什么还可以在另外两个层面去看
二、组成层面
这个层面是他的结合,当然不同的组成表现出它不同的看法,但是被广泛认可的一种说法是FaaS与BaaS的一种结合。
所谓的Faas就是函数即服务,可以认为是处理业务逻辑的计算服务;所谓的BaaS是指后端即服务,可以认为是一种搭配FaaS来进行使用的部分。
例如说用户通过http请求,要从数据库中取数据,那么此时计算平台所要做的事就是执行数据库的查询命令,和一些业务逻辑,而除此之外呢需要有API网关和云数据库等来作为支持,这样一看,执行业务逻辑部分就是FaaS平台需要做的,而API网关和云数据库所对应的就是BaaS部分。
三、特性层面
除了结构层面还有一个就是他的特性层面,如图UC伯克利在论文中所描述的对于被认为是Serverless的产品或者服务,他还应该必须具备弹性伸缩和按量付费的特点。
1、什么是弹性伸缩呢?
所谓的弹性伸缩就是未来有多少流量的到来,都不需要开发者再去操心,而是云厂商可以来帮我应付。
例如我上一秒只有一个用户来访问我的网站,而在下一秒突然来了一百万个用户来访问,那么这种极端的情况,这种服务器层面的自动扩容的能力,就要求厂商来做了,而作为Serverless架构的开发者,则不需要去关心这也是之前所强调的无服务器的一种心智,及服务器基础底层相关的内容不用付出更多的精力去关注,交给专业的厂商去做。
2、什么是按量付费呢?
按量付费呢同样和上面的例子一样,当我们一个人去住酒店的时候,住一天我们只需要开一间一天时间的房子就好,如果一起去了十个人要住十几天,那么我们此时只需要安人按天居住酒店,而不需要想租房子那样一租就是一个月并置办生活用品,在Serverless架构下同理,只需要根据用户实际使用的资源量进行付费就可以。