Serverless 框架 OpenWhisk 开发指南
优质
小牛编辑
137浏览
2023-12-01
在尝试了使用 AWS 开发 Serverless 应用之后,我便想尝试使用 OpenWhisk 框架来搭建自己的 Serverless 服务。
Apache OpenWhisk(http://openwhisk.org/)是一个由IBM和Adobe驱动的开源项目,它是一个健壮的FaaS平台,可以部署在 云或数据中心内。相比其他serverless项目,OpenWhisk是一个健壮的、可扩展的平台,支持数千并发触发器和调用。
OpenWhisk 简介
其系统架构如下所示:
对应的组件的功能如下:
- Nginx 暴露HTTP(S)端点给客户端。
- Controller 充当系统的守门员、系统的协调者,它将决定请求最终采取的路径。
- CouchDB 护和管理系统的状态。
- Consul 作为系统每个组件可访问的单一数据源。 同时,consul还提供服务发现功能,使控制器发现调用操作的实体。
- Apache Kafka 用于构建实时数据管道和流应用程序。
- Invoker 使用 Scala实现,它是处理执行过程的最后阶段。
- Docker, 几乎所有的 OpenWhisk 组件都打包和部署为容器。
macOS 搭建 OpenWhisk 环境
官网的指引很简单,但是中间还是遇到一些环境问题。
首先 clone 代码
git clone --depth=1 https://github.com/apache/incubator-openwhisk.git openwhisk
然后于是虚拟机的目录:
cd openwhisk/tools/vagrant
接着执行 hello 命令
$./hello
./hello: line 8: vagrant: command not found
便提示 vagrant 没有安装。Vagrant 只是一个虚拟机管理和配置工具,为了安装 vagrant,还需要先安装 virtualbox 虚拟机:
brew cask install virtualbox
然后安装 vagrant,顺便也 可以安装 vagrant-manager
$ brew cask install vagrant vagrant-manager
==> Satisfying dependencies
==> Downloading https://releases.hashicorp.com/vagrant/2.0.1/vagrant_2.0.1_x86_64.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask vagrant
==> Installing Cask vagrant
==> Running installer for vagrant; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
Password:
==> installer: Package name is Vagrant
==> installer: Installing at base path /
==> installer: The install was successful.