写点什么

无服务框架 -OpenFaas

用户头像
QiyihaoLabs
关注
发布于: 2 小时前
无服务框架-OpenFaas

1. OpenFaas 简介

OpenFaaS 是一款高人气的开源的 faas 框架,开发人员可以借助 OpenFaaS 将事件驱动的功能和微服务部署到 Kubernetes,而无需编写重复、枯燥的样板编码。只需将代码或现有二进制文件打包到 Docker 镜像中,以获得具有自动缩放和监控指标的高度可扩展端点(Endpoints)。



2. OpenFaas 特点

  • 平台无关:OpenFaas 是开源框架,可以部署在任意云平台,无需担心平台锁定的问题

  • 语言无关:任意语言编写的函数均可打包至 Docker 镜像并部署运行

  • 使用简单:内置 UI,丰富的 CLI 命令和一键安装

  • 灵活伸缩:高峰期自动扩容,空闲时自动缩容

  • 社区活跃

3. 主要组件


(1) Openfaas 网关 - gateway

Openfaas 网关为自定义函数提供 RESTful 风格接口的外部路由,内置 UI、faas-cli 和 API 请求均会由 Openfaas 网关进行处理分发。


Openfaas 网关同时集成了 Prometheus 提供对函数和服务的监控能力,也可调取 faas-provider 的 API 实现对容器的管理。

(2) faas-provider

Faas-provider 是一个使用 go 语言实现的符合 Openfaas provider Http REST API 标准的 SDK 工具集。


主要职责:


  • 对函数的 CRUD 操作

  • 代理函数调用服务

  • 管理函数容器的扩缩容

  • 容器密钥管理

  • 日志引流

(3) Openfaas 看门狗 - watchdog

OpenFaaS 看门狗负责启动和监控 OpenfaaS 中的函数。看门狗内嵌有一个基于 Go 语言编写的嵌入式 HTTP 服务器,可以支持并发请求、超时和健康检查等功能。


主要职责:


  • 处理请求,调用具体函数

  • 为函数服务提供高性能、高并发、高吞吐量的路由服务

  • 容器健康检查


组件详情可见官方 doc: https://docs.openfaas.com/architecture/stack/

4. Faas-cli 主要命令

  • faas-cli new - 通过当前目录中的模板创建一个新函数

  • faas-cli build - 从支持的语言类型生成 Docker 镜像

  • faas-cli push - 将 Docker 镜像推送到远程仓库中

  • faas-cli deploy - 将函数部署到本地或远程 OpenFaaS 网关中

  • faas-cli up - 组合 build/push/deploy 三个命令

  • faas-cli remove - 从本地或远程 OpenFaaS 网关删除函数

5. Faas 内置 Web UI 简单使用

(1) K8S 宿主机将 IP 映射到 31112 端口,访问 Openfaas 部署的 ip:31112/ui 端点(默认 8080 端口),打开内置 ui 界面



(2) 点击"Deploy New Function",依靠函数商店/docker 镜像/本地编写等方式选择函数并部署


从函数商店部署函数



从 Docker 镜像部署函数



(3) 创建函数成功,ui 界面调用函数



(4) 通过 Openfaas 网关提供的 API 接口 url,可执行已部署的函数,并获取响应



附参考资料:

  • 官方文档:https://docs.openfaas.com/

  • Github:https://github.com/openfaas

  • blog: https://www.jianshu.com/p/1cf68d1b7945

发布于: 2 小时前阅读数: 3
用户头像

QiyihaoLabs

关注

还未添加个人签名 2020.01.21 加入

还未添加个人简介

评论

发布
暂无评论
无服务框架-OpenFaas