Oracle WebLogic Server 12cR2新機能詳説──第1回 マルチテナント

Oracle Java & Developers編集部
2016-06-16 11:00:00
  • このエントリーをはてなブックマークに追加

WebLogicの誕生から20周年を迎えた今年、大幅に機能が強化された最新版「Oracle WebLogic Server 12c Release 2」がリリースされた。同バージョンの主要な新機能を3回にわたって紹介する。

 Oracle WebLogic Serverの最初のバージョンが登場したのは1996年のこと。それから20周年目を迎えた今年、前バージョンから大幅に機能強化された最新版の「WebLogic Server 12c Release 2(R2)」がリリースされた。

 Oracle WebLogic Server 12cR2の特徴的な新機能としては、次の3つが挙げられる。

  • マルチテナントへの対応
  • サービス継続性の強化(Continuous Availability)
  • Java EE 7への完全準拠およびDevOps対応の拡張

 本企画では3回にわたり、これらの新機能を紹介していく。初回となる今回は「マルチテナントへの対応」を取り上げる。

Oracle WebLogic Serverのマルチテナントの特徴

 Oracle WebLogic Server 12cR2のマルチテナント対応機能は「Oracle WebLogic Server Enterprise Edition」および「Oracle WebLogic Suite」のマルチテナント・オプション(Oracle WebLogic Server Multitenant。以下、「WebLogic Serverマルチテナント」と記す)によって利用することができ、これには次の内容が含まれる。

  • WebLogic Server MT:アプリケーション環境を少数のドメインに集約しつつ、環境間のセキュアな分離性を確保する
  • Resource Consumption Manager:単一のJVM上のメモリ、CPU、I/Oを分離して管理/監視することが可能
  • Traffic Director:テナントに対するローカル・ロード・バランシングを実現
  • Oracle Coherenceのアップグレード:Oracle Coherence Enterprise Edition、またはOracle WebLogic Suiteライセンスの場合にはCoherence Grid Editionへのアップグレードが可能

 WebLogic Serverマルチテナントの特徴は、一言で言えば「エンタープライズ・システムで必要となる『集約性』と『分離性』、そして『可搬性』の3要素を同時に実現できる」という点にある。

 近年、ITリソース使用の最適化やコスト削減を目的に、多数のアプリケーション実行環境を少数の環境に集約したいというニーズが高まっている。その一方で、1つの環境にテナントとして集約した場合、アプリケーション間で相互に影響が及ばないよう適切に分離させて独立性を確保することが重要な課題となる。

 WebLogic Serverマルチテナントでは、1つのサーバ上に複数のテナントを同居させられるようにすることで「集約性」を高めつつ、管理権限や認証機能などのセキュリティ要素とシステム・リソースを明確に分けて「分離性」を確保する。また、アプリケーションと環境設定をカプセル化することにより、他のサーバやOracle WebLogic Serverのパブリック・クラウド・サービスである「Oracle Java Cloud Service」へ容易に移行できる「可搬性」も備えている。


※クリックすると拡大画像が見られます

WebLogic Serverマルチテナントの構成要素

 次に示す図は、WebLogic Serverマルチテナントの基本的な構成要素を表したものだ。


※クリックすると拡大画像が見られます

 図にあるとおり、WebLogic Serverマルチテナントは、大別して次の4つの要素で構成される。

  • テナント
  • ドメイン・パーティション
  • リソース・グループ
  • 仮想ターゲット

 このうち「テナント」とは、1つの環境に同居する個々のアプリケーションのことを指し、残る「ドメイン・パーティション」、「リソース・グループ」、「仮想ターゲット」の3つはWebLogic Serverマルチテナントに固有の機能/概念となる。

ドメイン・パーティション

 ご存じのように、従来のOracle WebLogic Serverでは、アプリケーションは「ドメイン」の単位で管理されていた。ドメインとは、Oracle WebLogic Serverにおけるアプリケーションの論理的なグループを指し、ドメイン内のリソースを一元的に構成/管理する「管理サーバ」と、1つ以上の管理対象サーバおよびクラスタによって構成される。実際のアプリケーションやサービスは管理対象サーバ上でホスティングされる。

 Oracle WebLogic Server 12cR2以降でも従来どおりにドメインを利用できるが、1つのドメインを複数に分割し、それぞれを独立したドメインとして扱えるようにしたものが、新機能のドメイン・パーティションである。

 ドメイン・パーティションはドメインの“部分集合”であり、これを使うことでアプリケーションやリソースをパーティションごとにデプロイできるようになる。各パーティションは互いに独立しているため、リソースの管理単位も次のようにパーティションごとに分離される。

  • セキュリティの分離:パーティションごとにセキュリティ・レルムやアイデンティティ・ドメインを設定できる
  • 管理機構の分離:パーティション単位で起動や停止、デプロイ、監視などが行える
  • ランタイムの分離:パーティションごとにシステム・リソースの消費を管理することが可能。JNDIもパーティション別に設定される

リソース・グループ

 リソース・グループは、アプリケーションおよびリソースの管理単位であり、従来の構成ではサーバ・インスタンスに相当するものだと言える。リソース・グループはドメイン・パーティションごとに定義する。サーバ・インスタンスと同様に、リソース・グループ単位での起動/停止が行える。

 リソース・グループは、各パーティンションがどのリソースを使うかを示す定義情報を持ち、これには次のような内容が含まれる。

  • 名前、スコープ
  • アプリケーション
  • JDBC、メッセージング、メール・セッション、Persistent Store、外部JNDIプロバイダ、OSGiフレームワーク、診断情報
  • 仮想ターゲット
  • JDBCやメッセージングのモニタリング

 ドメイン・パーティションごとに一からリソース・グループを作ることも可能だが、事前に基本となる内容を定義したテンプレートを用意し、それをベースにして作成することもできる。1つのアプリケーションとリソース定義を複数のパーティションで使用したい場合などには、共通する定義内容をテンプレート化しておくと便利だ。テンプレートの定義内容は個別の設定でオーバーライドすることもできる。

仮想ターゲット

 仮想ターゲットとは、ドメイン・レベルでの物理的な属性情報と、ドメイン・パーティション内の情報を関連付ける役割を果たす機能である。仮想ターゲットでは、外部からどのようにパーティションに接続するか、どこでパーティションが稼働しているかといった情報がカプセル化されている。

 具体的には、ホスト名やポート番号、オプションURI、ネットワーク・アクセス・ポイント、宛先クラスタや宛先管理対象サーバといった情報を、ドメインとドメイン・パーティションの間で相互に変換する。この働きにより、Oracle WebLogic Serverのマルチテナント環境では、ドメイン・パーティションを物理的なWebLogicドメインと同等に扱えるようになっている。

WebLogic Serverマルチテナントのアーキテクチャ

 WebLogic Serverマルチテナントを使うことで、Webアプリケーションをマルチテナント構成で動作させることができる。下図に示すのは、マルチテナント環境の構成例だ。


※クリックすると拡大画像が見られます

 WebLogic Serverマルチテナントでは、1つのドメイン内に複数のパーティションを構成し、パーティションごとにリソース・グループを定義することができる。このとき、「Oracle Traffic Director(OTD)」が従来のドメインに代えて仮想ターゲットへのルーティングを行う。ドメインの属性情報は仮想ターゲットによって各ドメイン・パーティションの属性情報に変換されるため、OTD側ではドメイン・パーティションの内部を意識する必要はない。

 この環境において、Coherence GAR(Oracle Coherenceを用いたアプリケーションのアーカイブ)がパーティションにデプロイされた場合は、そのパーティションからのみアクセス可能なCoherenceサービスが作成される。したがって、Coherenceキャッシュはパーティションごとに保持されることになるが、パーティション間で共用するように設定することも可能である。

 データソースは各パーティンションから独立して必要となるが、それぞれのパーティション用のデータベースとしてOracle Databaseのプラガブル・データベースを使うこともできる。

 アプリケーションのライフサイクル管理は、「ライフサイクル・マネージャー」によって行われる。ドメイン・パーティションの構成に変更があった場合、変更内容はライフサイクル・マネージャーによってOTDに伝搬されるため、OTD側の設定を手動で変更する必要はない。