プライベート・クラウド上にフライト予約プラットフォームを構築する  

プライベート・クラウド上にデプロイされたマイクロサービス・アーキテクチャーを使用してフライト予約プラットフォームを構築する

Last updated | By Saif Rehman, Aziz Alsharafi

Description

最近は開発者たちの耳に、クラウド・ネイティブのアプリケーションに関するさまざまな情報が入ってきます。こうしたクラウド・ネイティブの世界で評判も需要も高くなってきているテクノロジーとしては、Kubernetes と Docker が挙げられます。完全にフルスタックのマイクロサービス・アプリケーションを必要としていて、ブロックチェーンの実装によってクラウド・ネイティブのアプリを構築したいとしたら、このコード・パターンが絶好の出発点となります。このコード・パターンでは、Hyperledger Fabric 上で Ethereum スマート・コントラクトを使用して、許可制ブロックチェーンを簡単に利用できるようにするための手順を案内します。また、極めてスケーラブルな Kubernetes ベースの最新のツールを紹介し、データ・ストレージとビジネス・ルールを統合する方法を説明します。

このコード・パターンで紹介しているのは、プライベート・クラウド上で高可用性を備えたクラウド・ネイティブのアプリを構築する方法です。具体的には、Node.js と IBM DB2 をベースにアプリのバックエンドを作成します。ルール・ベースのビジネス意思決定は、IBM Operational Decision Manager を使用して設計します。フロントエンドは、Angular4 を使用して作成します。分散型の非同期タスク・キューは、RabbitMQ と Celery をベースに作成します。さらに Kubernetes によってコンテナー・オーケストレーションを管理します。そして最後に、Hyperledger Fabric、Hyperledger Burrow、Ethereum スマート・コントラクトをベースにブロックチェーンを作成します。

Overview

このコード・パターンでは、マイクロサービス・アーキテクチャーと IBM ミドルウェアをベースに、12 Factor App 手法として以下のテクノロジーを使用したクラウド・ネイティブのサンプル・アプリケーションを構築します。このサンプル・アプリケーションは、フライト予約プラットフォームです。

  • Node.js (Typescript)
  • IBM DB2
  • IBM Operational Decision Manager (ODM)
  • RabbitMQ
  • Celery
  • Angular
  • Hyperledger Fabric
  • Hyperledger Burrow
  • Solidity
  • Docker
  • Kubernetes
  • IBM Cloud Private

このコード・パターンをひととおり完了すると、以下の方法がわかるようになります。

  • アプリケーションを個別のマイクロサービスに分割する
  • マイクロサービス・ベースのアプリケーションを IBM Cloud Private 上にデプロイする
  • Kubernetes 上で IBM ODM や IBM DB2 などのミドルウェアを使用する
  • IBM ODM 用にビジネス・ルールと意思決定を設計する
  • RabbitMQ と Celery を使用して分散型タスク・キューを作成する
  • DB2 をバックエンドのデータ・ストレージとして使用する
  • Hyperledger Burrow を使用して Ethereum スマート・コントラクトを Hyperledger Fabric 上にデプロイする
  • IBM Cloud Private、Docker、Kubernetes を使用する

Flow

  1. ユーザーがサンプル・フライト予約アプリにアクセスします。
  2. Angular4 を使用して作成されたユーザー・インターフェースでは、Restful エンドポイントを使用してバックエンドのマイクロサービスにアクセスするようになっています。
  3. ユーザーがアプリケーションにログインするには、Login マイクロサービスを利用します。
  4. ユーザーがフライト予約アプリケーションに登録するには、Signup マイクロサービスを利用します。
  5. ユーザーが予約した特定のフライトにチェックインするには、Checkin マイクロサービスを利用します。
  6. ユーザーが予約可能なフライトを一覧表示して閲覧するには、Listing マイクロサービスを利用します。
  7. ユーザーが利用可能なフライトを予約するには、Booking マイクロサービスを利用します。
  8. Blockchain マイクロサービスは、Ethereum プロキシーを介したブロックチェーンとの通信をサポートします。
  9. ユーザーから入力されたデータと、マイクロサービスとのやり取りを示すデータは、SQL データベースである IBM DB2 内に保管されます。
  10. ODM マイクロサービスは、IBM Operational Decision Manager (ODM) との通信をサポートします。
  11. 高度なビジネス・ルール管理システムとしての IBM ODM を使用して、頻繁に行われる繰り返し可能なビジネス意思決定をキャプチャー、自動化、管理します。IBM ODM が日常的な業務にリアルタイムの意思決定機能を追加します。
  12. Email マイクロサービスは RabbitMQ および Celery と通信して非同期キュー内の e-メールを送信します。
  13. RabbitMQ はメッセージの送受信を仲介するメッセージング・ブローカーです。RabbitMQ はアプリケーションにとってはメッセージ送受信用の共通プラットフォームとなり、メッセージにとっては受信されるまで存続できる安全な場所となります。
  14. Celery は、分散メッセージ送信手法をベースとする非同期タスク・キューまたはジョブ・キューです。
  15. Ethereum プロキシーによって、Ethereum 仮想マシン (EVM) と通信します。
  16. Hyperledger Burrow EVM チェーンコード・プラグインによって、Hyperledger Burrow を使用する Hyperledger Fabric に Ethereum 機能が追加されます。
  17. Hyperledger Fabric は、モジュール式アーキテクチャーを使用してアプリケーションやソリューションを開発する基盤として意図されたブロックチェーン・フレームワーク実装です。The Linux Foundation によってホストされている Hyperledger プロジェクトのうちの 1 つとなっています。Hyperledger Fabric では、コンセンサスやメンバーシップ・サービスなどをプラグ・アンド・プレイ・コンポーネントとして使用できます。

Instructions

このパターンの詳細な手順については、README ファイルを参照してください。README ファイルで、フライト予約アプリケーションを IBM Cloud Private 上にデプロイする手順を詳しく説明しています。手順の概要は次のとおりです。

  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. Ethereum プロキシーをデプロイします。
  10. Kubernetes のシークレットを構成してデプロイします。
  11. config-maps を構成してデプロイします。
  12. すべてのサービスとデプロイメントを展開します。

Related Blogs

IBM Developer へようこそ

新しい IBM Developer へようこそ! 私たちはこの新しいプロジェクトに大いに張り切っていますが、まずは皆さんについて、つまり開発者についてお話ししたいと思います。

続けて読む IBM Developer へようこそ

Call for Code Challenge 2018(9/28応募締切!)- まずは参加登録して、自然災害に役立つ IBM Cloud のサービスに触れてみよう

みなさまこんにちは! 年々、テレビのニュースや新聞を見て、異常気象による集中豪雨や猛暑が各地で発生していると感じている方は多いのではないでしょうか。自然災害による甚大な被害をもたらしているのは日本だけではありません。「自然災害」は、今、世界が立ち向かうべき最も大きな試練となっています。 IBMは、2018年5月24日、パートナー団体と共に「Call for Code」をいう取り組みを発表し、世界中のデベロッパーが最新の技術を駆使して、コードで世界にポジティブな変化を与える支援をはじめました。 2018年の Call for Code チャレンジでは、「自然災害」をテーマに自然災害を打ち破り、地域社会や自然災害対策を強化を目指し、IBM Cloud サービスを活用したソリューションを構築するコンペティッションを開催します。18歳以上の個人または最大5名までのチームで参加することができます。優勝チームには USD200,000 (2,200万円相当) が贈られます。 これを機に皆さんにも「Call for Code」にご参加いただき、クラウド、データ、AI、ブロックチェーンを活用するためのIBMのテクノロジーにも触れていただければと思います。詳しくはサイトをご覧ください。 Call for Code(日本語サイト) Call for Code への参加するまでの手引き(日本語解説資料) IBM Code Patterns : Watson を活用した AI やクラウドなどのアプリ開発に役立つサンプルコードを提供

続けて読む Call for Code Challenge 2018(9/28応募締切!)- まずは参加登録して、自然災害に役立つ IBM Cloud のサービスに触れてみよう

Related Links

Hyperledger Burrow

Hyperledger Burrow provides a modular blockchain client with a permissioned smart contract interpreter partially developed to the specification of the Ethereum Virtual Machine (EVM).