
1.1 什么是Serverless
本节主要针对Serverless的概念进行分析和梳理,并举例说明Serverless的技术特性,帮助读者对Serverless建立一个初步的认知。
1.1.1 初识Serverless
Serverless一词中文经常译为“无服务器”。拆解来看,Server + less即尽量减少服务器的份额。那么Serverless是否真的代表“无服务器”呢?下面我们来一探究竟。
分析维基百科里对Serverless Computing一词的解释,也许可以帮助我们对Serverless的概念有更好的了解:无服务器计算(Serverless Computing)又称为函数即服务(Function as a Service,FaaS),是云计算的一种模型。云服务商通过运行服务器,动态管理和分配对应的计算资源,最终以资源实际使用量来收取费用。
分析上述定义,我们可以得到以下结论。
- Serverless并不是没有服务器。
- Serverless的产生基于云计算。
- Serverless具有动态扩缩、按需计费的特点。
首先,Serverless并不是没有服务器,它只是将服务器的运维、管理和分配都托管给了云提供商。其次,正因为云提供商对资源进行了运维、管理和分配,才让Serverless的概念和云计算密不可分。最后,对于用户而言,集中的管理和运维开放出来的能力特性也十分明显:一方面,用户无须关注业务的扩缩容,云平台会根据请求实现底层资源的动态伸缩;另一方面,弹性的好处也反映在了计费方式上,Serverless架构打破了传统的包年、包月或按小时付费的模式,真正实现了按用户的实际使用情况计费,更加灵活和友好。
Serverless的意义不仅在于计算,也在于提供后端服务的Serverless化。如果把Serverless Computing称为FaaS,那么和FaaS对应的则是Backend as a Service(BaaS,后端即服务)。结合这样的架构,我们可以对Serverless做出定义。
Serveless是基于云计算的一种模型,是“函数即服务”和“后端即服务”的总和。云服务商托管计算、存储、数据库等服务资源,进行动态的管理和分配,之后提供给用户,而费用则基于资源的实际使用量来计算。
1.1.2 Serverless特性举例
为了更形象地说明Serverless的概念,我们通过一个例子进行对比。如今很多家庭购买私家车满足出行需要,这样做的好处是可以长期使用这台车,但是劣势也比较明显,比如需要进行定期维护和保养。近年来涌现许多汽车租赁平台,通过按日/月租车的方式,满足用户短期出行的需求。而近几年兴起的打车软件,则随需随用、只付路程费,能灵活满足各种出行需求。
以上3种出行方式分别对应业务架构中的物理资源独占、虚拟机和Serverless。物理资源独占就和私家车一样,可长期持有,但需要投入人力持续运维;云平台的虚拟机类似于租车平台按日/月进行租车的方式,使服务更细粒度,但无论在租车期间是否持续用车,依然会按照租车时间进行收费(即按量计费),并且需要在租车期间对车辆进行维护;Serverless对应的则是打车软件的出行方式,其特点也是类似的,仅在用户坐车时收费,真正做到按需计费,无须对车辆进行管理和运维。