linux cpu占用率如何看
311
2022-10-10
Serverless 工程实践|自建 Apache OpenWhisk 平台
作者 | 刘宇(江昱) 前言:OpenWhisk 是一个开源、无服务器的云平台,可以在运行时容器中通过执行扩展的代码响应各种事件,而无须用户关心相关的基础设施架构。
OpenWhisk 简介
OpenWhisk 部署
实验机器操作系统为 Ubuntu 18.04 Desktop。使用 GitHub 上所提供的 incubator-openwhisk 进行安装,如果本机没有安装 Git,需要先安装 Git:
apt install git
接下来克隆 repo 到本地目录:
git clone openwhisk
cd openwhisk && cd tools/ubuntu-setup && ./all.sh
limits: invocationsPerMinute: "{{ limit_invocations_per_minute | default(60) }}" concurrentInvocations: "{{ limit_invocations_concurrent | default(30) }}" concurrentInvocationsSystem: "{{ limit_invocations_concurrent_system | default (5000) }}" firesPerMinute: "{{ limit_fires_per_minute | default(60) }}" sequenceMaxLength: "{{ limit_sequence_max_length | default(50) }}"
上面程序定义了 OpenWhisk 在系统中的限制。
invocationsPerMinute 表示同一个 Namespace 每分钟调用 Action 的数量。 concurrentInvocations 表示同一个 Namespace 的并发调用数量。 concurrentInvocationsSystem 表示系统中所有 Namespace 的并发调用数量。 firesPerMinute 表示同一个 Namespace 中每分钟调用 Trigger 的数量。 sequenceMaxLength 表示 Action 的最大序列长度。
如果需要修改上述的默认值,可以把修改后的值添加到文件 ansible/environments/local/group_vars/all 的末尾。例如,Action 的最大序列长度为 100,可以将 sequenceMaxLength: 120 添加到文件的末尾。 接下来,为 OpenWhisk 配置一个持久存储的数据库,有 CouchDB 和 Cloudant 可选。以 CouchDB 为例,配置环境:
export OW_DB=CouchDB export OW_DB_USERNAME=root export OW_DB_PASSWORD=PASSWORD export OW_DB_PROTOCOL=http export OW_DB_HOST=172.17.0.1 export OW_DB_PORT=5984
在 openwhisk/ansible 目录下,运行脚本,如图所示。
ansible-playbook -i environments/local/ setup.yml
./gradlew distDocker
apt install npm
ansible-playbook -i environments/local/ couchdb.yml ansible-playbook -i environments/local/ initdb.yml ansible-playbook -i environments/local/ wipe.yml ansible-playbook -i environments/local/ apigateway.yml ansible-playbook -i environments/local/ openwhisk.yml ansible-playbook -i environments/local/ postdeploy.yml
docker ps --format "{{.Image}} \t {{.Names }}"
开发者工具
OpenWhisk 提供了一个统一的命令行接口 wsk。生成的 wsk 在 openwhisk/bin 下。其有两个属性需要配置。
API host 用于部署 OpenWhisk 的主机名或 IP 地址的 API。 Authorization key(用户名或密码)用来授权操作 OpenWhisk 的 API。
设置 API host,在单机配置中的 IP 应该为 172.17.0.1,如图所示。
./bin/wsk property set --apihost '172.17.0.1'
./bin/wsk property set --auth `cat ansible/files/auth.guest
wsk action invoke /whisk.system/utils/echo –p message hello –result { "message": "hello" }
体验测试
创建简单的动作(action),代码如下:
# test.py def main(args): num = args.get("number", "30") return {"fibonacci": F(int(num))} def F(n): if n == 0: return 0 elif n == 1: return 1 else: return F(n - 1) + F(n - 2)
创建动作:
/bin/wsk action create myfunction ./test.py --insecure
./bin/wsk -i action invoke myfunction --result --blocking --param nember 20
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~