在私有云上构建航空公司订票平台  

基于 Node.js 构建一个使用微服务架构的航空公司订票应用程序示例,并将其部署到 IBM Cloud Private 上

Description

如今,云原生应用程序引发了众多开发者的广泛讨论。在云原生开发领域中,像 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。

  1. 用户访问航空公司订票应用样本。
  2. 使用 Angular4 构建的用户界面使用 RESTful 终端来访问后端微服务。
  3. 登录微服务 (Login Microservice) 允许用户登录应用程序。
  4. 注册微服务 (Signup Microservice) 允许用户注册航空公司订票应用程序。
  5. 办理登机手续微服务 (Checkin Microservice) 允许用户根据预订的具体航班办理登机手续。
  6. 清单微服务 (Listing Microservice) 允许用户列出可用的航班并浏览航班。
  7. 预订微服务 (Booking Microservice) 允许用户预订可订航班。
  8. 区块链微服务 (Blockchain Microservice) 通过以太坊代理帮助与区块链进行通信。
  9. 来自用户以及与微服务交互的数据存储在 IBM Db2(一种 SQL 数据库)中。
  10. ODM 微服务 (ODM Microservice) 有助于与 IBM Operational Decision Manager (ODM) 进行通信。
  11. IBM ODM 是一种高级业务规则管理系统,可用于捕获、自动执行和管理频繁的可重复业务决策。它为日常运营增加了实时决策能力。
  12. 电子邮件微服务 (Email Microservice) 与 RabbitMQ 和 Celery 通信,以异步队列发送电子邮件。
  13. RabbitMQ 作为消息传递代理,是消息传递的媒介。它为应用程序提供了一个发送和接收消息的通用平台,您的消息在被接收之前,将安全地存储在这个地方。
  14. Celery 是基于分布式消息传递的异步任务队列或作业队列。
  15. 以太坊代理允许与以太坊虚拟机 (EVM) 进行通信。
  16. Hyperledger Burrow EVM 链码插件通过使用 Hyperledger Burrow 在 Hyperledger Fabric 上增加了以太坊功能。
  17. Hyperledger Fabric 是一种区块链框架实现,是 Linux 基金会托管的 Hyperledger 项目之一,意在为开发具有模块化架构的应用程序或解决方案奠定基础。它允许一些组件即插即用,比如共识服务和成员服务。

Instructions

可以在 GitHub 存储库内的 README.md 文件中找到本 Code Pattern 的详细技术步骤。

  1. 将 Docker(专用注册表)与 IBM Cloud Private 连接。
  2. 安装所有依赖项,创建镜像并上传到 IBM Cloud Private 的专用注册表。
  3. 将 kubesctl 与 IBM Cloud Private Kubernetes 连接。
  4. 在 IBM Cloud Private 中配置持久存储。
  5. 部署 IBM Db2,创建数据库并配置 IBM Db2。
  6. 部署 RabbitMQ。
  7. 部署和配置 IBM Operational Decision Manager (ODM),并加载业务规则。
  8. 部署区块链。
  9. 部署以太坊代理。
  10. 配置和部署 Kubernetes 密钥相关信息。
  11. 配置和部署 config-map。
  12. 部署所有服务和部署项。

相关博客

相关链接

英文原文

本 Code Pattern 翻译自:Build an airline booking platform on a private cloud(2018-08-14)

IBM Cloud

一个横跨公共、私有和混合环境的全栈式云平台。

IBM Cloud Kubernetes Service

Kubernetes Service 创建计算主机的集群并部署高度可用的容器。通过 Kubernetes 集群。您可以安全地管理快速部署、更新和扩展应用程序所需要的资源。