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

いまからでも遅くない!システム間連携入門(メッセージキュー編)

NoMu
July 27, 2023

 いまからでも遅くない!システム間連携入門(メッセージキュー編)

2023年7月26日に実施したconnpassで使用した資料になります
https://ibm-developer.connpass.com/event/289055/

NoMu

July 27, 2023
Tweet

More Decks by NoMu

Other Decks in Technology

Transcript

  1. 2 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation 自己紹介 村田 憲昭 北海道北斗市 スノーボード、登山、グルメ、猫 カスタマーサクセス DX人材育成/教育(IT全般) 社内SE(いわゆる「ひとり情シス」) 某コンビニのエンジニア 名前 生息地 趣味 経歴 [email protected] https://www.linkedin.com/in/noriaki-murata-nmz
  2. 3 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation 免責事項 本資料に含まれる情報は可能な限り正確を期しておりますが、 記載された内容に関して、日本アイ・ビー・エム株式会社が 何ら保証するものではありません。 従って、本資料の情報の利用は使用者の責任において 為されるものであり、資料の内容によって受けた 如何なる被害に関しても一切の補償をするものではありません。 アンケートのご協力宜しく御願いいたします。
  3. 4 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation メッセージキューの基本的な 概念がわかる 本Dojoのゴール
  4. 5 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation 本日のアジェンダ 1 .システム間連携とは 2 .MQとは 3 .デモ 4 .まとめ
  5. 6 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation システム間連携とは 異なるシステム間でデータを相互に共有・処理 できるようにする仕組み システムA システムB システム間 連携!
  6. 7 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation システム間連携とは システム間連携がない世界 システムA システムB それぞれが独立したシステムになっていた・・
  7. 8 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation システム間連携とは システム間連携がある世界 システムA システムB お互いに持っているデータや機能を共有
  8. 9 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation システム間連携とは 主なシステム間連携の種類 連携の種類 概要 ファイル連携 「ファイル」を介して別々のアプリケーション間のデータのや りとりをする方式 API連携 (主にWebAPI) ソフトウェアの一部機能を、他のソフトウェアから利用できる ようにして解放して、データのやりとりをする方式 (API=Application Program Interface) WebAPIは、APIをHTTP(HyperText Transfer Protocol)通信で利用 する方式 メッセージキュー 「キュー」と呼ばれるデータ領域を介して別々のアプリケー ション間でデータのやりとりをする方式
  9. 10 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation システム間連携とは システム間連携(ファイル連携) システム A システム B (FTP等) ファイル (FTP等) ※FTP=File Transfar Protocol。ネットワーク上でファイル等を転送する通信規約のこと
  10. 11 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation システム間連携とは システム間連携(API連携) API 登録 参照 更新 システム A システム B (HTTP等) (HTTP等) リクエスト リクエスト レスポンス レスポンス
  11. 12 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation システム間連携とは システム間連携(メッセージキュー) B FIFO キュー(待ち行列) 1 2 3 4 5 システム A システム B ※FIFO= First-in First-out。最初にいれたものを最初に出すこと
  12. 13 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation システム間連携とは システム間連携(一般的なメリット/デメリット) メリット デメリット ファイル連携 ・大容量通信が可能 ・非同期処理が可能 ・ファイル生成するまで 連携はできない (ファイルの静止点) ・リアルタイムな連携は苦手 ・同期処理は苦手 API連携 ・リアルタイム連携が可能 ・同期処理が可能 ・大容量通信は苦手 ・非同期処理は苦手 メッセージキュー ・意図した順番を維持して 処理してもらえる ・非同期処理が可能 ・大容量通信は苦手 ・リアルタイムな連携は苦手 ・同期処理は苦手
  13. 14 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation 本日のアジェンダ 1 .システム間連携とは 2 .MQとは 3 .デモ 4 .まとめ
  14. 15 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation MQとは B 1 2 3 4 5 システム A システム B たくさんの言語、プラットフォーム(特にメインフレーム)をサポート https://ibm.github.io/japan-technology/Code-Articles/mq-fundamentals/ チャンネル キュー メッセージ キューマネージャー
  15. 16 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation システム間連携とは システム間連携(一般的なメリット/デメリット+MQ) メリット デメリット ファイル連携 ・大容量通信可能 ・非同期処理が可能 ・ファイル生成するまで 連携はできない (ファイルの静止点) ・リアルタイムな連携は苦手 ・同期処理は苦手 API連携 ・リアルタイム連携が可能 ・同期処理が可能 ・大容量通信は苦手 ・非同期処理は苦手 メッセージキュー ・意図した順番を維持して 処理してもらえる ・非同期処理が可能 ・大容量通信は苦手 ・リアルタイムな連携は苦手 ・同期処理は苦手 MQ ・大容量通信可能 ・リアルタイム連携可能 ・意図した順番を維持して処理 苦手はない
  16. 課題・背景 • クラウドやデバイスの普及によりシステム負荷が増大 • UXの追求でより短い待ち時間が必要になる • 無停止運用(24/365)の導入 • 運用負荷の観点でサーバーの水平拡張が限界に 解決策

    • IBM MQを活用した非同期連携基盤を導入 • フロントと基幹システムの間を非同期化することで 基幹システム停止中もフロントのシステムを 稼働できるように実現 効果 • 大幅なサーバー増強無しに負荷の増大に対応 • アプリケーションのUX向上 • 基幹システムの停止が可能になり運用負荷の大幅な低 減 フロント・システム 基幹システム MQによりフロントと 基幹の連携を非同期化 クラウド上の アプリケーション MQ システム間連携とは? 従来のシステム構成 フロント・システム 基幹システム ・週1回の定期保守時にシステムを 停止している ・安定稼働しているのであまり変更 したくない 非同期連携を活用したシステム
  17. 18 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation 本日のアジェンダ 1 .システム間連携とは 2 .MQとは 3 .デモ 4 .まとめ
  18. 19 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation FIFO MQサーバー システム A システム B システム構成図 コンテナ 9443 ポート 9443 ポート Hello MQ!! デモ
  19. 20 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation デモ Qiitaにて手順公開中(CPUがIntel、s390x限定) https://qiita.com/nmzstation45/items/704f09aead1db3373cef
  20. 21 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation デモ ※CPUがM1、M2チップ版はこちら ⇒コンテナイメージ作成から実施する必要があります https://github.com/ibm-messaging/mq-container/blob/master/docs/building.md
  21. 22 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation デモ ・podmanコンテナを起動 ・MQ Webコンソールの確認 ・REST APIでメッセージ送信 ・MQ Webコンソールでメッセージを確認(受信確認) ・REST APIでメッセージ受信 ・MQ Webコンソールでメッセージを確認(削除) デモ手順
  22. 23 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation 本日のアジェンダ 1 .システム間連携とは 2 .MQとは 3 .デモ 4 .まとめ
  23. 24 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation メッセージキューの基本的な 概念がわかる まとめ
  24. 25 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation まとめ 以下QRコードから質問や要望などあれば。 またアンケートのご協力よろしくお願いいたします!
  25. 26 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation まとめ 1 .システム間連携とは 2 .MQとは 3 .デモ 4 .まとめ こんなサイトも参考に・・・ ▼MQ公式ドキュメント https://www.ibm.com/docs/ja/ibm-mq/9.3 ▼MQの基礎(MQ認定バッジも取得可能) https://ibm.github.io/japan-technology/Code-Articles/mq-fundamentals/
  26. 27 Customer Success, IBM Technology, Japan / © 2023 IBM

    Corporation いろいろTry&Errorしながら 試してみてください。 ありがとうございました