无服务器计算是一种云计算执行模型,它根据使用情况分配机器资源。在无服务器模式下,开发者可以构建和运行应用,而无需管理任何服务器,并且只需为实际使用的资源量付费。云服务提供商负责预配、管理和扩缩运行应用代码的云基础设施。
无服务器计算虽然名为“无服务器”,但实际上并未取消服务器。相反,它通过抽象化日常基础设施任务来简化应用开发。这意味着您无需查看、配置、管理或扩缩运行应用的底层机器。从本质上讲,您为服务器提供的服务付费,而不是为服务器本身付费。
从开发角度来看,仿佛完全没有服务器存在:开发者只需编写代码并部署到生产环境,其余由云提供商处理。
您可以将无服务器想像成给您家供水。您可以自己钻井,测试水质,安装并维护将水引入房屋所需的所有外部管道。或者,您也可以连接自己城市的主要供水系统。只需转动水龙头,即可随时按需获取所需水量,供水公司每月都会向您发送确切的用水量账单。
同样,云服务提供商会自动启动执行无服务器应用所需的基础设施资源和运行时环境,并在执行完毕后自动缩减至零。通常,您需要根据执行期间的资源付费。但是,这可能因服务和供应商而异。
但是等等,其他类型的云计算不是以随用随付的方式按需提供资源吗?诚然,基础设施即服务 (IaaS) 和平台即服务 (PaaS) 等云服务模式也支持用户按需访问计算资源。
不过,即使您未使用,分配给您的云基础设施仍会保持启用状态。此外,您还要负责扩展服务器容量或配置应用,以便根据用户需求进行扩缩。
另一方面,无服务器架构是事件驱动型的。在这种模式下,提供商仅在事件触发代码运行时才向您提供资源,并且会根据请求即时自动扩缩。
关键定义:
无服务器
PaaS
容器
虚拟机
在无服务器云计算中,通常有两种类型的服务:函数即服务 (FaaS) 和后端即服务 (BaaS)。
在开发中,“无服务器”一词通常用于描述 FaaS 产品。但请务必注意,在技术上,FaaS 是无服务器技术的一个子集。无服务器计算包括使得最终用户无需执行服务器管理、配置、扩缩和结算的任何服务类型。这可能包括数据库、存储空间、事件流、消息传递和 API 网关。
以下是一些常见和新兴的无服务器计算示例:
提高开发者的工作效率
采用无服务器技术的开发者专注于编写代码和优化业务逻辑,而无需担心预配、管理或扩缩基础设施。
开箱即用的可伸缩性
无服务器架构本身可以扩缩。与其他类型的云计算中需要微调规则的自动扩缩不同,无服务器自动扩缩是即时的,并且可以缩小到零。
灵活价格
无服务器价格模式通常根据实际用量和执行函数所需的时间收费。您也无需为空闲容量付费,这有助于降低运行和管理您自己的服务器所产生的运营成本。
部署速度更快
无服务器计算可帮助 DevOps 团队在集成、测试、交付和部署过程中减少基础设施定义所带来的阻力。这样一来,他们便可专注于编写代码并直接部署到生产环境。
使用任何语言
无服务器环境支持任何语言或框架,让团队能够使用他们最熟悉的语言或框架(如 Go、Python、Java、Node.js、.NET 等)进行开发。
无服务器计算的最大缺点之一是,它仍然是一项相对较新的技术。因此,这种方法还不适合满足所有潜在用例的需要。
同时,随着无服务器计算的不断发展,当前存在的一些弊端将随着时间的推移逐渐解决。具体而言,无服务器的开源实现方面做了大量的工作,并想方设法提高云服务的开放性,使解决方案能够跨不同平台和环境移植。