简介

OpenFaaS 是一个使用 Docker 构建无服务器(Serverless)功能的框架,可以直接在 Kubernetes 上运行,也可以基于 Swarm 或容器运行。

  • 拥有易于使用的 UI 和一键安装脚本
  • 拥有简单的命令行工具操作 OpenFaaS
  • 支持多种环境,Kubernetes 或 Swarm
  • 有完善的 Prometheus 监控
  • 支持自动伸缩

前提

  • 熟悉 Go 语言
  • 了解 docker、容器、镜像等知识点
  • 了解 Kubernetes 基本概念
  • 了解 Prometheus、NATS

组件

OpenFaaS 主要有三个主要部分: Watchdog、Gateway、Provider

具体包括组件如下

  • Watchdog: 通过 HTTP Server 暴露 function,用于被 Provider 调用
  • Gateway: OpenFaaS 对外展示部分,提供:操作 API、UI 界面、自动伸缩等功能
  • Provider: Provider 工具包,对外向 gateway 提供统一操作 function 的接口,对内实现不同容器编排的功能实现(支持 Swarm、Kubernetes),具体 Provider 实现只要在此基础上进行即可(类似结构体实现接口)
  • basic-auth: 属于插件类型,用于 gateway Basic Auth
  • nats-queue-worker: 属于插件类型,用于处理异步调用 function
  • Kubernetes with OpenFaaS: Provider 的 Kubernetes 实现
  • Docker Swarm Provider: Provider 的 Swarm 实现
  • faas-cli: 通过 Gateway 操作 OpenFaaS 的命令行工具
  • of-watchdog: 属于新款 Watchdog

组件的具体使用可以查看 docker-compose.yml