什么是Serverless

从两个角度来看:
server:即服务端。现代一个完整的Web应用包含客户端和服务端,server表示,serverless这项技术是应用在服务端的技术。更准确的说,是关于服务端运维的技术。
less: 更少的,serverless让我们更少的去关注服务端的事情。

但是要注意的是,更少的专注服务端运维的事情,将重心放到业务的开发中。

Baas和Faas

Serverless是和Baas和Faas紧密关联在一起的。

FaaS(Function as a Service) 就是函数即服务,BaaS(Backend as aService) 就是后端即服务。XaaS(X as a Service) 就是 X 即服务,这是云服务商喜欢使用的一种命名方式,比如我们熟悉的 SaaS、PaaS、IaaS 都是这样。

先说 FaaS,函数即服务,它还有个名字叫作 Serverless Computing,它可以让我们随时
随地创建、使用、销毁一个函数。

MVC 架构中的 Model 层,就需要我们用 BaaS 来解决。Model 层我们以 MySQL 为例,后端服务最好是将 FaaS 操作的数据库的命令,封装成 HTTP 的 OpenAPI,提供给 FaaS调用,自己控制这个 API 的请求频率以及限流降级。这个后端服务本身则可以通过连接池、MySQL 集群等方式去优化。各大云服务商自身也在改造自己的后端服务,BaaS 这个集合也在日渐壮大。

总结:两个核心问题

1.Serverless 能解决什么问题?Serverless 可以使应用在服务端免运维

2.Serverless 为什么难定义?Serverless 将服务端运维高度抽象成了一种解决方案,包含的信息量太大了。

另外,Serverless 可分为狭义和广义。狭义 Serverless 是指用 FaaS+BaaS 这种Serverless 架构开发的应用;广义 Serverless 则是具备 Serverless 特性的云服务。现在的云服务商,正在积极地将自己提供的各种云服务 Serverless 化。