Nuclio实战及源码分析:基于Kubernetes的Serverless FaaS平台
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.2 Serverless的定义

Serverless又称无服务器计算,它允许开发人员构建应用程序,而无须管理基础设施,描述了一个更细粒度的部署模型,当应用程序被上传到平台后,系统会根据所需要的资源进行执行、扩展和计费。无服务器计算并不意味着不需要服务器来托管和运行代码,也不意味着不再需要运维工程师,而是指不需要花费时间去维护服务器的配置、更新、扩展及下线等相关操作。这样,开发人员就可以专注于编写应用逻辑,运维工程师可以专注于提升关键业务。这种方式解放了团队,使他们能够集中精力加速创新。Serverless因简单性和成本效应,已经从前沿技术发展成为主流技术。

Serverless平台包含FaaS和BaaS的一部分或两部分。

1)功能即服务(FaaS):通常提供事件驱动计算。开发人员使用函数运行和管理应用程序代码,由事件或HTTP请求触发。开发人员编写并部署FaaS函数代码。FaaS函数代码的执行和伸缩由无服务器平台管理,开发人员无须管理服务器或任何其他底层基础架构。

2)后端即服务(BaaS):一种云服务模型。在该模型中,开发人员将Web或移动应用程序的所有幕后工作外包,只需要编写和维护前端即可。BaaS供应商为发生在服务器上的活动提供预先编写的软件,例如用户身份验证、数据库管理、远程更新和推送通知(用于移动应用程序),以及云存储和托管。

BaaS和Serverless有一些重叠也有一些区别,这就是上面说Serverless平台包含FaaS、BaaS的一部分或两部分的真正含义。

Serverless有两个主要角色。

1)开发人员:为Serverless平台编写代码并从中获益。Serverless平台提供了没有服务器而代码始终在运行的视角。

2)平台提供商:为外部或内部客户部署Serverless平台。