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

三菱UFJ銀行におけるAPIシステム開発の取り組み / Initiatives in API System Development at MUFG Bank

三菱UFJ銀行におけるAPIシステム開発の取り組み / Initiatives in API System Development at MUFG Bank

2022/11/16〜11/18に開催されたカンファレンス「OGIS Forum 2022」に登壇した際の資料です。
https://www.ogis-ri.co.jp/event/e106580.html

More Decks by 三菱UFJインフォメーションテクノロジー株式会社

Other Decks in Technology

Transcript

  1. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    三菱UFJ銀行における APIシステム開発の取り組み
  2. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    本講演の概要 ★API開発における取り組みのご紹介 →下記のようなものを現場担当の目線も交えて 2 具体的には 何をするAPI? どんな手法・ツール? 何が必要? API化の目的は? チャレンジだった箇所は? 体制は?
  3. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    1. 自己紹介 2. 金融機能をAPI化した背景・目的 3. 開発したシステムの設計・構成 4. 開発手法・ツール 5. チャレンジだったポイント 6. まとめ 7. 今後に向けて アジェンダ 3
  4. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    MUITってどんな会社? 三菱UFJ銀行、並びにMUFGグループ各社の IT・デジタル戦略を先導する、「金融×IT」のプロフェッショナル集団 三菱UFJインフォメーションテクノロジー(MUIT) 4
  5. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    自己紹介 5 梶本 岳彦(かじもと たけひこ) 2019年度入社 ・振込事務や口座振替を担うシステムの開発運用・調査(R&D) ・Kubernetesを活用したAPIシステムの開発運用
  6. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    かつてのサービスの提供構成 全体最適化・呼び出しの簡易化 API化の背景・目的① 1つのやりたい事に対して、 複数回の機能呼び出しが必要 やりたい事ベースでAPI機能提供 フロント部分は開発容易性が向上 やりたい事に合わせたAPIを提供 口座情報システム フロントアプリケーション お客さま 機能A 機能B 機能C 機能D (1)◦◦がしたい (6)◦◦です フロントアプリケーション お客さま (1)◦◦がしたい (3)◦◦です (2) (3) (4) (5) (2) 口座情報システム 機能A 機能B 機能C 機能D API 7
  7. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    かつてのサービス提供 サービス提供の迅速化 API化の背景・目的② 新しいニーズに合わせて専用IFを 開発しておりリードタイムが長かった フロントシステムの開発のみで ビジネス要件を実現可能化 開発したAPIによるサービス提供 営業店 バックエンドシステム ATM ATM-IF 営業店IF コア機能1 API 営業店 バックエンドシステム ATM ATM-IF 営業店IF お客さま コア機能2 API コア機能の組み合わせで、 様々なビジネスを実現可能に 案件3 IF 新しい機能要件毎に バックエンド側に専用IF追加 フロントシステムA ビジネスA フロントシステムA 案件2 IF 案件1 IF お客さま 8
  8. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    システム構成(一部抜粋) Fintech事業者 店頭用タブレット お客さま 個人端末 口座開設サービス REST API 口座振替サービス REST API 定額自動送金サービス 口座情報サービス 銀行データセンター 行内システム 群 Elastic Load Balancing Elastic Load Balancing BFF (Backend For Frontend) 定額自動送金 BFFサービス キャッシュカード BFFサービス aws Kubernetes docker docker docker docker spring spring Java EE Java EE オージス総研様に ご支援いただいた箇所 顧客情報サービス docker Java EE 顧客認証 BFFサービス REST API REST API REST API 10
  9. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    業務特性を考慮したアーキテクチャ選択 アプリケーションアーキテクチャについて 口座開設サービス 口座振替サービス 定額自動送金サービス 口座情報サービス BFF (Backend For Frontend) 定額自動送金 BFFサービス キャッシュカード BFFサービス Kubernetes docker docker docker docker spring spring Java EE Java EE 顧客情報サービス docker Java EE 顧客認証 BFFサービス 新しい機能をスピーディーに利用する必要があるため Spring Bootを採用 新機能の早期取り込みよりもEOLサイクルが 長い事が求められるためJava EEを採用 11
  10. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    アジャイル開発 開発手法・ツール サービスの特性・難易度に応じて スプリントの長さやサイクル数を調整 AWS環境 CI/CDパイプラインの構築 使用している開発環境・ツール 開発端末 Gitlab Jenkins コンテナ コンテナ Swagger 他チーム サービスA サービスB サービスC 時間 Kubernetes docker docker ・・・ Redmine 13
  11. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    APIシステム開発の体制 従前のシステム開発体制 担当領域・チーム体制の変更 チャレンジだったポイント 15 ◎三層型チーム構成から実質的な二層型への変更 アプリ開発チーム (アプリ開発のみに集中) アプリケーションサーバ ・DB提供チーム インフラチーム 仮想マシン、NW提供等 アプリ開発チーム コンテナ作成、 アプリケーションサーバ 設定等々 DB提供チーム インフラチーム Kubernetes提供等
  12. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    ・アプリケーションの開発 ・アプリケーションサーバの設計・設定←New ・コンテナのビルド、デプロイ←New ・DBの設定←New …etc Kubernetes環境のため、各チームの役割分担が従前と違った形に チャレンジだったポイント 16 API開発チーム構成・担当 作業量と担当部分の増加 アプリチーム コンテナ作成、 アプリケーションサーバ 設定等々 DB提供チーム インフラチーム Kubernetes提供等
  13. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    アプリチームの作業量は確かに増加 一方で、Kubernetesの活用により減少した作業もあり ⇒トータルでは生産性向上 チャレンジだったポイント 17 API開発チーム担当・構成と作業量 従来型チーム担当・構成と作業量 アプリ開発チーム (アプリ開発のみに集中) アプリケーションサーバ ・DB提供チーム インフラチーム 仮想マシン、NW提供等 アプリ開発チーム コンテナ作成、 アプリケーションサーバ 設定等々 DB提供チーム インフラチーム Kubernetes提供等 アプリチームの作業が効率化されたポイントの例を次ページから3つ紹介
  14. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    アプリケーションサーバ毎に設定する必要があった作業を、ServiceMeshにより一元設定・管理。 ◎ServiceMesh(Istio)の活用で作業量が減少 ①サーバ個別設定の作業ボリューム低減 18 事例:TLS証明書の設定 アプリケーションサーバA アプリケーションサーバB アプリケーションサーバC 証明書 連携先 サーバ コンテナ コンテナ Kubernetes docker docker Service Mesh コンテナ docker 連携先 サーバ 証明書 各アプリケーションサーバ に対して証明書の設定・更 新が必要。 複数コンテナに対して まとめて適用、管理
  15. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Kubernetesを利用する場合は、Kubernetesの機能をフル活用しなければ作業ボリュームは増加。 アプリ開発チームがKubernetsを使いこなす事で、アジリティ(開発俊敏性)の向上が可能。 !注意ポイント ①サーバ個別設定の作業ボリューム低減 19 ⇒いわゆる開発・運用の「手の内化」が必要。 Kubernetes docker Gitlab Jenkins Redmine Service Mesh コンテナ GitやCI/CDやKubernetesなどの機能を"アプリ開発チームが" うまく組み合わせて利用する事で自動化、作業効率化 JavaEE アプリケーションサーバ RDBMS docker コンテナ JavaEE アプリケーションサーバ Swagger ・・・ イメージ図:必要になる知識やノウハウ
  16. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    アプリ開発チームの担当部分は拡大し、作業負荷は増大。 一方で、アプリ開発チームによりマニフェストの更新が可能となったためスピード感を持った対応が可能に。 ◎やりたい事を瞬時に実行できる開発者体験(Developer Experience) ②環境への設定反映の迅速化 20 事例:アプリケーションサーバの設定変更 Kubernetes コンテナ docker コンテナ docker アプリケーションサーバ インフラ チーム アプリ開発 チーム (1)依頼 (2)作業 (3)確認 (1)修正・反映 アプリ開発 チーム 従前であれば、インフラチームに依頼して変更してもらう対応があった。しかしマニフェストの変更権限がアプリ開発 チームに移りコミュニケーションオーバーヘッドや反映までの期間が短縮。 マニフェスト (設定)
  17. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Kubernetesは、あるべき姿のゴール状態を設定ファイル(以下マニフェスト)に記載する。 同じマニフェストを見る事で、インフラチームが何をしたいかをアプリ開発チームが理解できるようになった。 ◎アプリ開発チームとインフラチームの設定ファイルが同一フォーマット化 ③コミュニケーションオーバーヘッドの削減 21 事例:インフラの設定内容をアプリ開発チームが自律的に把握 ログ転送間隔など、気になる点をアプリ開発チームからインフラチームに質問しなくとも把握が可能となり、 質問の回数削減や質問の質が向上しコミュニケーションオーバーヘッドが削減。 インフラ マニフェスト アプリ開発 チーム インフラ チーム アプリ開発 チーム インフラ チーム 会話のラリー数 マニフェストを参照した際の 会話のラリー数
  18. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    ① 汎用的なAPIの提供により、フロントシステム側だけで新しいビジネスへの対応を可能化。 ② アプリ開発チームにKubernetesの操作権限を一定範囲譲渡 1. アプリ開発チームの作業ボリュームの増加。Kubernetes等、新しいソフトウェアの利用のために初期学習コストを必要とした。 2. 一方で、KubernetesやServiceMeshの機能を有効活用する事により従前よりも削減された作業もあり。 3. アプリ開発チームの自由度が上がった事で、トータルとしてはオーバーヘッド削減、開発スピードアップ。 ◎変化し続けるビジネス環境に合わせて金融機能をAPI化 まとめ 変化に追従するためには、APIアプリ開発チームの自由度の向上や Kubernetes等を理解した上での「手の内化」が必要不可欠。 23
  19. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    ◼ MUITにはスキルを高める事ができる様々な開発案件、ロールがあります。 ◼ キャリア採用は随時募集中ですので、ご興味を持たれましたらお気軽にコンタクト下さい。 http://www.it.mufg.jp/recruiting/fresh/ 三菱UFJインフォメーションテクノロジーに興味を持った方へ UXデザイナー UIに関する知見をもと に、システムのユーザ ビリティを向上させ、 UIデザインも含めた高 品質のUXを提供 テクニカルリード 高度な技術力、創造 的・革新的な志向、 リーダーシップ等を活 かして、組織全体のIT をリード ビジネスデザイナー 多岐にわたる関係者の橋渡 しをし、複雑なビジネス要 求を実現可能なソリュー ションへと落とし込む ITスペシャリスト 専門技術領域に関する 広く深い知見と技術力 を活かし、難易度の高 い課題を解決 PMエキスパート PM関連知識等をもとに、 立上げ・計画・設計・ 実行・監視・終結等の 各プロセスをコント ロール アーキテクト 組織のビジネス戦略に 対する最適なシステ ム・サービス群を根本 から企画・提案・計画 etc. 技術力 25
  20. Copyright(C) 2022 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    ◼ 本プレゼンテーションにより、視聴者と三菱UFJインフォメーションテクノロジー株式会社の間には何ら委 任その他の契約関係が発生するものではなく、当社が一切法的な義務・責任を負うものではありません。 ◼ 本資料は信頼できると考えられる各種データに基づいて作成されていますが、当社はその正確性、完全 性を保証するものではありません。ここに示したすべての内容は、当社の現時点での判断を示しているに 過ぎません。 ◼ また、本資料に関連して生じた一切の損害については、当社は責任を負いません。その他専門的知識に係 る問題については、必ず貴社の弁護士、税理士、公認会計士等の専門家にご相談の上ご確認下さい。 26