JBoss EAP for OpenShift
Mamoru Shimizu / Consultant / Red Hat K.K.
自己紹介
● Name: Mamoru Shimizu (Twitter: @mamomamo)
● Company: Red Hat K.K.
● Role: Consultant
● 最近の仕事
○ OpenShift上のアプリケーション開発支援
○ OpenShiftの構築支援
○ OpenShiftハンズオンの講師 など
アジェンダ
● JBoss EAP for OpenShift の S2I(Source-to-Image) の紹介
● JBoss EAP for OpenShift 利用上の注意点
JBoss EAP for OpenShift とは
● Red Hat Container Catalog から取得可能であり、Red Hatのセキュリティチームによ
り品質保証のプロセスを受けた、OpenShift上で動かすためのJBoss EAPのコンテナ
イメージ
● 参考: Red Hat Container Catalog
○ https://access.redhat.com/containers/
S2I (Source-to-Image) とは
● ベースイメージに対して、ソースコードからコンパイルしたバイナリを挿入し、新しいコ
ンテナイメージを作成するフレームワーク
Deploy a JBoss EAP S2I Application to OpenShift
● JBoss EAP for OpenShiftのテンプレートと、Javaアプリケーションのソースコードか
ら、以下のコマンドによりアプリケーションを作成
● 上記のコマンドを実行することで、Pod・Service・DeploymentConfig・BuildConfigな
どが作成される
oc new-app --template=eap72-basic-s2i 
-p IMAGE_STREAM_NAMESPACE=eap-demo 
-p SOURCE_REPOSITORY_URL=https://github.com/jboss-developer/jboss-eap-quickstarts 
-p SOURCE_REPOSITORY_REF=openshift 
-p CONTEXT_DIR=kitchensink
How the JBoss EAP for OpenShift S2I Process Works
1. ソースリポジトリにpom.xmlが存在すれば、Mavenビルドプロセスが起動される
2. Mavenビルドプロセスが成功すると、EAP_HOME/standalone/deployments に、生
成されたパッケージ(JAR/WAR/EAR)がコピーされる
3. ソースリポジトリに configuration ディレクトリが存在すれば、
EAP_HOME/standalone/configuration にファイルがコピーされる
4. ソースリポジトリに modules ディレクトリが存在すれば、EAP_HOME/modules にファ
イルがコピーされる
EAP for OpenShiftのS2Iで他に実現できること
● Deployment Artifacts
○ デフォルトでは target ディレクトリからアーティファクトをコピーするが、 BuildConfigの
ARTIFACT_DIR 環境変数に設定されたディレクトリ配下からコピーするように変更できる
● Artifact Repository Mirrors
○ BuildConfigに MAVEN_MIRROR_URL 環境変数を設定することで、 Mavenリポジトリのミラーサイト
を指定できる
● Environment Variables
○ 上記の他にもHTTPプロキシの設定(HTTP_PROXY_HOSTなど)や、Mavanコマンドの引数
(MAVEN_ARGS_APPEND)を指定することができる
S2Iスクリプトの実体
● EAP for OpenShiftのコンテナイメージの /usr/local/s2i 配下に格納されたシェルスク
リプト
● run:
○ JBoss EAPの設定と起動
● assemble:
○ Mavenコマンドにより、ソースコードをビルドし、パッケージ( WAR)を生成
○ 生成されたパッケージを EAP_HOME/standalone/deployments ディレクトリ配下へ移動
S2Iスクリプトのカスタマイズ
● S2Iスクリプトはカスタマイズ可能
● ソースリポジトリの .s2i/bin ディレクトリ配下にカスタマイズしたS2Iスクリプトを格納す
ることで、S2Iビルドプロセスの実行時に既存のS2Iスクリプトを上書きすることができ
る
Comparison: JBoss EAP and JBoss EAP for OpenShift
Feature Status Description
Management Console Not included
Management CLI Not recommended コンテナが再起動すると設定が消えるから非推奨
Managed domain Not supported
Default root page Disabled
Remote messaging Supported ActiveMQ ArtemisはシングルPodのみsupported
Transaction Recovery Partially supported 次ページを参照
Unsupported Transaction Recovery Scenarios
● Podがスケールインした際に、実行途中のトランザクションが失敗し、手動でトランザ
クションのリカバリする必要がある
● Unsupported Transaction Recovery Scenarios
○ JTS transactions
○ XTS transactions
○ Transations propagated over JBoss Remoting
○ Transactions propagated over XATerminator
まとめ
● JBoss EAP for OpenShiftのS2Iは色々できる
● JBoss EAP ≠ JBoss EAP for OpenShift
● 単純なLift&Shiftはコンテナアプリケーションのアンチパターンを踏む可能性がある
ため、設計時に設計原則を確認しておこう
○ 「コンテナベース・アプリケーションの設計原則」
■ https://www.redhat.com/cms/managed-files/cl-cloud-native-container-design-whitepaper-f880
8kc-201710-a4-ja.pdf
参考情報
● Getting Started with JBoss EAP for OpenShift Container Platform
○ https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_app
lication_platform/7.2/html/getting_started_with_jboss_eap_for_openshift_con
tainer_platform/
THANK YOU

JBoss EAP for OpenShift

  • 1.
    JBoss EAP forOpenShift Mamoru Shimizu / Consultant / Red Hat K.K.
  • 2.
    自己紹介 ● Name: MamoruShimizu (Twitter: @mamomamo) ● Company: Red Hat K.K. ● Role: Consultant ● 最近の仕事 ○ OpenShift上のアプリケーション開発支援 ○ OpenShiftの構築支援 ○ OpenShiftハンズオンの講師 など
  • 3.
    アジェンダ ● JBoss EAPfor OpenShift の S2I(Source-to-Image) の紹介 ● JBoss EAP for OpenShift 利用上の注意点
  • 4.
    JBoss EAP forOpenShift とは ● Red Hat Container Catalog から取得可能であり、Red Hatのセキュリティチームによ り品質保証のプロセスを受けた、OpenShift上で動かすためのJBoss EAPのコンテナ イメージ ● 参考: Red Hat Container Catalog ○ https://access.redhat.com/containers/
  • 5.
    S2I (Source-to-Image) とは ●ベースイメージに対して、ソースコードからコンパイルしたバイナリを挿入し、新しいコ ンテナイメージを作成するフレームワーク
  • 6.
    Deploy a JBossEAP S2I Application to OpenShift ● JBoss EAP for OpenShiftのテンプレートと、Javaアプリケーションのソースコードか ら、以下のコマンドによりアプリケーションを作成 ● 上記のコマンドを実行することで、Pod・Service・DeploymentConfig・BuildConfigな どが作成される oc new-app --template=eap72-basic-s2i -p IMAGE_STREAM_NAMESPACE=eap-demo -p SOURCE_REPOSITORY_URL=https://github.com/jboss-developer/jboss-eap-quickstarts -p SOURCE_REPOSITORY_REF=openshift -p CONTEXT_DIR=kitchensink
  • 7.
    How the JBossEAP for OpenShift S2I Process Works 1. ソースリポジトリにpom.xmlが存在すれば、Mavenビルドプロセスが起動される 2. Mavenビルドプロセスが成功すると、EAP_HOME/standalone/deployments に、生 成されたパッケージ(JAR/WAR/EAR)がコピーされる 3. ソースリポジトリに configuration ディレクトリが存在すれば、 EAP_HOME/standalone/configuration にファイルがコピーされる 4. ソースリポジトリに modules ディレクトリが存在すれば、EAP_HOME/modules にファ イルがコピーされる
  • 8.
    EAP for OpenShiftのS2Iで他に実現できること ●Deployment Artifacts ○ デフォルトでは target ディレクトリからアーティファクトをコピーするが、 BuildConfigの ARTIFACT_DIR 環境変数に設定されたディレクトリ配下からコピーするように変更できる ● Artifact Repository Mirrors ○ BuildConfigに MAVEN_MIRROR_URL 環境変数を設定することで、 Mavenリポジトリのミラーサイト を指定できる ● Environment Variables ○ 上記の他にもHTTPプロキシの設定(HTTP_PROXY_HOSTなど)や、Mavanコマンドの引数 (MAVEN_ARGS_APPEND)を指定することができる
  • 9.
    S2Iスクリプトの実体 ● EAP forOpenShiftのコンテナイメージの /usr/local/s2i 配下に格納されたシェルスク リプト ● run: ○ JBoss EAPの設定と起動 ● assemble: ○ Mavenコマンドにより、ソースコードをビルドし、パッケージ( WAR)を生成 ○ 生成されたパッケージを EAP_HOME/standalone/deployments ディレクトリ配下へ移動
  • 10.
    S2Iスクリプトのカスタマイズ ● S2Iスクリプトはカスタマイズ可能 ● ソースリポジトリの.s2i/bin ディレクトリ配下にカスタマイズしたS2Iスクリプトを格納す ることで、S2Iビルドプロセスの実行時に既存のS2Iスクリプトを上書きすることができ る
  • 11.
    Comparison: JBoss EAPand JBoss EAP for OpenShift Feature Status Description Management Console Not included Management CLI Not recommended コンテナが再起動すると設定が消えるから非推奨 Managed domain Not supported Default root page Disabled Remote messaging Supported ActiveMQ ArtemisはシングルPodのみsupported Transaction Recovery Partially supported 次ページを参照
  • 12.
    Unsupported Transaction RecoveryScenarios ● Podがスケールインした際に、実行途中のトランザクションが失敗し、手動でトランザ クションのリカバリする必要がある ● Unsupported Transaction Recovery Scenarios ○ JTS transactions ○ XTS transactions ○ Transations propagated over JBoss Remoting ○ Transactions propagated over XATerminator
  • 13.
    まとめ ● JBoss EAPfor OpenShiftのS2Iは色々できる ● JBoss EAP ≠ JBoss EAP for OpenShift ● 単純なLift&Shiftはコンテナアプリケーションのアンチパターンを踏む可能性がある ため、設計時に設計原則を確認しておこう ○ 「コンテナベース・アプリケーションの設計原則」 ■ https://www.redhat.com/cms/managed-files/cl-cloud-native-container-design-whitepaper-f880 8kc-201710-a4-ja.pdf
  • 14.
    参考情報 ● Getting Startedwith JBoss EAP for OpenShift Container Platform ○ https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_app lication_platform/7.2/html/getting_started_with_jboss_eap_for_openshift_con tainer_platform/
  • 15.