分享

无服务器架构简介

 万皇之皇 2019-06-17

无服务器架构和功能即服务(FaaS)是云计算的热门趋势。除微软和亚马逊外,还有许多其他供应商提供FaaS。本文是对无服务器架构的简单介绍,我会解释它是什么以及我们为什么需要它。

云的演变

在其发展过程中,云具有多种形式和抽象级别。

数据中心,无论是内部的还是由供应商作为服务提供的,都是我们今天所知道的云技术的第一步。它抽象了物理托管环境,我们开始使用硬件单元扩展这些环境。随着虚拟化的发展,我们开始在云环境中托管虚拟机。我们对硬件进行了抽象,并将操作系统作为等级单位。不久之后,我们将托管环境构建到云端,并抽象出操作系统。我们新的缩放单元就是应用程序。但这并不是终点,因为我们现在已经转向了功能或无服务器架构。

不同的云模型给我们留下了不同的责任。拥有数据中心意味着我们对正在进行的所有事务负全部责任。当迁移到云端时,进化过程中的每一步都会让我们的责任越来越少。

无服务器架构实际上比SaaS晚,但它在图表中的SaaS之前,因为在SaaS的情况下,用户对应用程序或其基础结构没有任何控制权。

无服务器架构

函数是无服务器体系结构中的缩放单位,它抽象语言运行时。我们不讨论运行函数需要多少CPU或RAM或任何其他资源。我们只讨论运行该函数所需的时间。所有其他指标都不应该困扰我们。我们编写函数,将它们发布到云端,并且只为这些函数运行的时间付费。

无服务器架构没有严格规定技术上必须具备的功能。这只是我们想要完成的一些工作单元。可以通过多种方式触发。它可以是定期运行函数的计时器,但它也可以是HTTP请求或某些相关服务中的某些事件。

在文章“无服务器架构”中,Mike Roberts提出了功能即服务(Faas)的六点:

1.从根本上说,FaaS是在不管理自己的服务器系统或自己的服务器应用程序的情况下运行后端代码。

2.FaaS产品不需要编码到特定的框架或库中。FaaS功能是语言和环境的常规应用程序。

3.由于我们没有服务器应用程序可以运行,因此部署与传统系统有很大不同 - 我们将代码上传到FaaS提供商,它可以完成其他所有工作。

4.水平扩展是完全自动的,弹性的,并由提供者管理。

5.FaaS中的函数由提供程序定义的事件类型触发。

6.大多数提供者还允许触发函数作为对入站HTTP请求的响应,通常在某种API网关中。

Adrian Cockroft在他的推文中定义了“无服务器” :

If your PaaS can efficiently start instances in 20ms that run for half a second, then call it serverless.

由此可以得出结论,长时间运行的工作流程和其他大型任务不适合无服务器架构。

函数服务

已有公司将函数作为服务运行。以下是其中一些:


Microsoft - Azure

亚马逊 - AWS Lambda

Auth0 - webtask

Iron.io - IronWorker

Planet Rational - webscript


还有许多其他可用的服务,所有这些服务的技术能力和实现都各不相同。

总结

无服务器架构允许我们构建一些有用的代码,同时,在不消耗大量服务器资源的情况下快速运行。这并不意味着FaaS只能在小场景中使用。尽管函数是一个小单元,但它可以每秒调用数百万次。问题是,我们应该从应用程序的其他组件或层向FaaS转移哪些小功能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多