前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >无服务器体系结构简介

无服务器体系结构简介

作者头像
PALIN
发布2018-01-11 16:09:56
2.2K0
发布2018-01-11 16:09:56

无服务器架构和函数即服务(FaaS)是当下云计算领域的大热门。除了微软和亚马逊以外,还有很多厂商提供FaaS。本文对无服务器体系结构进行了简短的介绍,并试图解释什么是无服务器体系以及为什么我们需要它。

云计算的发展

随着云计算的不断发展,云计算已经衍生出多种形式和抽象层次。

云的演变
云的演变

无论是在本地构建还是一种由厂商来提供的服务,数据中心都是云计算的第一步。它对物理主机环境进行了抽象,接着我们可以用硬件单元来扩展这些环境。随着虚拟化的发展,我们开始在云环境中托管虚拟机,一般是将硬件抽象化并使用操作系统作为扩展单元。很快,我们为云建立了托管环境,并对操作系统进行抽象化的处理。这样,应用程序取代操作系统成为了新的扩展单元,但这并不是云计算发展的终点​​,因为现在我们已经转向函数或无服务器体系结构。

不同的云模型给我们留下了不同的任务。如果数据中心是在本地,则意味着我们要对本地所发生的所有事件负责。而如果将数据中心转移到云端,云计算的每一步发展都会使得我们的工作量大大减少。

云模型
云模型

无服务器体系结构实际上在SaaS之后才出现,但是在上图中把它放到了SaaS的前面,因为在SaaS体系下,用户不能控制应用程序以及其下的基础结构。

无服务器架构

函数是用于抽象语言运行时无服务器体系结构中的扩展单元。在本文中不讨论运行一个函数需要多少CPU,RAM或者其他的资源,而是讨论运行该函数所耗费的时间。在此过程中不应该受到其他指标的影响。我们编写自己的函数,将它们发布到云中,并且只为这些函数运行的时间付费。

无服务器体系结构并没有严格规定我们所编写的函数在技术上必须以何种方式实现。这只是我们所做工作的一部分。函数可以通过多种方式触发。它可以是一个定时器,该定时器可以定时运行函数,但它也可以是HTTP请求或某些相关服务中的事件。

Mike Roberts在“无服务器体系结构”(Serverless Architectures)的文章中提出了关于“函数即服务”的六个要点:

  1. 从根本上讲,FaaS运行后端代码,无需管理自身服务器系统或服务器应用程序。
  2. FaaS产品无需编码成特定的框架或库。当涉及到语言和环境时,FaaS函数是常规的应用程序。
  3. 由于无需运行服务器应用程序,所以部署工作与传统系统非常不同-我们将代码上传到FaaS提供商,它会完成其余的所有工作。
  4. 水平扩展是全自动的,有弹性的,并且由提供商来管理。
  5. FaaS中的函数由提供商所定义的事件类型来触发。
  6. 大多数提供商还允许将函数作为对入站HTTP请求(通常在某种API网关中)的响应来完成触发。

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

如果您的PaaS可以在20ms内有效启动实例并运行半秒,则可以称其为无服务器。

由此我们可以得出结论:长时间运行的工作流和大规模的任务并不适合无服务器体系结构。

函数服务

目前已经有公司将函数作为服务运行。举例如下:

除此之外,还有许多其他的可用服务,所有这些服务都因技术功能和实现的差异而有所不同。

总结

无服务器体系结构可以帮助使用者构建出有用的代码片段,这些片段能够快速运行而不必消耗大量的服务器资源。但这并不意味着FaaS只能在小场景中使用。例如,虽然每个函数只是一个小单元,但是每秒可以被调用数百万次。问题是我们应该将哪些小型函数从应用程序的其他组件或层迁移到函数的对应部分。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 云计算的发展
  • 无服务器架构
  • 函数服务
  • 总结
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档