原文:html
Serverless架构特指那些依赖第三方服务(即后端即服务或者是“BaaS”)的应用或其自定义代码跑在短周期容器中(函数即服务或“FaaS”),最知名的提供此类主机服务的厂商就是AWS Lambda。 在这个思想指导下, 而且将大量行为移到前端,此类架构移除了对传统部署在应用后“永远在线”的服务系统。 在这种状况下, 这种系统能够明显减小运维成本和复杂度,代价是对厂商的依赖和(目前)不太成熟的支持服务。数据库
像不少软件业的概念同样‘Serverless’没有一个明确的定义, 下面两种不一样风格但互相覆盖的领域仍然很难解释这个概念:后端
Serverless最初用来描述那种重度或彻底依赖第三方应用/服务(在云上)来管理服务端逻辑和状态的应用。这些通常是使用巨大云上生态系统的数据库(像Parse
,Firebase),认证服务(Auth0, AWS Cognito)的“富客户端”应用(想一下单页网站应用,或者移动应用)。此种类型的服务以前被描述为“(移动)后端即服务”,我在文章的后面会用“Baas”做为这个词的缩写。服务器
Serverless也能够指代那种大量的服务器端逻辑仍然是由应用开发者来完成的而不像传统运行在无状态计算机容器的架构 - 由事件触发,周期短暂(只会在一次调用中存在),而且彻底由第三方管理。(感谢ThoughtWorks定义的技术雷达)。 能够认为这就是“Functions as a service/FaaS”。 AWS Lambda是目前最流行的FaaS实现,但还有其余的。在本文后面我会用“FaaS”在指代这种形式的Serverless。架构