函数计算框架OpenFaaS架构解析
【摘要】 函数计算框架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转化为函数的调用
-
Openfaas 中的watchdog有两种,一个是默认的classic watchdog:
-
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)