アセットを中心としたクラウド・ベースのコラボレーションのためのベスト・プラクティス

Rational Asset Manager を使用してコラボレーティブ・マルチテナンシーを実現する

IBM® Cloud (IBM Smart Business Development and Test in the IBM Cloud) でマルチテナント型アプリケーションを作成するためのベスト・プラクティスについて学ぶ連載の第 2 回目となる今回は、IBM Rational® Asset Manager を利用してコストを削減し、生産性を高め、コラボレーションを推し進める一方、各テナントのアセットに対して望ましいレベルの分離とプライバシーを維持する方法について学びます。

Christina Lau (clau@ca.ibm.com), Distinguished Engineer, IBM

Christina LauChristina Lau は、クラウドやモバイル・コンピューティングなどの新しい技術に豊富な経験を持つ、WebSphere の Distinguished Engineer です。彼女は現在、BPM、接続性、および ILOG ポートフォリオでのオンライン・クラウド・サービスの提供をサポートする高度な技術の開発に取り組んでいます。


developerWorks 貢献著者レベル

Revathi Subramanian, Senior Software Engineer, IBM Corporation

Author photoRevathi Subramanian は IBM 研究所のシニア・ソフトウェア技術者です。彼女はサービス指向アーキテクチャー、クラウド・コンピューティング、SaaS フレームワークなどを研究しています。彼女は WebSphere、Lotus、Rational、Tivoli など、IBM の多くの開発チームで働いた経験があり、研究成果としての技術を製品やサービスの実用化に反映してきました。



2011年 3月 22日

はじめに

現在、クラウド・プラットフォームとクラウド・ベースのソリューションは現実のものとなっており、ますます多くの企業がコスト削減と生産性向上のために、ホストされたソフトウェアや、ホストされたソリューション、そしてホストされたサービスを利用しており、コア・コンピタンスとはなっていない業務をアウトソーシングしています。

価値実現までの時間短縮を目指す企業にとって、既存のアセットの上にアプリケーションを構築した方が、ゼロから構築するよりも容易に目的を実現することができます。クラウド環境では、アセットの共有および再利用は欠かせません。新しいアセット (例えば、少数のユーザーを対象とした特別なアプリケーション) を作成する場合、既存のアセット (既存のアプリケーションなど) をインポートし、特別な用途を対象に調整するという方法を使えば、目的のアプリケーションを容易に作成することができます。

ビジネス・ユーザーがコラボレートしてアセットを作成、共有することを可能にする SaaS (Software as a Service) アプリケーション (IBM® Blueworks Live など) は、アセット中心のアプリケーションと考えることができます。Blueworks Live の場合、BPM (Business Process Management) アセットをチーム内の他の人達と共有することができます。

このようなアセット中心の SaaS アプリケーションの場合、適度な分離および共有を実現するための機能を提供することが重要です。ある特定のアセットはクラウド・コミュニティー全体で共有される一方、他のアセットは機密であり、ある 1 つのテナントの境界内でないと利用できない、という場合があります。テナントの境界内でアセットをセキュアに維持することが不可欠である一方で、テナント同士がアセットを中心にコラボレーションを行えることも必要です。ここではこれを、コラボレーティブ・マルチテナンシーと呼ぶことにします。この環境では、ユーザーの選択に応じてユーザー同士がテナント境界にまたがって協力し、成果物を開発、共有することができます。

私達はいくつかの SaaS アプリケーションを構築する中で、アセット中心のコラボレーションに関する多くの要件を満たすために、IBM Rational Asset Manager を IBM Cloud の共有コンポーネントとして使用してきました。Rational Asset Manager はコラボレーティブ・ソフトウェア開発ツールであり、さまざまな組織がソフトウェア・アセットやサービスの設計、開発、利用を確認、管理、制御するために使用することができます。Rational Asset Manager はアセットのリポジトリーと考えることができ、そこにアセット中心の豊富な機能セットが組み合わされています (例えばアップロード、ダウンロード、検索、レポート、ガバナンス、など)。Rational Asset Manager はあらゆるアセット (例えばアプリケーション、コンポーネント、パターン、システムおよび製品を実行するソフトウェア、サービス、フレームワーク、テンプレートなど) を扱うことができます。

この記事では、Rational Asset Manager (RAM) を使用してコラボレーティブ・マルチテナンシーを実現する方法について説明します。また、RAM がマルチテナント・アプリケーションにとって望ましいレベルのアセットの分離とプライバシーを維持する一方で、コラボレーションをサポートする上で RAM が果たす重要な役割についても説明します。さらに、この RAM を IBM Cloud 内でプロビジョニング、構成、管理する方法についての実用的な情報を紹介します。


マルチテナント環境でのアセットの分離と共有

アセットの分離と共有というのは、あるテナントに属するアセットは、他のテナントからの明示的な要求がない限り他のテナントから見えるようにはならない、というものです。この動作は RAM に用意された「アセット・コミュニティー」の概念を利用すると、容易に実現することができます。

Rational Asset Manager では、共通の使用方法と目的でグループ分けされたアセットの集合として、アセット・コミュニティーを定義します。このコミュニティーという環境の中で、ユーザーは互いに関連するアセットのグループを操作します。コミュニティー管理者はユーザーとユーザー・グループに役割とアクセス権を割り当てることで、そのコミュニティーに対する複数のアクセス・レベルを設定します。こうしたスコープの設定を利用して、以下のようにアセットの分離を実現することができます。

  1. 各テナントに対し、テナント管理者をコミュニティー管理者として Rational Asset Manager でアセット・コミュニティーを作成します。このアセット・コミュニティーはプライベートなコミュニティーであるため、このコミュニティーのアセットはテナント境界の中でしか見えません。
  2. テナントに登録されたユーザーはすべて、このアセット・コミュニティーの登録メンバーとなり、アセットを公開したりダウンロードしたりすることができます。
  3. ユーザーがアセットを公開する場合、コミュニティーがデフォルトの公開対象となります。
  4. オプションとして、各コミュニティー管理者が自分たちの組織のユーザーに対して追加の役割を設定できるようにすることも可能です (例えばアセットのレビュー・プロセスやガバナンス・プロセスをサポートする役割など)。

パブリック・アセット・コミュニティー

SaaS プロバイダーはテナント境界にまたがるコラボレーションを促進し、テナント間の相互関係の新しい様式を実現することによって、クラウド・コミュニティー全体の価値を高めることができます。

しかしそのために SaaS プロバイダーはいくつかのパブリック・アセット・コミュニティーを作成し、それらのコミュニティーに対してすべてのテナントが再利用可能なアセットを用意する必要があるかもしれません。アセットに対するフィードバックを求めるテナントや、他のテナントとコラボレートしてアセットを開発したいと望むテナントも、以下のようにしてパブリック・アセット・コミュニティーを活用することができます。

  1. Rational Asset Manager で 1 つまたは複数のパブリック・アセット・コミュニティーを作成します。
  2. パブリック・コミュニティーに対する暗黙的なメンバーシップを作成します。この場合、そのクラウド・ソリューションに登録されたすべてのユーザーは、自動的にこれらのパブリック・コミュニティーのメンバーになります。
  3. 登録されたすべてのユーザーがパブリック・コミュニティーにアセットを公開したり、パブリック・コミュニティーからアセットをダウンロードしたりできるようにします。

図 1 はアセットの分離と共有のためのアーキテクチャーを示しています。

図 1: クラウドのテナント間でのアセットの分離と共有
図 1: クラウドのテナント間でのアセットの分離と共有

IBM Cloud で Rational Asset Manager をプロビジョニングする

IBM Cloud には Rational Asset Manager のイメージが用意されており、現在のバージョンは 7.2.0.2 です。図 2 のように「Add instance (インスタンスの追加)」ウィザードを使用して、Rational Asset Manager がインストールされた VM をプロビジョニングします。この Rational Asset Manager インスタンスは 組み込みの IBM WebSphere Application Server 上で実行されています。このインスタンスは開発やテストの場合に便利です。

図 2: IBM Cloud における RAM の単一インスタンスのイメージ
図 2: IBM Cloud における RAM の単一インスタンスのイメージ

ただし本番環境では、Rational Asset Manager クラスターをインストールしてワークロード・バランスとフェイル・オーバー機能を実現する必要があります。現状の IBM Cloud には、そうしたプロダクション・イメージが用意されていないため、皆さんが自分でイメージをセットアップする必要があります。以下のセクションでは、私達が行った方法について説明します。


IBM Cloud で Rational Asset Manager クラスターを構成する

基本的な考え方として、まずベースとなる RHEL (Red Hat Enterprise Linux) イメージから出発してから、Rational Asset Manager クラスターを作成します。図 3 は全体的なトポロジーを示しています。具体的には以下のとおりです。

  • RAM ノード 1 と RAM ノード 2: 2 つのノードからなる Rational Asset Manager クラスターであり、各ノードで 2 つの Rational Asset Manager サーバーが実行されています。ノードの追加と、ノード内での Rational Asset Manager サーバーの追加の、いずれかまたはその両方により、スケーリングすることが可能です。
  • RAM デプロイメント・マネージャーと Rational License Server: RAM デプロイメント・マネージャーのノードには、クラスターへの Rational Asset Manager のインストールと構成を行う Rational Asset Manager セットアップ・アプリケーションをインストールしておかなければなりません。また、Rational License Server は、Rational Asset Manager への同時アクセスが想定されるユーザー数に十分対応可能な数のライセンス・キーとともにインストールしておく必要があります。
  • Rational Asset Manager ロード・バランサー: 複数の Rational Asset Manager サーバーに負荷を分散する VM です。この VM は、Rational Asset Manager クラスターを使用しようとするすべてのクライアントに対するエントリー・ポイントになります。
  • ストレージ・マウント VM: IBM Cloud ストレージに接続された VM であり、アセットを格納するために使用されます
  • データベース: データベース・サーバーとしてシステム内で共有される VM です。
  • LDAP: ユーザー・ディレクトリーとしてシステム内で共有される VM です。
図 3: IBM Cloud 上の本番環境で実行される Rational Asset Manager
図 3: IBM Cloud 上の本番環境で実行される Rational Asset Manager

RAM ノードと RAM デプロイメント・マネージャーの構成プロセスには何段階かのステップがあり、そのプロセスは製品のドキュメントに十分詳しく説明されています。以下のセクションでは、IBM Cloud 上で Rational Asset Manager クラスターを動作させるために必要な追加の構成について説明します。

アセットに対する共有ストレージ

Rational Asset Manager はファイル・システムを利用して成果物を格納します。Rational Asset Manager を構成する場合、ファイルと索引を永続化するためのフォルダーの場所を指定する必要があります。クラスター環境では、すべての Rational Asset Manager サーバーからアクセスできるように、そのフォルダーを共有ドライブ上に配置する必要があります。

IBM Cloud の場合、同じ機能を IBM Cloud ストレージによって実現することができます。「IBM Cloud にデプロイされるアプリケーションを設計する際のベスト・プラクティス」で説明したように、IBM Cloud ストレージを使用することで、複数の VM 間でファイルを永続化したり共有したりすることができます。図 3 は、プロビジョニング済みの IBM Cloud ストレージに接続されたストレージ・マウント VM を示しています。

NFS (Network File System) サーバーはストレージ・マウント VM の RHEL イメージ上で既に利用可能であり、単に構成して起動するだけでよいのです。NFS クライアントも各 RAM ノードで起動されており、ストレージ・マウント VM に接続されています。この設定により、Rational Asset Manager はユーザーの成果物を IBM Cloud ストレージに保存することができます。図 3 にはそのことが示してあります。

ライセンスに関する考慮事項

Rational Asset Manager は、ライセンスを適用するために Rational Common Licensing を使用します。永久的なライセンス・キーを提供するか、あるいは要求された FLEXlm ライセンス・キーを使って Rational License Server をセットアップし、Rational Asset Manager を構成してこのライセンス・サーバーに接続する必要があります。

FLEXlm ベースのライセンス・キーを生成するためには、Rational License Server がインストールされているマシンのホスト ID が必要です。このホスト ID を使用して、キーの登録対象とするハードウェアを指定します。ホスト ID はディスクのシリアル番号の場合もあれば、MAC アドレスの場合もあります。ライセンス・キー・ファイルは、そのファイルの生成時に指定されたライセンス・サーバー上でないと実行することができません。

Rational License Server によって提供されるライセンス・キーは、MAC アドレスまたはディスクのシリアル番号に依存します。VM が削除されたり再度プロビジョニングされたりするクラウド環境では、例えば障害からの回復の際、この方式のライセンス・キーが新たな難題を生じさせます。なぜなら、IBM Cloud 上で再度プロビジョニングされた VM の MAC アドレスは、(静的な IP は同じであっても) その前にプロビジョニングが解除された VM の MAC アドレスと同じではないからです。

そのため、Rational License Server のホスト ID が変更された場合には、新しいホストに対してライセンスを再発行し、そのライセンスを Rational License Server に登録する必要があります。あるいは、永久的なライセンスを持つことによってライセンス・サーバーそのものをバイパスします。

エンタープライズ環境へのインポート

テナントがクラウド環境のアセットを企業のファイアーウォールの中にあるエンタープライズ環境にインポートしたい場合には、Rational Asset Manager のクライアントである Eclipse 「Asset Management (アセット管理)」パースペクティブを利用して認証を行い、それから当該アセットを参照あるいはインポートすることもできます。これを示したものが図 4 です。

図 4: Rational Asset Manager のクライアントである Eclipse を使用して企業内にアセットをインポートする
図 4: Rational Asset Manager のクライアントである Eclipse を使用して企業内にアセットをインポートする

ブラウザー環境と Eclipse 環境の両方から Rational Asset Manager にアクセスできるようにデプロイメントを構成する場合、アクセス方法によっては少し面倒なことがわかりました。RAM では、(ブラウザーを使用する) フォーム・ベースの認証と (Eclipse を使用する) 基本認証の両方を使用します。そのため、プラットフォームによるアクセスを構成する場合には、クラウドにアクセスする場合と社内でアクセスする場合の両方のシナリオを実現できるように、基本認証とフォーム・ベース認証の両方をサポートする必要があります。このソリューションでは、基本認証とフォーム・ベース認証の両方に対応するように構成された WebSEAL インスタンスのクラスターをデプロイしています。トラフィックは受信したリクエストの HTTP ヘッダーに基づいて適切な WebSEAL インスタンスにルーティングされます。ソリューション全体の中で WebSEAL が果たす役割については、今後の記事の中で詳しく説明する予定です。


クラウド内での Rational Asset Manager の管理と監視

図 3 の各 VM に対し、その特定の VM 上のサーバーとサービスを起動するために必要なアクションのシーケンスを起動スクリプトによって記述します。起動スクリプトに含まれるステップの例としては、NFS クライアントの起動、WebSphere® Application Server の起動、必要な共有ストレージのマウントなどが考えられます。こうしたスクリプトにより、VM がリブートされた場合にも、その VM はすべてのサービスが起動されてアクセス可能な状態に自動で復帰します。

IBM Cloud に IBM Tivoli® Monitoring がデプロイされていると、クラウド上にあるすべての VM のパフォーマンスと可用性を監視することができます。URL、ログ、ネットワーク接続などを監視するためのエージェントをいくつも作成することにより、私達は問題を検出することができ、また多くの場合、人間の介在なしに問題から自動で復帰することができました。Rational Asset Manager サブシステムの場合、検出されて回復が試みられる障害には、以下のようなものがあります。

  • 共有ストレージにアクセスできない
  • 1 台または複数台の RAM サーバーがダウン、または応答しない
  • ログ (ramDebug.log や SystemOut.log など) にライセンス・エラー、接続の問題、スレッドのハングアップなどのエラーが記録されている
  • 共有データベース・サーバーが利用できない

今後の記事では、IBM Tivoli Monitoring をデプロイして構成し、クラウド・ソリューションの監視および回復を自動化する方法について説明する予定です。


アセットのガバナンスとセキュリティー

IBM Cloud 上で Rational Asset Manager の製品クラスターを起動して高い信頼性で稼働している状態にする他にも、アセットに対するタクソノミーとガバナンス・プロセスをどう定義しなければならないのかを検討する必要があります。

これに対する答えは 1 つではなく、ある人のクラウド・ソリューションにとって最適な答えが他の人のソリューションにとっての最適な答えではない可能性がありますが、検討に値するヒントをいくつか以下に挙げておきます。

  1. 自分のクラウド・ソリューションにとって意味のあるアセットのタイプにはどんなものがあるか。例えば、上位レベルのアーキテクチャーや設計のアセット、実装のアセット、さらにはマーケティングやデモのアセットなども考えられます。
  2. アセット・タイプに対する分類属性を追加で定義し、その属性を検索に利用することで、検索を容易に行えるようにすることを検討してください。例えば、業界による分類 (小売業界、医療業界など)、1 つの業界内の領域による分類、成熟度のレベルによる分類 (レベル 1、2、3 など)、採用パターンによる分類、カスタマイズ特性による分類 (そのまま使用するアセットなのか、あるいは構成可能なアセットなのか) などが考えられます。
  3. アセットに対して詳細なアクセス制御を行う場合、どんなセマンティクスを考慮する必要があるか。例えば以下のようなセマンティクスを考えることができます。
    • アセットを作成できるのは誰なのか?
    • アセットを削除できるのは誰なのか?
    • あるユーザーが別のユーザーのアセットを閲覧したり変更したりできるのか?
    • あるユーザーが別のユーザーとアセットを共有できるのか?
    • アセットを再度共有することは許可されているのか?

これらの考慮事項はクラウドにデプロイする場合に限定されるわけではありませんが、クラウドでは本質的にアセットが共有されるため、こうした標準的なプラクティスを前もって検討し、ソリューションをデプロイした後の変更 (多くのテナントに影響する可能性があります) を最小限にとどめることが通常以上に重要です。


まとめ

この記事では、アセット中心にコラボレーションすることにより、同じ目的を持つ複数の組織が従来の方法の何分の一かのコストでアプリケーションを構築できることを説明しました。そうしたクラウド・ソリューションにより、ユーザーは一般的なソーシャル・ネットワーキング技術を利用して従来以上のやりとりを行える一方、エンタープライズ・アセットに必要なレベルのセキュリティー、ガバナンス、完全性を維持することができます。さらにこの記事では、Rational Asset Manager をベースに構築されたクラウド・ソリューションをデプロイすることにより、アセットを中心とするコラボレーションの強力さを発揮できることも示しました。

参考文献

学ぶために

製品や技術を入手するために

  • 「IBM Smart Business Development and Test on the IBM Cloud」で利用可能な製品イメージを調べてください。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, Rational
ArticleID=647215
ArticleTitle=アセットを中心としたクラウド・ベースのコラボレーションのためのベスト・プラクティス
publish-date=03222011