无服务技术

  • Post author:
  • Post category:其他



目录


1.什么是无服务架构


1.1 FaaS


1.2 BaaS


2.目前存在的有哪些无服务架构


3.无服务架构的工作流程


1.什么是无服务架构

无服务技术是FaaS和BaaS的结合

下面对于FaaS和BaaS的解释参考

https://zhuanlan.zhihu.com/p/91026752



http://www.360doc.com/content/18/0109/09/40769523_720416537.shtml

1.1 FaaS

函数即服务,它们仍然由应用开发者编写服务端逻辑,但不同于传统架构运行并且托管在服务器(物理机虚拟机)上,而是运行在无状态的容器中,这些容器实例通过事件触发而短暂运行(比如仅仅是一次函数调用,运行完毕以后就会销毁),并且通常完全由第三方管理,使用者无需关系这些容器的生命周期以及资源情况。这就是所谓的 “Function as a Service” 或者说 “FaaS”。

使用这一范式的开发者无需考虑服务器细节,只需要负责编写发生某些事件后所需执行的代码。云供应商将负责提供用于运行这些代码的服务器,并在必要时对服务器进行缩放。执行完毕后,承担这些功能的容器会立刻停用,并且执行过程以100毫秒为单位进行度量,用户只需为运行代码过程中所消耗的资源付费。

1.2 BaaS

完全集成第三方云上托管的服务 来完成服务端代码逻辑和管理状态 的应用。这些应用通常被称为 “富客户端” 应用,比如 单页WebAPP,移动App,他们都是通过直接调用庞大的云上生态体系服务来完成开发,像数据库(比如Parse,Firebase),认证服务(比如Auth0, AWS Cognito)等等。这些类型的服务再过去一直被描述为 “(Mobile) Backend as a Service”

2.目前存在的有哪些无服务架构

Amazon 、Google Cloud Functions、MicrosoftAzure Functions、IBM OpenWhisk,以及Iron.io和Webtask等各种开源实现都提供了类似的服务。

3.无服务架构的工作流程

参考:[1]刘畅,毋涛,徐雷.基于无服务器架构的边缘AI计算平台[J].信息通信技术,2018,12(05):45-49.


FaaS


这种方式主要是承载用户的


计算功能





更多是对用户的计算进行托管。


采用此种架构,


用户首先要将代码和配置提交到云平台上





代码即


用户为实现某一个函数功能编写的一份代码或者代码








配置则是指本身对于函数运行环境的配置





使用的


是哪种环境





所需的内存





超时时间等





以及触发函数


运行的触发器的配置





因为整个


FaaS


的运行方式是触


发式运行



触发就需要有一个事件来源







事件来源




以有很多种




  • 例如当用户上传一张图片或者删除一张图片时





    就会产生一个事件





    这个事件会触发云函数的运行

  • 例如和


    API


    网关的对接





    也可以作为事件来源








    用户的


    HTTP


    请求到达网关之后





    API


    网关会把该请求


    作为事件转发给云函数





    触发云函数的运行





    云函数拿


    到请求之后进行处理





    生成响应给到用户




如图


所示





Serverless


的运行方式是按需运行





仅在设定的触发器上有事件产生时才会运行





图中左








是用户将代码和配置提交到


Serverless


平台进行保








当设定好的事件产生后





针对每一个事件都会拉起


一个函数实例





实现触发式运行。

因为函数本身是托管型的,用户本身无法感知到实例在哪里运行。Serverless平台背后有个大的计算资源池,用户实例触发之后,平台会从资源池中随机选取可运行的位置,把用户的函数实例在对应位置上跑起来。因此,整个调度过程或者事件来临之后的函数运行环境的扩缩容过程,都是由平台进行的。对用户来说,调度的粒度更细了,而且调度也都托管给平台了,用户自身只需考虑功能的实现,而一切和运维相关的问题都可以由平台的提供商来解决。



版权声明:本文为qq_44587145原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。