归档日期:: 2019-08-06
此内容不再被更新或维护。 内容是按“原样”提供。鉴于技术的快速发展,某些内容,步骤或插图可能已经改变。摘要
如今,云原生应用程序引发了众多开发者的广泛讨论。在云原生开发领域中,像 Kubernetes 和 Docker 这样的技术越来越受欢迎,也日渐普及。如果您需要端到端的全栈微服务应用程序,并希望构建通过区块链实现的云原生应用,那么此 Code Pattern 是一个很好的起点。您可以学习如何在 Hyperledger Fabic 上使用以太坊智能合约,从而轻松使用经过许可的区块链。此 Code Pattern 演示了基于 Kubernetes 的、高度可伸缩的现代工具,展示了合并数据存储和业务规则的方法。
概览
此 Code Pattern 演示了如何在私有云上构建高可用性的云原生应用。后端基于 Node.js 和 IBM Db2 数据库。IBM Operational Decision Manager 用于设计基于规则的业务决策。前端使用 Angular4 来构建。分布式异步任务队列则基于 RabbitMQ 和 Celery。容器编排由 Kubernetes 来管理。最后,区块链基于 Hyperledger Fabric、Hyperledger Burrow 和以太坊智能合约。
利用此 Code Pattern,您可以基于微服务架构、IBM 中间件和以下 12 要素实践,构建一个样本云原生应用程序。此样本应用程序是使用以下技术的航空公司订票平台:
- Node.js (Typescript)
- IBM Db2
- IBM Operational Decision Manager (ODM)
- RabbitMQ
- Celery
- Angular
- Hyperledger Fabric
- Hyperledger Burrow
- Solidity
- Docker
- Kubernetes
- IBM Cloud Private
通过使用此 Code Pattern,您将了解如何完成以下任务:
- 将应用程序分解为不同的微服务。
- 在 IBM Cloud Private 上部署基于微服务的应用程序。
- 在 Kubernetes 上利用 IBM ODM 和 IBM Db2 等中间件。
- 为 IBM ODM 设计业务规则和决策。
- 使用 RabbitMQ 和 Celery 创建分布式任务队列。
- 使用 Db2 作为后端数据存储。
- 使用 Hyperledger Burrow 在 Hyperledger Fabric 上部署以太坊智能合约。
- 使用 IBM Cloud Private、Docker 和 Kubernetes。
流程
- 用户访问航空公司订票应用样本。
- 使用 Angular4 构建的用户界面使用 RESTful 终端来访问后端微服务。
- 登录微服务 (Login Microservice) 允许用户登录应用程序。
- 注册微服务 (Signup Microservice) 允许用户注册航空公司订票应用程序。
- 办理登机手续微服务 (Checkin Microservice) 允许用户根据预订的具体航班办理登机手续。
- 清单微服务 (Listing Microservice) 允许用户列出可用的航班并浏览航班。
- 预订微服务 (Booking Microservice) 允许用户预订可订航班。
- 区块链微服务 (Blockchain Microservice) 通过以太坊代理帮助与区块链进行通信。
- 来自用户以及与微服务交互的数据存储在 IBM Db2(一种 SQL 数据库)中。
- ODM 微服务 (ODM Microservice) 有助于与 IBM Operational Decision Manager (ODM) 进行通信。
- IBM ODM 是一种高级业务规则管理系统,可用于捕获、自动执行和管理频繁的可重复业务决策。它为日常运营增加了实时决策能力。
- 电子邮件微服务 (Email Microservice) 与 RabbitMQ 和 Celery 通信,以异步队列发送电子邮件。
- RabbitMQ 作为消息传递代理,是消息传递的媒介。它为应用程序提供了一个发送和接收消息的通用平台,您的消息在被接收之前,将安全地存储在这个地方。
- Celery 是基于分布式消息传递的异步任务队列或作业队列。
- 以太坊代理允许与以太坊虚拟机 (EVM) 进行通信。
- Hyperledger Burrow EVM 链码插件通过使用 Hyperledger Burrow 在 Hyperledger Fabric 上增加了以太坊功能。
- Hyperledger Fabric 是一种区块链框架实现,是 Linux 基金会托管的 Hyperledger 项目之一,意在为开发具有模块化架构的应用程序或解决方案奠定基础。它允许一些组件即插即用,比如共识服务和成员服务。
操作说明
可以在 GitHub 存储库内的 README.md 文件中找到本 Code Pattern 的详细技术步骤。
- 将 Docker(专用注册表)与 IBM Cloud Private 连接。
- 安装所有依赖项,创建镜像并上传到 IBM Cloud Private 的专用注册表。
- 将 kubesctl 与 IBM Cloud Private Kubernetes 连接。
- 在 IBM Cloud Private 中配置持久存储。
- 部署 IBM Db2,创建数据库并配置 IBM Db2。
- 部署 RabbitMQ。
- 部署和配置 IBM Operational Decision Manager (ODM),并加载业务规则。
- 部署区块链。
- 部署以太坊代理。
- 配置和部署 Kubernetes 密钥相关信息。
- 配置和部署 config-map。
- 部署所有服务和部署项。
本文翻译自:Build an airline booking platform on a private cloud(2018-08-14)