クラウド

Bluemixのコンピューティング方法Cloud Foundry + OpenWhisk

記事をシェアする:

再度IBM Bluemixのクラウド・プラットフォームは複数のコンピューティングモデルを柔軟に選択可能

openwhisk

開発者の方が、例えば特定のOSからのアクセスのためにアプリケーションを調整する必要があったり、多くのリクエストがあると想定されるAPIを提供したり、あるいは迅速かつ自動でスケールするようにマイクロサービスを実装する際に、IBM Bluemixのコンピューティングモデルを利用することで、開発者とそのユーザーが求める形で顧客体験を柔軟に提供することが可能になります。

その基盤の中で、Cloud FoundryとOpenWhiskは開発者がすぐにアプリケーションのワークロードを処理し、実際の利用にいたるまでの時間を削減することが可能なモデルとなっています。

この2つの差を細かく検討する前に、まずはBluemixが提供しているコンピューティングモデルについて見てみたいと思います。Cloud FoundryとOpenWhiskが何であるか、どのような問題に対して有効なのかといったことを、特に現状で要望が多いモバイルの観点からご紹介します。

blog_table-1-800x342

Cloud Foundry

  • BluemixはCloud Foundryが提供するオープンテクノロジーに準拠しており、クラウド・アプリケーションを容易に実装することが可能です。
  • Cloud Foundryはクラウド・コンピューティングPaaS (Platform-as-a-Service)であり、アプリケーションの開発にもとめられる、開発、テスト、実装といった全てのステージをサポートします。
  • Cloud Foundryはcfと呼ばれるCLIプログラムを整備しており、Bluemixとのやり取りのためのツールとしています。
    (Bluemixはこの機能をweb GUIとして拡張しています)
  • Cloud Foundryはワークスペースとして活用可能なスペースを持つ構造となっています。異なるスペースは一般的には、アプリケーション開発の異なるステージに対応します。
  • Cloud Foundryはサービスとアプリケーションを提供します。Cloud Foundryのサービスは通常特定の機能を提供します(例:データベース機能)。

OpenWhisk

  • OpenWhiskはIBMが開発し展開している、イベントドリブンのコンピューティングモデル、またはFunction-as-a-Service (FaaS)です。
  • OpenWhiskは自動で拡張するサーバーレスアーキテクチャーであり、イベントを起点としてアプリケーションを実行します。
  • OpenWhiskはwskと呼ばれるコマンドライン型プラグラミング環境を提供しています。
  • OpenWhiskはトリガー・アクション・ルールといった概念を採用しています。
      • トリガーとはイベントまたは複数のイベントにより構成されます。
      • アクションは実行されるコードをカプセル化します。OpenWhiskでは複数の言語をサポートしており、Node.js, Swift, Dockerコンテナーによりカプセル化されたバイナリプログラムを利用可能です。アクションにより、既存のBluemixで提供されているアナリティクス、データ、コグニティブ、あるいはサードパーティ提供によるサービスといったオープン技術を起動します。
      • ルールはトリガーとアクションの関係を記述します。

Cloud Foundry とOpenWhiskの違い

それではCloud FoundryとOpenWhiskはどのような違いがあり、どのような場合にどちらを利用するのが適しているかを見ていきましょう。

Platform-as-a-Service (PaaS)ではサーバー上でプロセスを実行する必要があります。イベントを受け取り、そのイベントを起点としてロジックを実行するという長いプロセスが必要になるのです。常にそういったプロセスはアイドル状態になっている必要がある、CPUとメモリーを必要とします。

一方で、Function-as-a-Service(FaaS)上では、プラットフォームがイベントの待機状態を担います。イベントが一度発生すると、コードが具体的に実行されるのです。コードは一度実行されるとシャットダウンし、以降はいかなるリソースも必要としません。

上記を踏まえるとCloud Foundryは以下のような場合に適切な方法となると考えられます。

  • バックエンドとアプリケーションを同時に開発している。
  • 複数のサービスを開発し連携する必要がある。
  • OpenWhiskでは不可能となる、比較的長いアクションや機能を実装する。

一方でOpenWhiskは以下のような場合に適切です。

  • アプリケーションの開発に特化している。
  • 自動スケーリングが必要で、迅速な開発環境を必要としている。
  • 「単純な機能」を提供する実装を行う。

Cloud Foundry + OpenWhisk

ある場合には、Cloud FoundryとOpenWhiskを同時に利用することでメリットを得られるかもしれません。もしOpenWhisk上で動作する単純な機能と、Cloud Foundry上で動作する比較的長いアクションの両方を必要とするようなアプリケーションを開発するのであれば、両方のコンピューティングモデルを利用することが適切な解となることがあります。ここでは両方のコンピューティングモデルを活用している実例を見てみましょう。

BluePic

BluePicはIBM Swiftチームが作成したサンプルです。こちらではCloud FoundryとOpenWhiskを同時に利用した事例を提供しています。

BluePicはiOSアプリケーションであり、SwiftのアプリケーションフレームワークであるKituraを利用しています。このアプリは写真共有用のアプリケーションであり、開発者の方が自分のアプリケーションをKituraやBluemix 上のサービス、そしてOpenWhiskのアクションと連携する方法をご紹介しています。

 

BluePicのアーキテクチャー
BluePic Architecture

BluePicはSwift用Cloud Foundryビルドパックを利用しています。Kitura-based Serverはコミュニケーションレイヤーとして機能し、例えばデータをCloudantに、イメージバイナリーをObject Storageにアップロードします。

Cloud Foundryを利用したバックエンドの実装後、OpenWhisk上のコンポネーントはアップされた画像データを分析し、画像情報に適したタグを抽出します。加えてOpenWhiskは気象データの収集といったアクションを起動し、画像情報が取得された地域の天気や気温といった情報を付与します。

さらに詳しく知りたい方へ

ここまでの記事でCloud FoundryとOpenWhiskの概要と提供する機能、および両者を同時に使った場合のメリットをお伝えしてきました。それぞれのコンピューティングモデルは異なる特徴がありますが、適した方法で利用することでメリットを享受することが可能であると考えています。
さらなる詳しい情報をご希望の方は、下記リンクをご参考ください。

(※本記事はIBM CorporationのUSブログに掲載された記事の抄訳です。)

Bluemixは複数のコンピューティングモデルの活用が可能で、最新のサーバーレス・テクノロジーを体験することができます。

 

さらに詳しく クラウド 記事

戦略シミュレーションゲームを分析する

Bluemix, クラウド

森住祐介 Yusuke Morizumi 日本IBMのデベロッパー・アドボケイトとして、デベロッパー支援やスタ ...続きを読む


証券業界のフィンテックを支援に向けて「FinTech 証券共通 API」を発表

Bluemix, クラウド

本日は、IBMが新たに発表をいたしました「FinTech証券共通API」についてご報告をいたします。今回の発表 ...続きを読む


アメリカン・エアライン社がクラウドによるグローバルな変革に向けIBMと提携

Bluemix, クラウド

本日は、アメリカン・エアライン社がクラウドによる大規模な変革の基盤としてIBMクラウドを採用することを発表した ...続きを読む