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

Cloud Nativeの世界でもJava EEを使える! OSSの実行環境 Open Lib...

Cloud Nativeの世界でもJava EEを使える! OSSの実行環境 Open Liberty

2022年6月28日に開催されたLiberty Dojo第一回の発表資料になります。
セミナーの詳細については,以下のURLを参照ください。
https://ibm-developer.connpass.com/event/250329/

Takakiyo Tanaka

June 28, 2022
Tweet

More Decks by Takakiyo Tanaka

Other Decks in Technology

Transcript

  1. @2022 IBM Corporation IBM Automation Software https://openliberty.io Liberty Dojo 第⼀回

    Cloud Nativeの世界でも Java EEを使える︕ OSSの実⾏環境 Open Liberty
  2. @2022 IBM Corporation IBM Automation Software Liberty Dojo 1 開催⽇・時間

    タイトル 担当 6/28(⽕) 17-18時 Cloud Nativeの世界でもJava EEを使える︕ OSSの実⾏環境 Open Liberty ⽥中 孝清 7/12(⽕) 17-18時 Libertyの基本的な構成⽅法 ⽥中 孝清 7/20(⽔) 13-14時 tWASからLibertyへのモダナイズ カスタマー サクセスマネージャ有志 8/2(⽕) 17-18時 MicroProfileを触ろう ⾺場 剛 申込はIBM Tech / Developer Dojoへ https://ibm-developer.connpass.com/
  3. @2022 IBM Corporation IBM Automation Software ⾃⼰紹介 n ⽥中 孝清

    n ⽇本アイ・ビー・エム株式会社 オートメーションソフトウェア テクニカルセールス n WebSphere Application Serverなどの テクニカルセールスを20年以上担当 n Twitter @TTakakiyo 2
  4. @2022 IBM Corporation IBM Automation Software Cloud Nativeの世界 n ITシステムのアジリティを向上

    させるために多くの新技術が登場 – コンテナ・Kubernetes – マイクロサービス・アーキテクチャー – Serverless, Functions – イベントストリーム etc. 3 Azureアーキテクチャーセンター「クラウドネイティブ アプリケーションを構築する」より https://docs.microsoft.com/ja-jp/azure/architecture/solution-ideas/articles/cloud-native-apps n 今まで慣れ親しんできたJava EEから 脱却しなければいけないの︖ → Cloud Nativeの世界でも Java EEを活⽤することはできます
  5. @2022 IBM Corporation IBM Automation Software Java EE / Jakarta

    EE が Cloud Native に向かない(と思われている)理由 n アプリケーションサーバーのサイズが⼤きい・起動時間が遅い n 仕様が古くて,マイクロサービス・アーキテクチャーなどに対応しにくい n DevOps / Platform as Codeがやりにくい n コンテナへの対応が⼤変 4 Open Libertyは,これらの課題を解決できます
  6. @2022 IBM Corporation IBM Automation Software Open Liberty とは n

    IBMはWebSphereを,完全に作り直しました –従来から提供されているWebSphere︓WebSphere Traditionalランタイム –2012年から登場した新WebSphere︓ WebSphere Libertyランタイム n WebSphere Libertyを2017年にOSS化して,Open Libertyに –EPL(Eclipse Public License)で公開・誰でも無料で利⽤できる・ビジネスで使いやすい n Jakarta EE 9.1仕様ではReference Implementation(参照実装) https://www.openliberty.io/blog/2017/09/19/open-sourcing-liberty.html
  7. @2022 IBM Corporation IBM Automation Software Open Liberty と WebSphere

    Liberty の関係 n 新しい機能はOpen Libertyで開発され,それを取り込んでWebSphere Libertyとして製品化 n バージョンは完全に同期 – 4週間ごと,年に12回,新しいバージョンが出る(2022年は22.0.0.1〜22.0.0.12) – Open Liberty version 22.0.0.4で追加された新機能は, WebSphere Liberty version 22.0.0.4でも,すぐに利⽤可能 n 主な違いは提供されているFeature(モジュール)の差 – 古いAPIを提供するFeature,zOSと連携する機能,安定化された統合管理機能などは製品版のみで提供 – Java EE / Jakarta EEやMicroProfileなどの標準仕様は,すべてOpen Libertyでも提供 n アプリケーションや構成ファイルなどは,両者で全く同じものを使⽤できる 6 製品化
  8. @2022 IBM Corporation IBM Automation Software Java EE / Jakarta

    EE が Cloud Native に向かない(と思われている)理由 n アプリケーションサーバーのサイズが⼤きい・起動時間が遅い n 仕様が古くて,マイクロサービス・アーキテクチャーなどに対応しにくい n DevOps / Platform as Codeがやりにくい n コンテナへの対応が⼤変 7 Open Libertyは,これらの課題を解決できます
  9. @2022 IBM Corporation IBM Automation Software Java EE / Jakarta

    EE は ⼤きな仕様群 n アプリケーションサーバーが 対応しないといけない仕様が多い n これら全てに対応した実⾏環境は, 「重く」なりがち 8 https://jakarta.ee/specifications/platform/9.1/jakarta-platform-spec-9.1.html
  10. @2022 IBM Corporation IBM Automation Software 完全にモジュール化されている Liberty n サーバー構成ファイル(server.xml)で使⽤する機能だけを有効化

    –メモリ使⽤量の最⼩化・起動時間の短縮 n 使⽤する機能だけを選んで 本番環境にコピーしたり, コンテナに⼊れたりすることも可能 –導⼊イメージも最⼩化 n カーネル機能だけの導⼊ZIP 約11.6Mバイト n 右図のFeatureだけいれたLibertyの 展開後のサイズ 約56Mバイト 9 <featureManager> <feature>jsp-2.3</feature> <feature>jdbc-4.1</feature> <feature>jaxrs-2.0</feature> <feature>sessionDatabase-1.0</feature> <feature>ssl-1.0</feature> </featureManager> 構成ファイル server.xml Servlet JSP JDBC SSL JAX-RS sessionDatabase 依存関係も ⾃動的に解決 JSON
  11. @2022 IBM Corporation IBM Automation Software Java EE / Jakarta

    EE が Cloud Native に向かない(と思われている)理由 n アプリケーションサーバーのサイズが⼤きい・起動時間が遅い n 仕様が古くて,マイクロサービス・アーキテクチャーなどに対応しにくい n DevOps / Platform as Codeがやりにくい n コンテナへの対応が⼤変 10 Open Libertyは,これらの課題を解決できます
  12. @2022 IBM Corporation IBM Automation Software MicroProfile n Javaでマイクロサービスを 実装するための標準仕様群

    n 世の中では,Java EEと 排他的な選択肢と思われている 例) – MicroProfileで⼗分なアプリ → MicroProfileを使う – Java EEが必要なアプリ → Java EEを使う n 実際には, Java EEで使っても 有⽤な機能が多い 11 https://microprofile.io/
  13. @2022 IBM Corporation IBM Automation Software MicroProfile n Javaでマイクロサービスを 実装するための標準仕様群

    n 世の中では,Java EEと 排他的な選択肢と思われている 例) – MicroProfileで⼗分なアプリ → MicroProfileを使う – Java EEが必要なアプリ → Java EEを使う n 実際には, Java EEで使っても 有⽤な機能が多い 12 https://microprofile.io/
  14. @2022 IBM Corporation IBM Automation Software Javaアプリケーションから「構成情報」を取得する⽅法は,さまざま 13 ResourceBundle rb

    = ResourceBundle.getBundle("myProps"); String s = rb.getString("hoge"); Properties props = new Properties(); props.load(new FileInputStream(”/config/myProp.properties")); String s = props.getProperty("hoge"); String s = System.getProperty("hoge"); String s = System.getenv("hoge"); リソース・バンドルで取得 プロパティファイルから取得 システム・プロパティから取得 環境変数から取得
  15. @2022 IBM Corporation IBM Automation Software MicroProfile︓Config APIなら 14 ResourceBundle

    rb = ResourceBundle.getBundle("myProps"); String s = rb.getString("hoge"); Properties props = new Properties(); props.load(new FileInputStream("/config/myProp.properties")); String s = props.getProperty("hoge"); String s = System.getProperty("hoge"); String s = System.getenv("hoge"); @Inject @ConfigProperty(name = "hoge") private String s; Config Sourceさえ切り替えれば 同じ書き⽅であらゆる場所から構成情報を取得できる
  16. @2022 IBM Corporation IBM Automation Software Libertyならば,いますぐJava EEとMicroProfileを使⽤できる n Config

    APIは,Jakarta EE 11に含まれる予定 –けれど,Jakarta EE 9以降に移⾏するには,パッケージの変換(javax→jakarta)などが・・・ n Libertyであれば,Java EE 7/8とMicroProfileを,いますぐ組み合わせて使える –構成ファイルで両⽅のAPIの機能を提供するFeatureを有効にするだけ 15 <featureManager> <feature>servlet-4.0</feature> <feature>cdi-2.0</feature> <feature>mpConfig-2.0</feature> </featureManager> Servlet CDI Config
  17. @2022 IBM Corporation IBM Automation Software Java EEアプリからMicroProfileのAPIを使⽤する例 16 例)

    Servletの中からConfig APIを使⽤ @ApplicationScoped @WebServlet("/config") public class ConfitTestServlet extends HttpServlet { @Inject @ConfigProperty(name = "PWD") private String pwd; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain; charset=utf-8"); response.getWriter().append("Currend working directory: ").append(pwd); }
  18. @2022 IBM Corporation IBM Automation Software Liberty の Jakarta EE

    9.1 / MicroProfile 5.0 / Java 17,18 対応 n 2021年10⽉︓Java SE 17対応 n 2021年12⽉︓Jakarta EE 9.1対応 (業界最速,参照実装) n 2022年1⽉︓MicroProfile 5.0対応 n 2022年4⽉︓Java SE 18対応 17 さまざまな新仕様に 業界最速で対応
  19. @2022 IBM Corporation IBM Automation Software ところで・・・ 「Open LibertyはJakarta EE

    9.1の参照実装なんだよね︖」 「Jakarta EE 9.1に含まれてるのはServlet 5.0ですよね」 「どのバージョンまでがServlet 4.0で,どのバージョンから5.0なの︖」 18 <featureManager> <feature>servlet-4.0</feature> <feature>cdi-2.0</feature> <feature>mpConfig-2.0</feature> </featureManager> Servlet 4.0は, Java EE 8 / Jakarta EE 8のAPI
  20. @2022 IBM Corporation IBM Automation Software ゼロマイグレーション・ポリシー n 最新版のOpen Libertyは

    Java EE 7のServlet 3.1も Java EE 8のServlet 4.0も Jakarta EE 9のServlet 5.0も 全部対応しています n Libertyでは,基本的に ⼀度提供されたFeatureは 削除されません n 構成ファイルを書き換えれば, (Upper Compatibilityでなく) 昔のAPIがそのものが動きます 19 % ./productInfo version 製品名: Open Liberty 製品バージョン: 22.0.0.3 製品エディション: Open % ./productInfo featureInfo acmeCA-2.0 adminCenter-1.0 appClientSupport-1.0 (中略) servlet-3.1 servlet-4.0 servlet-5.0 (後略)
  21. @2022 IBM Corporation IBM Automation Software Liberty では,新機能への対応は Feature の「置き換え」ではなく「追加」

    20 Version 8.x Servlet-3.1 Version 9.x Servlet-4.0 Version 10.x Servlet-5.0 Version 8.5.5 Servlet-3.1 ⼀般的な アプリケーションサーバー Liberty Version 8.5.5.6 Version 21.0.0.1 Servlet-3.1 Servlet-4.0 Servlet-5.0 Servlet-3.1 Servlet-4.0
  22. @2022 IBM Corporation IBM Automation Software Liberty は,アプリに合わせたランタイムを⾃由に構成できる 21 <featureManager>

    <feature>jaxrs-2.1</feature> <feature>cdi-2.0</feature> <feature>mpConfig-2.0</feature> <feature>mpJwt-1.2</feature> </featureManager> <featureManager> <feature>servlet-3.1</feature> <feature>jsp-2.2</feature> <feature>jdbc-4.0</feature> </featureManager> <featureManager> <feature>jakartaee-9.1</feature> </featureManager> Java EE 7時代の アプリも MicroProfileを使った アプリも 新しいJakarta EE 9.1の アプリも実⾏できる
  23. @2022 IBM Corporation IBM Automation Software Java EE / Jakarta

    EE が Cloud Native に向かない(と思われている)理由 n アプリケーションサーバーのサイズが⼤きい・起動時間が遅い n 仕様が古くて,マイクロサービス・アーキテクチャーなどに対応しにくい n DevOps / Platform as Codeがやりにくい n コンテナへの対応が⼤変 23 Open Libertyは,これらの課題を解決できます
  24. @2022 IBM Corporation IBM Automation Software 従来型の Java EE アプリケーションサーバーの運⽤

    24 24 ⼿動で 構築 設計書 サーバー 時間経過 . 修正 修正 修正忘れがあると・・・ ⼀致すると限らない 書類ベースの運⽤ ⼿動で同期 パラメーター変更・アプリ更新・パッチ適⽤ etc.
  25. @2022 IBM Corporation IBM Automation Software 従来型の運⽤の問題点 25 n ⽂書と⼿作業によるシステム構築・変更管理

    n Excelによる設計書 n Wordによる⼿順書 n ⽇付のついたバックアップによる変更管理 • 書類とシステムの⼆重管理 • 書類とサーバー環境の設定が⼀致しない →実際の環境をみないと正確な構成がわからない • テスト環境と本番環境の設定が異なっていることも • 属⼈化された⼤量の暗黙知 • 担当者の異動・退職でシステムがブラックボック化 • 運⽤するベンダーの変更が不可能 • 履歴の参照性が悪い • 誰が,いつ,なぜ追加した設定なのかわからない
  26. @2022 IBM Corporation IBM Automation Software Platform as Code /

    Immutable Infrastructure 26 n サーバー環境をコード(構築スクリプト・テンプレート・レシピなど)として定義 n コードをバージョン・コントロールシステムで履歴管理 n 変更する場合は,コードを変更し,再ビルド・デプロイしてサーバー環境を作成 ビルド デプロイ コード 時間経過 . 修正 ビルド デプロイ 修正 ビルド デプロイ 修正 ビルド デプロイ 修正 ビルド デプロイ 機械的に⼀致が保証
  27. @2022 IBM Corporation IBM Automation Software 従来の Java EE アプリケーションサーバーは・・・

    27 n GUIによるインストーラーでの導⼊ 導⼊メディアのサイズも⼤きく,導⼊にかかる時間も⻑い n GUI画⾯や専⽤ツールによるサーバー構成の管理 n 外部ツールによる管理を想定しておらず, ⾃動化ツールとの連携が難しい ビルド デプロイ コード 修正 ビルド デプロイ 修正 ビルド デプロイ 毎回,サーバー環境を 最初から作成するのが 現実的ではなかった
  28. @2022 IBM Corporation IBM Automation Software Liberty は Platform as

    Code がやりやすい n アーカイブファイル(ZIP, JAR)を展開するだけの導⼊ – 導⼊メディアのサイズも数百Mバイト – 初期構成の作成もコマンド⼀⾏の実⾏で完了 n 構成は,ファイルを指定された場所に置くだけ – デフォルトから変えるものだけを記述するので簡潔に記述できる – 環境に依存しない,可搬性のあるので,あらゆる環境にコピー可能 – 環境変数や追加ファイルによる環境固有のカスタマイズも⽤意 n 既存環境を,まるごとアーカイブファイル(ZIP, JAR)にパッケージ可能 – 展開するだけで,ランタイム・構成・アプリケーション・リソースを導⼊可能 – 既存環境をコマンドでパッケージ化することができるほか, 統合開発環境Eclipseや,ビルドツールMaven/Gradleでもパッケージを作成することも可能 28
  29. @2022 IBM Corporation IBM Automation Software Liberty の導⼊はアーカイブファイルを展開するだけ n ZIPファイルをダウンロードし,展開するだけで導⼊は完了

    n 同梱されているFeatureの種類によって何種類かのアーカイブが提供 – カーネルのみ︓ 11M – Jakarta EE 9︓ 105M – Web Profile 9︓84M – MicroProfile 5︓48M – 全部⼊り︓ 279M n ⾜りないFeatureは あとから追加導⼊できる – featureUtilityを使⽤する 29
  30. @2022 IBM Corporation IBM Automation Software 簡潔で可搬性の⾼い Liberty の構成ファイル n

    全ての設定項⽬にデフォルト値が存在し,デフォルトから変更するもののみ記述 ­ デフォルト値はバージョンが上がっても変更されない(ゼロマイグレーション・ポリシー) n 絶対パスや固有IDなど,環境固有の情報を可能な限り排除 n 環境変数や内部変数を 構成ファイル内で 参照可能 n Libertyの構成はコピー可能 – 開発・テスト・本番環境で 共通のファイルを使⽤可能 – 災対環境の構築も容易 – 複数のプロジェクトで 共通の構成を利⽤することも 30 <server description="new server"> <featureManager> <feature>jsp-2.3</feature> <feature>jndi-1.0</feature> <feature>jdbc-4.1</feature> <feature>localConnector-1.0</feature> </featureManager> <httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint" /> <webApplication id="SupportTools" location="SupportTools.war" name="SupportTools" /> <applicationManager autoExpand="true" /> <include location="${shared.config.dir}/persistense.xml" optional="true" /> <library id="db2driver"> <fileset dir="${shared.resource.dir}/db2driver" includes="*.jar"></fileset> </library> <dataSource id="employDS" jndiName="jdbc/employDS"> <jdbcDriver libraryRef="db2driver" /> <properties.db2.jcc serverName="db2server.example.com" /> </dataSource> </server>
  31. @2022 IBM Corporation IBM Automation Software 詳しくは次回で 31 開催⽇・時間 タイトル

    担当 6/28(⽕) 17-18時 Cloud Nativeの世界でもJava EEを使える︕ OSSの実⾏環境 Open Liberty ⽥中 孝清 7/12(⽕) 17-18時 Libertyの基本的な構成⽅法 ⽥中 孝清 7/20(⽔) 13-14時 tWASからLibertyへのモダナイズ カスタマー サクセスマネージャ有志 8/2(⽕) 17-18時 MicroProfileを触ろう ⾺場 剛 申込はIBM Tech / Developer Dojoへ https://ibm-developer.connpass.com/
  32. @2022 IBM Corporation IBM Automation Software 既存の環境を丸ごとパッケージ可能 n Liberty実⾏環境+構成+アプリを単⼀のZIP/JARファイルにパッケージ可能 –

    展開するだけで,同じWAS Liberty環境が構築される – 最⼩限のFeatureだけを含めることで,展開後のランタイムのサイズも必要最⼩限に n ビルド環境で作成したパッケージをテスト環境・ステージング環境・本番環境などに – 全ての環境の同⼀性を機械的に保証 – 「アプリケーションの更新」と「WASの構成変更」「Fixpack適⽤」が同じフローに 32 変更・履歴管理 設定 ファイル アプリ ケーション 配布 テスト・本番環境 テスト・本番環境 Java SDK Liberty ランタイム サーバー構成 アプリ ①インストール ディスク ②サーバー構成 ③アプリ開発 テスト・本番環境 Java SDK Liberty ランタイム サーバー構成 アプリ ディスク ZIP/JARファイル ④パッケージ ⑤展開 サーバー構成で指定した機能だけがパッケージされるので ランタイムのサイズを最⼩限にたもつ効果もある
  33. @2022 IBM Corporation IBM Automation Software アプリだけでなく,ランタイムや構成も,コードとして開発可能 アプリ サーバー構成 導⼊可能

    イメージ ランタイム ビルド・ツール アプリ サーバー構成 導⼊可能 イメージ ランタイム 統合開発環境
  34. @2022 IBM Corporation IBM Automation Software Maven Liberty プラグイン ├──

    pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── jp │ │ │ └── test │ │ │ └── HelloServlet.java │ │ ├── liberty │ │ │ └── config │ │ │ ├── jvm.options │ │ │ └── server.xml │ │ └── webapp │ │ ├── WEB-INF │ │ │ └── web.xml │ │ └── index.html │ └── test │ └── java │ └── jp │ └── test │ ├── ApplicationTest.java │ └── it │ └── EndpointIT.java └── target ├── LibertySample.war ├── LibertySample.zip プロジェクト構成ファイル アプリケーションの Javaソースファイル アプリケーションの Webコンテンツ アプリケーションを実⾏する Libertyサーバーの構成ファイル アプリケーションWARファイル アプリ+Liberty+構成ファイルのZIP ビルド <plugin> <groupId>io.openliberty.tools</groupId> <artifactId>liberty-maven-plugin</artifactId> <version>3.2</version> <configuration> <serverName>guideServer</serverName> </configuration> </plugin> アプリケーションをビルドするだけでなく WAS Liberty環境をまるごと⽣成することができる (Liberty本体もMavenがリポジトリから取得) Javaのビルドツールのデファクトスタンダード「Maven」でLiberty環境をビルド
  35. @2022 IBM Corporation IBM Automation Software Java EE / Jakarta

    EE が Cloud Native に向かない(と思われている)理由 n アプリケーションサーバーのサイズが⼤きい・起動時間が遅い n 仕様が古くて,マイクロサービス・アーキテクチャーなどに対応しにくい n DevOps / Platform as Codeがやりにくい n コンテナへの対応が⼤変 35 Open Libertyは,これらの課題を解決できます
  36. @2022 IBM Corporation IBM Automation Software Liberty は,コンテナ環境での実⾏にも最適 n 軽量・⾼速なランタイム

    – コンテナ環境では,メモリやディスク・フットプリントの⼩ささや,起動時間の短さが, コストや運⽤の柔軟性に直結する n 公式コンテナイメージをレジストリ上で公開 – Docker HubやRed Hatレジストリで,最新のFixpackを適⽤したイメージを毎⽉公開 – イメージを作成したDockerfileもGitHub上で公開されているため, カスタマイズや独⾃イメージの作成も容易 n コンテナ環境に対応したライセンス – OpenShiftやKubernetes環境に,IBM License Serviceを導⼊することで, コンテナライセンスを利⽤可能 – IBM License Serviceの稼働確認が取れたパブリック・クラウドをEligible Public Cloudとして公開 BYOSL(ライセンス持ち込み)によるクラウド上での利⽤が可能 36
  37. @2022 IBM Corporation IBM Automation Software Liberty の利⽤⽅法を学習する n https://openliberty.io/guides/

    – JDK,Git,Mavenがあれば実⾏できる チュートリアルを多数提供 n英語での提供だが ブラウザの翻訳機能で きれいに⽇本語化される 37
  38. @2022 IBM Corporation IBM Automation Software 現在つかっている Java EE アプリが

    Liberty で動くか確認する n Migration Toolkit for Application Binaries – https://www.ibm.com/support/pages/migration-toolkit-application-binaries から無料で⼊⼿可能 n JDK上で稼働するJavaアプリケーション – EAR / WARファイルを調査して,アプリで使⽤しているAPIがLibertyで利⽤できるか,修正は必要かなどを調査 – 結果をHTMLで出⼒,ブラウザで開いて結果を確認 n コマンドラインから以下のように実⾏ $ java -jar binaryAppScanner.jar <WAR/EAR> --sourceJava=[oracle5|oracle6|oracle7|oracle8|ibm7|ibm8] --sourceAppServer=[weblogic|jboss|tomcat|was90|was85|was80|was70] --targetJava=[ibm8|java11|java17] --targetAppServer=liberty 38
  39. @2022 IBM Corporation IBM Automation Software まとめ n Open Libertyは,無料で利⽤できるエンタープライスJavaの実⾏環境

    n ⾼速・軽量で,モダンな開発・運⽤スタイルにも対応 クラウド・ネイティブの世界でもJava EEを活⽤できる n 最新のJakarta EE仕様やMicroProfile仕様にも,いちはやく対応 n ⼀⽅で,バージョンアップしても昔のAPIが使⽤できるため, 作ったアプリケーションを,より⻑く活⽤することができる n Platform as Codeやコンテナ環境にも最適で, いままでの資産を引き継ぎつつ,エンタープライズJava環境のモダナイズが可能 39
  40. @2022 IBM Corporation IBM Automation Software Liberty Dojo 40 開催⽇・時間

    タイトル 担当 6/28(⽕) 17-18時 Cloud Nativeの世界でもJava EEを使える︕ OSSの実⾏環境 Open Liberty ⽥中 孝清 7/12(⽕) 17-18時 Libertyの基本的な構成⽅法 ⽥中 孝清 7/20(⽔) 13-14時 tWASからLibertyへのモダナイズ カスタマー サクセスマネージャ有志 8/2(⽕) 17-18時 MicroProfileを触ろう ⾺場 剛 申込はIBM Tech / Developer Dojoへ https://ibm-developer.connpass.com/