• 日常搜索
  • 百度一下
  • Google
  • 在线工具
  • 搜转载

什么是无服务器?

服务器计算概念是一种新兴的执行模型,它试图满足现代、基于云的软件的需求。 

在我的课程 “无服务器简介”的这段视频中,我将向您介绍无服务器架构。我们将讨论它的关键点并将其与其他模型进行比较,以将服务器功能抽象到云中。

什么是无服务器?

什么是无服务器?  第1张

无服务器架构

首先,在无服务器系统中,有服务器。希望这对你来说不是一个大惊喜。这完全取决于谁来管理它们。

让我们看一个非常常见的图表它显示了不同类型的服务。 

什么是无服务器?  第2张

在左侧,您拥有传统的本地系统。一切都由您管理,包括物理和网络。然后你有不同层次的抽象。

基础设施即服务

第一级抽象是基础设施即服务。在这里,您负责从操作系统开始的所有事情。例如 DigitalOcean 或亚马逊的 EC2。提供者为您提供了一个实例,从那时起,您就只能靠自己了。 

容器即服务

下一层抽象是容器即服务。它也是一个相当新的参与者,由于 docker 的流行而受到了很大的关注。aws世界中,这将是 EC2 容器服务。 

平台即服务

然后我们有平台即服务,您不负责管理任何操作系统或容器。您对您的申请负全部责任。此类别中的突出示例是 Heroku、AWS Elastic Beanstalk 和 Google Compute Engine。

功能即服务(又名无服务器)

几年前,图形到这里就结束了。但是现在我们有了一个新的术语,即作为服务的功能。与运行具有状态的应用程序不同,这对于所有传统的 Web 框架都是如此,即使您使用的是rest和其他东西,您也有一个使用无状态容器的系统,这些容器是事件触发的、短暂的,并且完全由服务管理提供者。

这就是所谓的无服务器。还有另一个概念称为后端即服务,有时也被认为是服务器架构的一部分。但在我看来,它更多地属于软件即服务,这本质上是你想要构建的。 

功能即服务的关键领域

因此,让我们更多地谈谈作为服务的功能。

顾名思义,作为开发人员,您负责编写由事件触发和执行的可执行函数。这可能是已完成的文件上传到 S3 或通过api端点的请求。到目前为止,如此简单。不过,为了完全理解这个概念,我将讨论一些将功能定义为服务的关键领域。

状态

第一个是状态。在保存状态方面,功能非常有限。一般来说,你应该假设你根本做不到。函数更多地遵循着火后忘记的原则。如果您想存储任何内容,请使用外部服务,例如文件存储或数据库或缓存服务器。

执行时间

二是执行时间。您的服务器应用程序可能会运行数小时或数天而无需重新启动,具体取决于您的部署过程。后台处理也是如此。有了函数,执行时间是有限的。预计该函数的执行时间不会超过几秒钟,例如,AWS Lambda 会在五分钟后终止所有未完成运行的函数。如果您有一个运行时间很长的任务,那么作为服务的函数可能不是最合适的。 

启动延迟

然后我们有启动延迟。这可以是几毫秒到几分钟之间的一切。当然,这取决于您使用的语言和系统。通常,AWS 上的pythonjavascript函数会在几毫秒内启动,但如果您使用的是 java 虚拟,则可能需要一段时间才能启动机器——尤其是如果您的函数在最后十分钟内没有执行,或者您的执行力突然激增。 

可扩展性和成本

这导致了有关可扩展性和执行成本的问题,而您正在寻找的答案是:不用担心。扩展由服务提供商管理,成本简单。

如果你执行一个函数十次,你就为这十次调用付费。如果您运行 1,000 次,则需要支付 1,000 次。当然,它比这要复杂一些,但这就是它的要点。 

结论

拥有无服务器系统可能非常有利。如果您有不一致的流量,那就太好了——例如,一小时的高峰,或者很少的偶尔请求,因为您不必分配大部分时间空闲的资源。

回顾一下,无服务器系统有服务器,但它们完全由云提供商管理。函数是无服务器架构的核心,它们是通过使用触发器来执行的。云提供商已经处理了可扩展性和高可用性。如果您有非常偶然的需求,或者搜索量很大但很短,无服务器可以帮助您降低成本。



文章目录
  • 什么是无服务器?
    • 无服务器架构
      • 基础设施即服务
      • 容器即服务
      • 平台即服务
      • 功能即服务(又名无服务器)
    • 功能即服务的关键领域
      • 状态
      • 执行时间
      • 启动延迟
      • 可扩展性和成本
    • 结论