无服务框架 -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
版权声明: 本文为 InfoQ 作者【QiyihaoLabs】的原创文章。
原文链接:【http://xie.infoq.cn/article/22090139ec2560d2ffbbb1af8】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论