在云出现之后,最具创新的特性之一就是云函数服务,有时也称为“函数即服务( functions-as-a- service)或是“无服务器”(serverless)特性。云函数是一种执行模型,不需要何长期存在的基础设施。当事件发生时(如接收到新的 HTTP请求或是某个对象已经被上传到到存储位置),相应的函数被执行作为响应。
在传统的 Web 服务器中,操作系统的网络栈将 HTTP 请求转发给 Web 服务器,由后者负接下来的处理步骤。响应完成之后,Web 服务器继续等待随后的请求。
和无服务器模型对比一下。当HTTP 请求到达时,云函数会被触发来处理 HTTP 响应。处理完成之后,云函数就终止了,只需要为函数执行的这段时间付出成本。既不用维护服务器,也不用管理操作系统。
AWS 在 2014 年的一次会议中引人了云函数服务 Lambda。Google 紧随其后推出了自家的Cloud Functions 服务。像 OpenStack、Mesos、Kubernetes 这些项目也实现了云函数。
——《UNIX/Linux系统管理技术手册》
Serverless是什么?
Serverless并不意味着没有服务器,而是指开发者无需关心服务器的管理和维护。在传统的云计算中,开发者需要配置和管理虚拟机或容器来运行应用程序,而Serverless将这些底层任务交给云服务提供商,使开发者能够专注于编写应用程序的业务逻辑。
Serverless是事件驱动的,它响应特定的事件触发器,如HTTP请求、数据更改或计时器触发。当事件发生时,Serverless函数会启动、执行,然后终止,实现按需计算,仅支付实际执行的成本。
为什么选择Serverless?
-
成本效益:Serverless模型的按需计费意味着我们只需为实际使用的计算资源付费,而无需为未使用的服务器付费。这降低了总体成本。
-
简化管理:开发者不再需要管理服务器的配置、扩展、维护和监控。这减少了管理复杂基础设施的负担。
-
快速扩展:Serverless平台自动处理应用程序的扩展。如果应用需要更多计算资源来应对流量增加,平台会自动扩展函数的实例。
-
事件驱动:Serverless适用于事件驱动的应用,如Web应用后端、数据处理、自动化任务、IoT设备通信等。