HOME    BRMSブログ  No.8 CorticonをDockerで利用する方法とメリット

BRMS徹底活用ブログ

No.8 CorticonをDockerで利用する方法とメリット

2016.11.08 Progress Corticon

本エントリーは株式会社アシスト様が寄稿したエントリー(https://www.ashisuto.co.jp/product/category/brms/progress_corticon/column/detail/brmstech08.html)を転載したものとなります。

No.8 CorticonをDockerで利用する方法とメリット

Progress Corticon は実装での配備方式の柔軟さに優れていますが、さらに今回はCorticonサーバがDocker Hubで利用できるようになり、柔軟性がさらに高まり、ユーザはCorticonのルールサービスを簡単にDockerコンテナに配備できるようになりました。

Dockerとは

Dockerはアプリケーションとそれと依存関係のあるコンポーネントのすべてをソフトウェアコンテナの中に含めて配備を可能にするテクノロジーです。
コンテナを利用することでアプリケーションの作成、配備、実行が単純で簡単になります。
アプリケーションとすべての関連ライブラリおよび依存関係をひとつにパッケージすることで、開発者はどんなDockerホストでも環境に関係なく安心してアプリケーションを動作させることができます。

別の見方としてDockerは仮想マシンと捉えることができます。
しかしDockerは一般的な仮想マシンの様に仮想オペレーティングシステム全体を構成するのではなく、アプリケーションとその実行に必要なリソースだけを提供し、複数のアプリケーションは同じLinuxカーネルをシステムとして使用します。
Dockerは独立した資源の抽象化レイヤを提供し、複数のコンテナを単一のOSインスタンス上で動作させることが可能です。
これによって仮想マシンの起動時におけるオーバーヘッドを減らせるだけではなく、仮想マシン毎に必要だったメンテナンスにかかる手間も省くことができます。

DockerやLXC、libvirt、Zonesなどのコンテナツールは仮想マシンと同様に環境を分離し、資源を自由に配分できる利点を持っていますが、その構造上のアプローチの特徴により、さらにポータブルで効率的に資源を利用できます。

Vertual MachineとContainers

まず、コンテナはそれぞれのゲストOSを必要としません。 コンテナはアプリケーションをユーザスペースの中のひとつの分離したプロセスとして稼働させ、他のコンテナとOSカーネルを共有します。 このため起動、停止に要する時間は数秒ですみ、コンテナの仮想マシンと比較して顧客の要望に応えることができます。

Docker HubにあるCorticonとは

Corticon Serverは Java EE アプリケーションサーバとして実装することができ、そこに配備されたルールはRESTまたはSOAPサービスとして利用できます。
現在ではCorticon ServerのオフィシャルイメージがDocker Hubから利用可能になっています。 Corticon Serverの基本イメージはJDK、Tomcat 7とCorticon Serverの実装であるaxis.warで構成されています。
Corticon Docker Hubレジストリには、Corticonの最新バージョンとこれまでのリリースバージョンが登録されています。 利用したいバージョンやホットフィックスを選べるようにタグ付がされており、必要性に応じて最適なバージョンのCorticonを容易に構成することができます。
Docker Hubで選んだCorticon Serverのイメージを構成して稼働させるのは非常に簡単です。

Corticon Serverイメージのビルド手順

1.最初にDockerファイルを作成します。

2.Dockerファイルには最初にFROMステートメントでビルドに使用する基本イメージを指定します。
FROM corticon/docker ラインにDocker Hubで公開されている最新の corticon/dockerイメージを指定します。 別のバージョンを使用するには単純にFROMステートメントで選択したタグを変更するだけすみます。
例えば、 FROM corticon/docker:5.5.2と指定すれば、Docker Hub上のCorticonバージョン5.5.2の基本イメージをもとにして利用するイメージをビルドすることが可能です。

3.Corticonのライセンスファイルを追加します。
ライセンスファイルをDockerイメージの中のCORTICON WORKホルダにコピーします。
ADD CcLicense.jar /opt/corticon/work/

4.デシジョンサービスの.edsファイルと.cddファイルをCDDディレクトリへコピーします。

ADD Order.eds /opt/corticon/work/cdd/
ADD DecisionService.cdd /opt/corticon/work/cdd/

5.Dockerイメージをビルドする
Dockerイメージをビルドするためにdocker buildコマンドを実行します。

$ docker build -t corticon

ローカルリポジトリにCorticonイメージがビルドされたら、そのイメージをdocker runコマンドを使用して配備します。

$ docker run -p 8080:8080 corticon

Docker Hubを利用してCorticon Serverイメージをビルドするのに必要な作業は以上です。
さらに細かな設定の方法やその他の情報については、 Corticon Docker Hub account を参考にしてください。

DockerによるCorticon利用のメリット

Docker Hubから作成したCorticon Serverイメージを使用することでCorticon環境のセットアップを非常に簡単に行うことができる上に、latestタグのついたイメージを使用すれば、最新のホットフィックスが適用されたCorticonを稼働させることができます。

バージョンアップ前のテストや検証のためにCorticon Serverの異なるバージョンを用意する必要がある場合でも、Docker Hubに用意されているそれぞれのバージョンのcorticon/dockerイメージを使用してビルドを行えば簡単に構築することが可能です。
DockerでのCorticonイメージの起動ではOSをブートする必要がなく、単にコンテナを作成するだけですみ、それには数秒しかかかりません。

Dockerを上手く利用してバージョン変更等、Corticon環境構築の手間を減らしてはいかがでしょうか。

著者紹介

山口さん

株式会社アシスト 情報基盤事業部 製品統括部プログレス推進部

アシスト入社以来、開発支援製品やシステム運用ツールなどの数多くの製品で技術支援サービスに従事。
現在は、Progress社のCorticonやDataDirectの技術サポートおよび製品検証を担当。