3月に開催したオンラインイベント「#お金のこと話してみよう みんなの銀行の日 」から、若手エンジニアによるトークセッション連載第2回目です。
※この記事はオウンドメディア『みんなの銀行 公式note』からの転載です。
登場する人物
■ みんなの銀行 システムデザイングループ 鶴田 拓郎
■ みんなの銀行 デジタルサービスマネジメントグループ 前川 貴映
■ ゼロバンク・デザインファクトリー Engineering Division(DevOps) 山口 郁未
みんなの銀行って何が違うの?――システム(マイクロサービス)
山口 稼働年数の長いシステムは様々な機能が複雑につながっていて、影響範囲が膨大になってきます。
前川 以前勤めていたグループ銀行では、新しい金融サービスを作ろうとする時、既にあるサービスに影響がないかなど調査したり、ちゃんと動くのかを確認するテストも膨大になったり、大変だった記憶があります。テストを繰り返し行っても、まだバグが潜んでいることもあるので、サービスをリリースした後もドキドキする毎日を過ごしていました。
鶴田 大変でしたね(笑)。みんなの銀行のシステムは、前川さんの大変なご経験を解決するような設計思想で作られています。
それを説明するにあたって、まず従来型の銀行のシステムがどういう風に作られているのかを簡単にご説明します。従来型の銀行のシステムは「モノリス」「モノリシックシステム」とか言われたりするんですが、 1 つのシステムの中に、プログラム(群)、テーブル(群)が全て含まれる作り方をしています。
鶴田 それに対して、みんなの銀行は「マイクロサービス」と呼ばれる手法を採用しています。マイクロサービスはモノリシックとちょっと違っていて、1つのシステムの中にプログラム(群)、テーブル(群)が含まれる「サービス」が複数存在します。
前川 なるほど。ただそれで影響範囲を限定的にしたり、保守が簡単になったりするのですか?
山口 例えばモノリシックのシステムの場合は、テーブルの中に口座情報等を持っていると、どのプログラムからも(例えばお客さまを特定するために)そのデータを参照しにいくことになります。つまり1つのテーブルを変更した場合、たくさんのプログラムに影響があります。
逆もしかりで1つのプログラムを変更した場合も、たくさんのテーブルに影響があります。つまり密接にプログラムとデータが関係し合うので、影響範囲が膨大になります。
鶴田 対してマイクロサービスの場合は、テーブルに対して特定のプログラムしか参照しにいかないような構造になっているので、プログラムとデータの関係が疎結合になります。つまり影響範囲が限定的になります。
前川 なるほど、納得しました!
山口 みんなの銀行はゼロベースでシステムを構築していますが、それは単純に新しいプログラム言語で書けるとかだけではなく、マイクロサービスのように新しく、より良い設計思想を適用した基盤を採用できるということにも通じます。
そういうこともチャレンジングで楽しいと思いますし、マイクロサービスは1つ1つのサービスが独立していることから最新の技術を取り入れやすい柔軟性の特徴もあり、今後何年先も劣化せず、迅速なサービスのリリースができるような仕組みになっています。
鶴田 これはマイクロサービスの簡単な説明ですが、本当はもっと面白い話がたくさん眠っています。YouTube動画では詳しく話していますのでぜひご覧ください。
アプリだけの銀行は不安?みんなの銀行のシステムづくりの裏側(YouTube)
https://youtu.be/G8Ir3GemNtU
前川 システムのお話をありがとうございました。Twitterでお寄せいただいたご質問の中には、
・どんなメンバーがいるの?
・カルチャーは?
・仕事内容や働き方が気になる
といったシステム以外のご質問もありましたので、そちらは次回お答えしたいと思います。
<「デジタルバンクの人・組織・文化。みんなの銀行のシステムづくりの裏側(3/3)」に続く>
(執筆者: みんなの銀行)