FaaS服务的实现原理

serverless核心技术faas

Posted by Shubei on September 9, 2020

Faas的概念

Function as a Server, 功能即服务,目前 亚马逊的 lambda

在SeverLess(无服务器)思想下,Faas是实现方式, 它出现的目的是 简化 应用开发的流程.

FaaS 和 IaaS、PaaS 的区别

FaaS开发应用流程

  • 传统应用部署与运行流程图

  • FaaS应用部署与运行流程图

Faas应用用户访问顺序如下: 1、用户第一次访问到HTTP函数触发器的时候,”函数触发器”就会hold住用户的HTTP请求,并产生一个HTTP Request事件通知函数服务。
2、函数服务会检查有没有空闲的函数实例,如果没有就去仓库中拉取代码,初始化并启动一个函数实例,执行这个函数,传入这个HTTP Request对象作为函数的参数,执行函数。
3、函数执行的结果 HTTP Response返回给函数触发器,函数触发器再将结果返回给等待的客户端。

Faas最少可以缩容到0个实例,Paas最少维持1台实例

Faas极速启动原理

冷启动我们关注的是启动时间,冷启动的平均耗时基本在100~700ms之间Nodejs是冷启动方面速度最快的。

总结

1、纯Faas应用的调用链路是函数触发器、函数服务、函数代码三部分组成。分别替代了传统服务端运维的负载均衡&反向代理,服务器&应用运行环境,应用代码部署。
2、与Paas比,Faas可以缩容到0,在事件到来时极速启动。
3、Faas设计上牺牲了用户可控性和应用场景,简化代码模型。分层结构进一步提高资源利用率。