首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在一个单节点企业内部无服务器框架上设置 Apache OpenWhisk on IBM Power

在一个单节点企业内部无服务器框架上设置 Apache OpenWhisk on IBM Power

简介无服务器计算是云计算领域中的一种新的执行模型,它使得开发人员可以仅关注编码,无需担忧基础架构。无服务器框架会负责处理负载平衡、容错,以及软件开发人员担心的其他基础架构琐事。
Apache OpenWhisk 是一种无服务器框架,它能帮助开发人员快速轻松地构建功能丰富的应用程序,为触发对事件的响应提供内在支持。
OpenWhisk on                Power可在本地使用 OpenWhisk                创建无服务器基础架构。这在许多场景中都很有帮助。无服务器后端服务为开发人员消除了基础架构和操作复杂性的难题,比如容错、负载平衡和自动扩展。这有助于开发人员集中精力编写代码,而将执行工作交给                OpenWhisk。由于大部分应用程序代码都是与架构无关的(比如 Python、Java、Scala 和                Nodejs),所以开发人员无需担心运行代码的架构后端。
使用无服务器后端时,因为代码仅在被调用时运行,资源利用率得到了显著提升。无服务器框架开始越来越多地用于为物联网 (IoT)                解决方案执行边缘计算。
IBM®ower® 服务器上已支持并提供了 OpenWhisk,它使用 Docker 作为主要运行时。要获得更多信息,。
因此,为了能在 IBM Power 服务器上使用无服务器计算,下一步操作通常是启用 OpenWhisk 。
环境要求请参考以下环境细节,在 Power 上构建 OpenWhisk:
  • 获取 Ubuntu 16.04 ppc64le 环境。该环境可以是裸机或虚拟机。在环境中安装 Python。如果需要获得适用于 Ubuntu                    16.04 的 ppc64le 云虚拟机,请访问
  • 确保您拥有足够的网络访问权,以便下载各种 Docker 包。
前提条件OpenWhisk 框架是使用从 Docker Hub 中的各种来源获得的一组 Docker 映像来构建的。一些映像已经可用于基于 IBM                POWER®处理器的硬件,另一些映像提供与 OpenWhisk                安装程序期望的版本不同的版本。只有很少的几个映像必须按照本文中的说明进行手动构建,然后才能在 Docker                注册表中默认提供它们。为了克服一些映像问题,您需要执行以下步骤:
设置一个临时性的 CouchDB 实例OpenWhisk 的部署脚本是用 CouchDB 1.6 编写的。但是,官方 ppc64le/CouchDB 提供的是 2.0.0                映像。CouchDB 在 2.0.0 中更改了一些 API 路径。这导致映像无法通过 OpenWhisk                的默认设置进行使用。因此,您需要完成以下过程:
运行这些命令后,会在一个单节点集群上完成 CouchDB 的初始设置。要获得更多信息,请访问:
备注:这是一个临时性的 CouchDB 实例。通过向这个 CouchDB                容器传递一个能持久保存状态的磁盘,可以将它转变为非临时性的实例。
构建 gliderlabs/registratorDocker Hub 中没有针对 IBM Power Architecture®的 Docker 映像注册器。需要完成以下步骤来手动构建用于                Power 的映像:
  • 创建 存储库的一个 Git 克隆。
  • 根据官方 alpine 3.6 ppc64le 映像修改 Docker 文件来。原始映像是使用 alpine                        3.5 构建的。
构建 ches/kafkaOpenWhisk 需要 ches/kafka,因为它通过使用此映像提供的脚本来创建 Apache Kafka 主题。没有适用于 ppc64le                的此类映像,所以需要手动构建它。
  • 创建  存储库的一个 Git 克隆。
  • 将基础映像更改为 ppc64le/javapenjdk-8-jre。
将                OpenWhisk 部署到 Power 上下节会介绍将 Apache OpenWhisk 部署到 IBM Power Architecture 上需要执行的步骤。
克隆 power-support 分支IBM Power Architecture 对 OpenWhisk 的支持还没有合并到上游,但可以暂时从获得此支持。
您应该克隆此存储库并切换到 power-support 分支。
设置 CouchDB 凭证将 CouchDB 设置时配置的用户 ID 和密码信息手动填充到 openwhisk/db_local.ini 文件中,以运行后续步骤。
请参考下面的样本文件:
[db_creds]
db_provider=CouchDB
db_username=admin
db_password=password
db_protocol=http
db_host=172.17.0.1 //This is your Ubuntu machine’s IP.
db_port=5984




将 OpenWhisk 安装到 Power 上目前为止,执行这些步骤是为了给运行 OpenWhisk 安装程序制造条件。如果已成功执行上述步骤,最好执行以下步骤,开始将 Apache                OpenWhisk 安装到 Power Architecture 上。
  • 将 OpenWhisk 存储库克隆到 /home/ubuntu 下后,请运行以下命令:
    • cd /home/ubuntu/openwhisk; cd tools/ubuntu-setup                                                                        && ./all.sh
    • ./gradlew distDocker
  • 切换到 openwhisk/ansible 下的 ansible 目录并运行以下命令:
    ansible-playbook -i environments/local/host setup.yml
    ansible-playbook -i environments/local/host prereq.yml
    ansible-playbook -i environments/<environment> couchdb.yml
    ansible-playbook -i environments/<environment> initdb.yml
    ansible-playbook -i environments/<environment> wipe.yml
    ansible-playbook -i environments/<environment> openwhisk.yml
    ansible-playbook -i environments/<environment> postdeploy.yml




备注:用于 OpenWhisk 的 consul 映像的版本为 0.7.5,而 Power 服务器上提供的版本为                0.8.1。可以手动获取 consul 映像的 0.8.1 版,并在                    openwhisk/group_vars/all 文件中更新正确的                consul 名称或版本。
在                OpenWhisk 上运行样本命令成功运行前面的步骤后,您应该已经有一个一体式 OpenWhisk 框架在 Power 上运行。以下步骤将指导您运行一些样本命令,帮助您理解                OpenWhisk 中的实用功能:
  • 运行以下命令来设置授权密钥:
    /home/ubuntu/openwhisk/ansible/../bin/wsk property set  --auth
    `cat /home/ubuntu/openwhisk/ansible/files/auth.guest`




    设置授权密钥后,不需要在每次运行                        wsk 命令行时都使用它。
  • 运行以下命令来设置 API 主机 IP:/home/ubuntu/openwhisk/ansible/../bin/wsk                            property set --apihost 172.17.0.1
  • 运行以下命令来创建一个 OpenWhisk                            操作:/home/ubuntu/openwhisk/ansible/../bin/wsk -i action                            create hello                        hello.js
    验证显示的输出类似以下消息:
    ok: created action hello




                            操作实质上是一段应基于触发器来运行的代码。
  • 运行以下命令,调用 OpenWhisk 操作来执行一次测试:
    /home/ubuntu/openwhisk/ansible/../bin/wsk -i action invoke --blocking hello
    ok: invoked /_/hello with id 1319b4cb784743c8bf405c32caa972b4




除此之外,OpenWhisk 还提供了一个,这些包可用于各种各样的使用场景。
备注:OpenWhisk Git 存储库的分支只能用于概念证明,不能用于生产。将它向上合并到 OpenWhisk                的主要 Git 存储库还需要一些额外工作,可能要对多架构 OpenWhisk 部署的实现做进一步整理和设计,并慎重讨论。
结束语本文介绍了建立一个全功能 OpenWhisk 集群需要执行的步骤。研究表明,基础平台切换成了 IBM Power 服务器时,使用 OpenWhisk 的用户体验几乎没变。
无服务器框架变得越来越受欢迎,而 IBM Power 硬件可能是运行一些无服务器客户解决方案的最佳平台,这得益于该架构的出色平台优势。
返回列表