Serverless简介
概念
Serverless的全称是Serverless computing无服务器运算,又被称为函数即服务(Function-as-a-Service,缩写为 FaaS),是云计算的一种模型。以平台即服务(PaaS)为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供。 国内外比较出名的产品有Tencent Serverless、AWS Lambda、Microsoft Azure Functions 等。
Serverless称为微服务运算,但不代表它真的不需要服务,而是说开发者再也不用过多考虑服务器的问题,计算资源作为服务而不是服务器的概念出现。Serverless是一种构建和管理基于微服务架构的技术,允许开发者在服务部署级别而不是服务器部署级别来管理应用部署,你甚至可以管理某个具体功能或端口的部署,以便让开发者快速迭代,更快速地开发软件。
以亚马逊的AWS Lambda为案例,Lambda能让不用思考任何服务器,也就是说,不用你处理服务器上的部署、服务器容量和服务器的扩展和失败容错,还有服务器上选择什么OS操作系统,语言的更新,日志等等问题。
目前,Serverless 仍然处于探索和发展阶段,并且对于Serverless也没有一个权威的定义,不过我们仍然可以从以下几个方面来理解它: - Serverless代表的是一种服务理念或模式。这种服务理念希望用户无需关注除了业务逻辑本身之外的主机管理、服务运维、配置等事务,不需要关注运营维护问题。也即是说,只要有了Serverless,几乎可以不需要再考虑Devops工作流。 - Serverless是一种软件系统架构方法,并不代表某种技术。通常我们称Serverless 为一种架构而不是某种技术框架。 - Serverless是一种云服务产品形态。通常我们称Serverless为一种产品,比如各大厂商推出的各种 Serverless 服务或能力、封装的 API 网关等产品。
当前业界最常见的 Serverless 实现方案为 FaaS(函数即服务) + BaaS(后端即服务),我们经常听到的「云服务」就是基于 FaaS + BaaS 架构。