こんにちは。レッドハットでプリセールスを担当している梅野です。 本日から4日間連続で、ここ赤帽エンジニアブログをジャックして、Red Hat Decision Manager でよく聞かれる話シリーズをお届けします。
アプリケーション・モダナイゼーションの要とも言えるコンポーネントとして注目を集めている、ルールエンジン製品、Red Hat Decision Manager。 今回から数回に分けてお届けするのは、営業活動でよく聞かれるご質問に対して回答する形でブログを書いてみました。
必要なハードウェアのスペックは?
ルールエンジンの稼働はJavaVM上となります。サポートされているJava VMであれば、対象とするハードウェアチップに依存性はありません。つまり、IBM JDKをご利用の場合はIBM JDKがサポートしている、z/OSやAIX, IBM iシリーズでの稼働も可能です。 RHDMにてサポートされるJava VMは下記のサイトに記載があります。 https://access.redhat.com/articles/3354301
ルールエンジンが使用するCPU負荷やメモリ使用量は、書かれたルールの数や複雑度、一度に投入するデータ量やデータ項目量、ルールでマッチングした時の候補数等に依存します。RETEアルゴリズムベースのエンジンであり、オブジェクトとオブジェクトの組み合わせをルールに基づき作成し、オブジェクトに対して操作を行い、場合によっては再評価を行い繰り返し処理を行うというような動作をするために、事前に計算することがかなり困難です。 プロトタイプを作成し、ある程度のボリュームでデータを流し、Turn Around Time やメモリ消費量を確認した上でハードウェアスペックを決定することを強くお勧めしています。
ディスク容量は、格納するルール、残しておきたいLogファイルとその期間、稼働させるアプリケーション・サーバー等によって異なりますが、おおよそ5GB以上あればよいでしょう。
ルールを呼び出す方法は通常、RESTかEJB/Pojoになりますので、ネットワーク環境としては通常のアプリケーションに準じた帯域や優先度となります。 GPUでの稼働は想定されていないため、GPUユニットなどは必要ありません。
必要なソフトウェアは?
Red Hat Decision ManagerはサポートされているJavaVMがあれば稼働します。 2020年5月時点では OpenJDK Version 8 もしくは 11 OracleJDK Version 8 IBMJDK Version 8.0.5.11 となっていますが、対象の製品のテストが終了次第、随時追加されていきます。詳細は下記サイトにて必ずご確認ください。 https://access.redhat.com/articles/3354301
ルールを作成するツールとして、EclipseベースのRed Hat CodeReady Studio (旧名 Red Hat JBoss Developper Studio)、製品に添付でWebブラウザを利用したBusiness Centralが提供されています。サポートされるアプリケーションサーバ、ブラウザは下記サイトにて確認できます。 https://access.redhat.com/articles/3354301
意思決定表はマイクロソフト社のExcelに準拠した.xlsファイル、もしくは.xlsxファイルであり、所定の記述方式に則った記載になっていれば、ルールエンジンに直接取り込むことが可能です。Microsoft Excelの他、Google Sheets等もご利用になれます。意思決定表はBusiness Centralにて記述することも可能です。
作成したルールやソースコードの管理として、Github等のリポジトリ(バージョン管理ツール)の利用をお勧めします。 ルールを含むアプリケーションのビルド環境として、maven等のリポジトリの利用をお勧めします。Internetに接続できる環境であれば、pomファイルに記述しておくことで常に最新のリポジトリを参照してビルドすることが可能です。Internetに接続できない環境の場合、製品としてはmaven リポジトリを各マイナーバージョン毎に用意していますので、ダウンロードしてmavenのローカルリポジトリに登録してお使いください。
アプリケーションサーバ上で稼働させる場合は、JavaEEに対応するアプリケーションサーバが別途必要になりますが、ルールエンジンを稼働させる場合、Red Hat Decision ManagerはRed Hat JBoss Enterprise Application ServerのSubscriptionを含みますので、この用途に限った場合は別途必要はありません。
Red Hat Decision Manager はデータベースを必要としていません。
サポートしているOSは?
Red Hat Decision Managerのサポート対象はJava VMです。データベースやOSはサポート対象ではありません。OSはJavaVMがサポートしているOSをお使いください。サポートしているJava VMはこちらのサイトに記載されています。 https://access.redhat.com/articles/3354301
上記ページ内に「Tested Configuration」「Tested Integrations」というのがありますが、これは「この組み合わせでテストしました」というだけで、この構成でしかサポートしないという意味ではありません。
コンテナ対応は?
Red Hat Decision ManagerのExecution Server(KieServer)はコンテナにも対応しており、Kubernates等のコンテナ管理ツールを利用して、Podのスケールアップ・スケールダウンやコンテナの起動停止が可能になっています。OpenShift Container Platform上のコンテナイメージを作成するためのyamlテンプレートを配布しています。必要な項目名(アプリケーションの名前、表示名、URL等)を決定し、ocコマンドを実行することでコンテナイメージが出来上がり、Pod上でコンテナとして稼働させることが可能です。
アプリケーション内部に抱え込むような実装方式、つまりExecution Server(KieServer)を使用しない場合は、アプリケーションのコンテナイメージとしてのBuild/Deployに準じます。
どのようなコンテナ環境においても、Red Hat Decision ManagerがサポートするのはJava VMとなります。ただし、Red Hat OpenShift Container Platform以外のコンテナ環境においては、同様の事象がベアメタル上のOSで動作するサポートしているJavaVM上でも再現可能であることが示された場合にのみサポート対象となります。Red Hat OpenShift Container Platformをご利用の場合は、コンテナイメージごとサポートすることが可能です。
Serverless対応は?
メモリ消費量の削減や起動時間の短縮化を目的としたServerless環境は、OpenJDK上で動作するQuarkusプラットフォームをベースとしたKogito(コジトと発音)環境を提供予定です。従来の構成では年1回しか動作しないルールもデプロイしておく必要がありましたが、Kogitoで実装された場合は、そのルールを含むアプリケーションはオンメモリとして常駐させず、必要なタイミングで起動し、終了したら自動的にメモリ領域を開放することもできます。 2020年5月現在、Kogitoは製品化を目指してコミュニティで醸成中です。 https://kogito.kie.org/
製品のバージョンアップ方法は?
Red Hat Decision Manager Version 6 から Version 7へバージョンアップする際には下記の点についての考慮が必要でした。
KieService関連のライブラリの入れ替え MavenにてBuildを行う場合はpomファイルを書き換えます。
ルールフロー Version 5までのルールフローを使用していた場合、Version 6から導入されたBPMN2.0形式のルールフローに書き換えます。
Business Central Webアプリケーション自体を入れ替えます。
下記の点については、特殊な例を除き基本的には考慮する必要がありませんでした。
DRLファイル、.xlsファイルに記載されたルール本体
KieSessionを作成するソースコード本体
ルールの格納リポジトリ
なお、将来のバージョンに関しては言及出来かねます。Subscriptionをご購入の上、カスタマーサポートにお問い合わせください。
その2 に続きます。
Chief Technologist 梅野