Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kabaneroを使ったJava EEアプリケーションのモダナイゼーション

Kabaneroを使ったJava EEアプリケーションのモダナイゼーション

架空の医療会社Example Health”のユースケースを使って
KabaneroのAppsody Stackの紹介
カスタマイズしたAppsody Stackを使ってJavaのサンプルアプリケーションをOpenShift 4.4にデプロイする方法の紹介
についての内容です。

Daisuke Hiraoka

June 26, 2020
Tweet

More Decks by Daisuke Hiraoka

Other Decks in Technology

Transcript

  1. Daisuke Hiraoka Twitter / LinkedIn: @HiraokaDaisuke Infracture Engineer @ my

    private company also IBM Champon for Cloud 2019, 2020
  2. KabaneroとIBM Cloud Pak for Applications Red Hat OpenShift Container Platform

    IBM Cloud Pak for Applications WebSphere & IBM Runtimes Accelerator for Teams • Kabaneroは、マイクロサービスベースのフレームワークで、開発者、アーキテクト、およ び運用チームがより迅速に連携できるしくみ • Kabaneroは IBM Cloud Pak for ApplicationsにAccelerator for Teamsという名称で同梱さ れ主要な機能になっています。 • Kabanero がアップストリームプロジェクトで Kabanero → Cloud Pak for Applications(Accelerator for Teams)の順番でリリースされます。 • Kabaneroは歴史は浅いが勢いのあるプロジェクト Developer Tools & DevOps OpenSource Upstream Project Modenaization Toolkit OpenShift Container Platform
  3. IBM Application Modernization Technical Conference • このカンファレンスは2019年8月1日にIBM Cloud Paks発表後の初めてのテクニカルカンファレンス •

    IBM Cloud Paks for Applications開発関係者による アプリケーションのモダナイゼーションに関する セッション • 参加者はに関係するIBM社員、BP、ユーザー IBM Application Modernization Technical Conference 2019 • 2019年9月にIBMのApplication Modernization Technical Conference に参加
  4. IBM DeveloperのCode Patterns https://developer.ibm.com/jp/patterns/ • IBM DeveloperのCode Patternsはさまざまなユースケースとソースコードが集まっていて、 技術を習得するのに便利なサイト •

    今回はCode Patterns 中から「 Java EEアプリ」のユースケースを使ってKabaneroを使った Java EEアプリのモダナイゼーションをやってみようと勉強しようと考えた。
  5. OpenShift による Java EE アプリケーションのモダナイズ https://developer.ibm.com/jp/patterns/jee-app-modernization-with-openshift/ • Java EEアプリケーションをモダナイズしてDockerコンテナ化しOpenShiftで動かすシナリオ •

    Kabaneroのシナリオではないがユースケースとソースコードは流用できると考えた • 個人的には機能を勉強するのは飽きちゃうけど、シナリオがあると長続きする傾向がある。
  6. Example Healthのユースケース IBM Code Patterns の「 OpenShiftによるJava EE アプリケーションのモダナイズ」より https://developer.ibm.com/jp/patterns/jee-app-modernization-with-openshift/

    Example Healthアーキテクチャ • Example Healthは架空の医療会社 • この会社には歴史があり、数十万の患者記録がある • Example Healthのアプリケーションはモノリシックアプリケーション構造  メインフレーム上のDb2データベース  WebSphereで実行されるフルスタックのJavaアプリケーション
  7. Code Tools Runtime microservices Architecture Skill & Process People Example

    Healthのモダナイゼーション Platform containers 12factor.net Priority 検討をしなければいけないことがたくさん!
  8. appsody stack Base Container Image Red Hat UBI Runtime /

    Framwork Liberty Tool/ Library Maven, Gradle, npm Node.js、Eclipse Microprofile、Quarkus、Spring Boot などのオープン・ソースの ランタイムとフレームワークに対応する事前構成されたパッケージ
  9. appsody stackの構造 appsody init example-health-stack コマンド で Appsodyプロジェクトを作成した時の構成 example-health-stackの構造 コンテナイメー

    ジの定義 テンプレート (ソースコード) の定義 Project Template ローカル開発用 のDockerfile 最終成果物 生成用の Dockerfile example- health-stack ローカル開発用の コンテナイメージ
  10. appsody stackでDevOps デプロイ ビルド 確認 開発 コミット 確認 開発 コミット

    appsody stackの保守に専念 アプリケーション開発に専念 開発者はソースコードを書くこと、アーキテクトはappsody stackの保守と役割を明確に分ける概念なので 開発者はDockerfileを触る必要がなく開発でき、それぞれの専門分野に専念できる。 (Dockerfile,BaseImage,Middleware)
  11. Example Healthのappsody stackの検討 Node.js Db2 患者 データ MySQL 患者 データ

    java-openliberty stack JAKARTA EEは Java EEを補完したものなので Javaのコード変えずにruntimeをモダナイズして動くのではないか 進化
  12. java-openliberty stackのカスタマイズ 参考サイト: Customizing application stacks https://kabanero.io/guides/working-with-stacks/ テンプレート (ソースコード) を改修

    コンテナイメー ジの定義を改修 java-openliberty Stackをコピーして、Example Health用のカスタマイズ stackを作成する。 カスタマイズは時間の都合、別の機会でお話しします。 デモ動画があるので関心のある方はご覧ください。 https://www.youtube.com/watch?v=LOBmXYKSm3s
  13. AppsodyHub 3. repo add Customize Stack Demo Customize Stack 2.

    pull Customize Stack 1. push Customize Stack 4. init Janeʼs App Janeʼs App 5. run Jane’s App Docker ローカル開発用の runtime配布 6. deploy デモ動画:https://www.youtube.com/watch?v=8e377C3qJuw
  14. KabaneroのOpenShift4へのインストール(1) 1. Kabaneroのインストールシェルを取得 curl -s -O -L https://github.com/kabanero-io/kabanero-operator/releases/download/0.9.0/install.sh 2. cluster-admin権限のユーザでログイン

    oc login ‒u kubeadmin 3. install.shを実行してインストール開始(KAPPNAVの追加有無で yes or noを選択) ENABLE_KAPPNAV=yes|no ./install.sh Installing Kabanero Foundation https://kabanero.io/docs/ref/general/installation/installing-kabanero-foundation.html install.shを取得して実行するだけでインストールできるのでとても簡単
  15. 参考情報 • 7/9 初夏のIBM Dojo #9 Kabaneroを使ったクラウド・ネイティブなアプリ開発を体験 https://ibm-developer.connpass.com/event/178322/ • Kabanero

    公式ページをざっと翻訳してみた (2019年8月版) https://qiita.com/yamachan360/items/7b4a53758ecdbe876a5f • Kabaneroプロジェクトアップデート(2020年2月25日) https://qiita.com/osonoi/items/01f53e43baa4cd60c579 • Kabanero - Blogs: https://kabanero.io/blogs • Kabanero - Guides: https://kabanero.io/guides/ • Kabanero - Social Medias: https://twitter.com/KabaneroIO • Kabanero with IBM Developers: https://developer.ibm.com/open/projects/kabanero/