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

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

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

D63d1381105e614b0bae34ed9b01c18b?s=128

Daisuke Hiraoka

June 26, 2020
Tweet

Transcript

  1. を使ったJava EEアプリケーションのモダナイゼーション ~episode 0~ Daisuke Hiraoka, Kabanero Meetup @HiraokaDaisuke

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

    private company also IBM Champon for Cloud 2019, 2020
  3. 今日お話しする内容 今回は20分しか時間がないので、 “架空の医療会社Example Health”のユースケースを使って • KabaneroのAppsody Stackの紹介 • カスタマイズしたAppsody Stackを使ってJavaのサンプルアプリ

    ケーションをOpenShift 4.4にデプロイする方法の紹介 についてお話したいと思います。
  4. 2019年8月1日

  5. 2019年8月1日 IBMは自社のソフトウェア・ポートフォリオをよりクラウド・ネイティブ強化に刷新し、 「Red Hat OpenShift」上で動作するよう最適化した(かつ、していく)ことを発表 この新しいクラウド・ネイティブ製品群が「IBM Cloud Paks」

  6. 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
  7. 2019年9月

  8. 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 に参加
  9. それで、現在、Kabaneroをキャッチアップ中です。

  10. IBM DeveloperのCode Patterns https://developer.ibm.com/jp/patterns/ • IBM DeveloperのCode Patternsはさまざまなユースケースとソースコードが集まっていて、 技術を習得するのに便利なサイト •

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

    Kabaneroのシナリオではないがユースケースとソースコードは流用できると考えた • 個人的には機能を勉強するのは飽きちゃうけど、シナリオがあると長続きする傾向がある。
  12. 実は・・・このCode Patternを使った記事を書いています。 • この記事では、OpenShiftの標準的な機能を使って Java EEアプリケーションをDockerでコンテナ化しOpenShiftへ デプロイする手順を記述 • 最新のOpenShift4でも使える手順なので、お試しください。 https://www.atmarkit.co.jp/ait/articles/1911/15/news002.html

  13. 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アプリケーション
  14. Code Tools Runtime microservices Architecture Skill & Process People Example

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

    Framwork Liberty Tool/ Library Maven, Gradle, npm Node.js、Eclipse Microprofile、Quarkus、Spring Boot などのオープン・ソースの ランタイムとフレームワークに対応する事前構成されたパッケージ
  18. AppsodyHub list Developer workflow using appsody

  19. AppsodyHub init Janeʼs App Developer workflow using appsody

  20. AppsodyHub Jane’s App run test debug Developer workflow using appsody

  21. AppsodyHub run test debug Janeʼs App Docker ローカル開発用の runtime配布 Developer

    workflow using appsody
  22. AppsodyHub run test debug Janeʼs App build Developer workflow using

    appsody
  23. AppsodyHub run test debug build Janeʼs App Docker 本番環境用のコン テナイメージ生成

    Developer workflow using appsody
  24. AppsodyHub deploy Jane’s App Docker 本番環境用のコン テナイメージ Developer workflow using

    appsody
  25. AppsodyHub deploy Janeʼs App Docker 本番環境用のコン テナイメージ Developer workflow using

    appsody
  26. appsody stackの構造 appsody init example-health-stack コマンド で Appsodyプロジェクトを作成した時の構成 example-health-stackの構造 コンテナイメー

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

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

    java-openliberty stack JAKARTA EEは Java EEを補完したものなので Javaのコード変えずにruntimeをモダナイズして動くのではないか 進化
  29. 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
  30. 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
  31. 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を取得して実行するだけでインストールできるのでとても簡単
  32. KabaneroのOpenShift4へのインストール(2) install.shが終了するとOpenShiftのkabaneroプロジェクトに様々なOperatorが導入される。

  33. まとめ • Kabanero (Appsody)を使うことによって、簡単にローカル環 境での開発、OpenShiftへのデプロイができる • 元々、WebSphereを使ったJavaアプリのクラウドへの移行が スコープのプロジェクト。今、IBMが重視しているOSSの1つ なので開発は当分止まらないと思われる。Javaモダナイゼー ションを考えている方は評価する価値があると思います。

    • ExampleHealthのJavaモダナイゼーションの続きは、 Kabanero Meetupで披露したいと思います。
  34. 参考情報 • 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/
  35. Kabanero Meetup • 初めてのMeetupを3月27日に開催 • kabaneroに興味がある有志で集まって情報をシェア • https://connpass.com/event/170606/

  36. Thank you!