函数计算框架OpenFaaS架构解析

Leo Xiao 发表于 2021/03/17 19:28:02 2021/03/17
【摘要】 函数计算框架OpenFaaS架构解析 简介OpenFaas的项目目标就是通过Docker容器简化Serverless函数,使开发人员可以轻松地将事件驱动函数和微服务部署到Kubernetes,而无需重复的样板编码。将代码或现有二进制文件打包到Docker映像中,以获得具有自动扩展和可度量的度量的高度可扩展的endpoint。 分层架构 核心组件API网关: API网关提供所有functio...

函数计算框架OpenFaaS架构解析

简介

OpenFaas的项目目标就是通过Docker容器简化Serverless函数,使开发人员可以轻松地将事件驱动函数和微服务部署到Kubernetes,而无需重复的样板编码。将代码或现有二进制文件打包到Docker映像中,以获得具有自动扩展和可度量的度量的高度可扩展的endpoint。

分层架构

核心组件

  • API网关: API网关提供所有function的注册和路由

  • Function Watch Dog: 每个container中都包含一个watchdog,在用户和函数间提供一个通用的接口,将API网关转发来的HTTP request转化为函数的调用

  1. Openfaas 中的watchdog有两种,一个是默认的classic watchdog:

  2. of-watchdog 提供高吞吐量带来了新的功能,并支持重用重要资源比如数据库连接池或机器学习模型。主要的区别是在调用之间保持函数进程warm状态的能力。classic watchdog为每个请求folk一个进程,提供最高级别的可移植性,但较新的版本启用了http mode,在这种模式下,同一进程可以重复使用,以减少folk带来的延迟。

  • NATS Streaming:提供异步执行和排队
  • Prometheus:提供指标并通过AlertManager启用自动缩放
  • AlertManager: Alert manager从Prometheus获取指标数据,执行scaleup/scaledown
  • Registry:包含每个可以通过API部署在OpenFaaS上的不可变工件。

业务流

  • API网关可以通过其REST API、CLI或UI访问, 所有服务或函数都会暴露默认路由,但自定义domain也可以用于每个端点。
  • Prometheus收集可通过网关API获得的度量,并用于自动扩展。
  • 通过将函数的URL从/function/NAME 更改为 /async-function/NAME,可以使用NATS Streaming在队列中运行调用, 还可以传递可选的回调URL。
  • faas-netes是OpenFaaS最受欢迎的编排提供商,但Docker Swarm、Hashcorp Nomad、AWS Fargate/ECS和AWS Lambda也是由社区开发的,provider程序是使用faas-provider SDK构建的。

参考

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。