无服务器体系结构简介

无服务器架构和功能即服务(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只能在小场景中使用。举个例子,尽管函数是一个小单元,但是每秒可以调用数百万次。关键问题是我们应该从应用程序的其他组件或层分离哪些小功能出来。

本文的版权归 用户1206428 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

玩腻了传纸条、漂流瓶,就用它来跟网友分享「小卡片」吧

今天,知晓程序(微信号 zxcx0101)就为你推荐一款有毒的小程序「一起 Up」,在里面,你不仅可以看到其他用户分享的有趣、有内涵的内容,还能将自己的私货与其...

914
来自专栏大数据文摘

资源 | 数据工程师的衣柜,资源之家

今天,文摘菌要给大家介绍一个数据工程(注:非数据分析)资源超级大列表,你想找的全部在这儿~(Github链接见文末)

741
来自专栏WeTest质量开放平台团队的专栏

5天2亿活跃用户,2017QQ“LBS+AR”天降红包活动后台揭密

作者王家彬,腾讯后台开发工程师,参与“LBS+AR”天降红包项目,其所在“2016春节红包联合项目团队”获得2016公司级业务突破奖。

1653
来自专栏vue+shiro

基于vue(element ui) + ssm + shiro 的权限框架

现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目,网上有句话说,语言框架迭代太快了,我学不动了,不如回去搬...

1K2
来自专栏Flutter入门到实战

开发工具总结(9)之开源项目的README文档的最全最规范写法

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/813b70d5b0de

1201
来自专栏Java社区

快来查你注册过哪些网站?

9932
来自专栏Golang语言社区

求取一份极致的简单:全链路跟踪中间件探索之路

公司内部的业务系统有近千个,基本上很少有比较孤立的;尤其外部系统,即便用户在页面上一个很普通的操作,后台也需要少则几个多则几十个服务协同完成。以前我们定位调用链...

1331
来自专栏Debian社区

Chrome浏览器中新增反恶意软件广告功能

谷歌宣布在Chrome浏览器中新增三个安全功能,阻止网站在未经用户或网站所有人同意的情况下悄悄将用户重定向至新的网址。

1282
来自专栏FreeBuf

如何通过Python实现自动填写调查问卷

0X00 前言的,我才想起来貌似我也还没做。对于这种无意义的问卷,我是不怎么感冒的,所以我打算使用”特技”来完成,也就是python,顺便重新复习一下pytho...

5875
来自专栏陈满iOS

iOS面试经验总结(某PA金融科技篇)

也许面试官自己也没自己实现过,毕竟有些东西苹果为什么这样设计,若不是苹果公司的工程师无法知道。

1273

扫码关注云+社区

领取腾讯云代金券