Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Daisuke Hiraoka Twitter / LinkedIn: @HiraokaDaisuke Infracture Engineer @ my private company also IBM Champon for Cloud 2019, 2020

Slide 3

Slide 3 text

今日お話しする内容 今回は20分しか時間がないので、 “架空の医療会社Example Health”のユースケースを使って • KabaneroのAppsody Stackの紹介 • カスタマイズしたAppsody Stackを使ってJavaのサンプルアプリ ケーションをOpenShift 4.4にデプロイする方法の紹介 についてお話したいと思います。

Slide 4

Slide 4 text

2019年8月1日

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

2019年9月

Slide 8

Slide 8 text

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 に参加

Slide 9

Slide 9 text

それで、現在、Kabaneroをキャッチアップ中です。

Slide 10

Slide 10 text

IBM DeveloperのCode Patterns https://developer.ibm.com/jp/patterns/ • IBM DeveloperのCode Patternsはさまざまなユースケースとソースコードが集まっていて、 技術を習得するのに便利なサイト • 今回はCode Patterns 中から「 Java EEアプリ」のユースケースを使ってKabaneroを使った Java EEアプリのモダナイゼーションをやってみようと勉強しようと考えた。

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

実は・・・このCode Patternを使った記事を書いています。 • この記事では、OpenShiftの標準的な機能を使って Java EEアプリケーションをDockerでコンテナ化しOpenShiftへ デプロイする手順を記述 • 最新のOpenShift4でも使える手順なので、お試しください。 https://www.atmarkit.co.jp/ait/articles/1911/15/news002.html

Slide 13

Slide 13 text

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アプリケーション

Slide 14

Slide 14 text

Code Tools Runtime microservices Architecture Skill & Process People Example Healthのモダナイゼーション Platform containers 12factor.net Priority 検討をしなければいけないことがたくさん!

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

appsody stack Base Container Image Red Hat UBI Runtime / Framwork Liberty Tool/ Library Maven, Gradle, npm Node.js、Eclipse Microprofile、Quarkus、Spring Boot などのオープン・ソースの ランタイムとフレームワークに対応する事前構成されたパッケージ

Slide 18

Slide 18 text

AppsodyHub list Developer workflow using appsody

Slide 19

Slide 19 text

AppsodyHub init Janeʼs App Developer workflow using appsody

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

appsody stackの構造 appsody init example-health-stack コマンド で Appsodyプロジェクトを作成した時の構成 example-health-stackの構造 コンテナイメー ジの定義 テンプレート (ソースコード) の定義 Project Template ローカル開発用 のDockerfile 最終成果物 生成用の Dockerfile example- health-stack ローカル開発用の コンテナイメージ

Slide 27

Slide 27 text

appsody stackでDevOps デプロイ ビルド 確認 開発 コミット 確認 開発 コミット appsody stackの保守に専念 アプリケーション開発に専念 開発者はソースコードを書くこと、アーキテクトはappsody stackの保守と役割を明確に分ける概念なので 開発者はDockerfileを触る必要がなく開発でき、それぞれの専門分野に専念できる。 (Dockerfile,BaseImage,Middleware)

Slide 28

Slide 28 text

Example Healthのappsody stackの検討 Node.js Db2 患者 データ MySQL 患者 データ java-openliberty stack JAKARTA EEは Java EEを補完したものなので Javaのコード変えずにruntimeをモダナイズして動くのではないか 進化

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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を取得して実行するだけでインストールできるのでとても簡単

Slide 32

Slide 32 text

KabaneroのOpenShift4へのインストール(2) install.shが終了するとOpenShiftのkabaneroプロジェクトに様々なOperatorが導入される。

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

参考情報 • 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/

Slide 35

Slide 35 text

Kabanero Meetup • 初めてのMeetupを3月27日に開催 • kabaneroに興味がある有志で集まって情報をシェア • https://connpass.com/event/170606/

Slide 36

Slide 36 text

Thank you!