CodeZine(コードジン)

特集ページ一覧

チームがスケールしても開発効率を維持し続ける秘訣とは? 「みんなの銀行」開発プロジェクト【デブサミ2021】

【18-E-3】アジャイル開発をスケールさせる開発アーキテクチャ ~日本初のデジタルバンク「みんなの銀行」での事例~

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/04/12 12:00

 日本初となるデジタルバンク「みんなの銀行」の開発は、当初10人程度の開発者によるアジャイル開発プロジェクトから始まった。だが、最盛期には250人以上の規模のプロジェクトにスケーリング。同プロジェクトをリードしていたアクセンチュアでは、いかにしてアジャイル開発をスケールさせる開発アーキテクチャを用意したのか。アーキテクチャの開発に携わったテクノロジー コンサルティング本部の星川彰男氏が、開発チームを支えるために利用していたツール、開発効率を上げるための枠組み、その考え方について、「みんなの銀行」開発プロジェクトを元に解説した。

目次
アクセンチュア株式会社 テクノロジー コンサルティング本部 星川彰男氏
アクセンチュア株式会社 テクノロジー コンサルティング本部 星川彰男氏

「スケーリング」という概念をシステム開発時に適用

 「アプリケーションやサービスをリリースして、利用者が増えていったとき、サーバの台数を増やすなどのスケーリング作業を行う。これによってアプリケーションとサービスの単位時間当たりの価値が効率化されていく。同じようにスケーリングという概念をシステム開発時に適用するとしたら、どのようにすればよいのか。これは難しい質問だと思う」という問いかけから、星川氏のセッションは始まった。

 星川氏は2014年にアクセンチュアに新卒で入社し、以来、カスタム開発で利用するアプリケーションアーキテクチャの開発及びメンテナンスに従事している。

 システムはスケールアウトもしくはスケールアップすることで対応できるユーザ数を増やし、効率よくサービスを提供することができる。一方、システム開発において単位時間における開発のアウトプットを増やし、効率よく開発する方法はいくつか考えられる。開発者の数を増やしたり、システムを細かく分割したりするアプローチが一例だ。だがこれらのいずれにおいても「そうそううまくはいかない」と星川氏は語る。では開発効率を上げるアーキテクチャはどのようにすればよいのか。星川氏が携わった「みんなの銀行」プロジェクトは、10人から250人規模のプロジェクトにスケーリングし、高い効率で開発を実現したという。

 「みんなの銀行」開発プロジェクトが立ち上がったのは、2018年10月。ちょうどFinTechという言葉が流行っていた時期でもある。「ヨーロッパ中心に勃興したチャレンジャーバンクと渡り合える銀行を作りたい」、そんな思いから、今あるIT技術でゼロから銀行を作ることになったという。

 チャレンジャーバンクと競争できる銀行を作るため、アーキテクチャはどうあるべきか。これはプロジェクト立ち上げ時から考えていたという。

 求められる要素の第一はクラウドネイティブであること。2018年でもクラウドは一般化していたので、「オンプレミス前提はあり得ないと思った」と星川氏。第二にアジリティのある開発が可能なこと。既存の銀行の基幹システムは変更するのが難しい状況になっている。「マーケットの反応を見ながらアジリティのある開発ができなければならないと思った」と星川氏。第三は堅牢かつセキュアであることだ。「この3つの条件を満たし、スケールする銀行を作ることが最初の検討事項だった」(星川氏)

 これらの要素を持っている既存のパッケージやソリューションをいろいろ探したが、近しいものはあっても決め手に欠けていた。そのため、「フルスクラッチで基幹システムを開発するという判断が下った」と星川氏は説明を続ける。

 この要件を満たすべく開発されたのが基幹システム実行アーキテクチャ「MAINRI」である。MAINRIはマイクロサービスアーキテクチャを採用し、将来的に必ず分割できるアーキテクチャで構成されている。また同アーキテクチャは早期からGCPを活用していくことが決まった。GKEを使ったコンテナのオーケストレーションで、開発言語はGo、通信インタフェースはgRPCを採用しているところが、「技術的に面白いところ」と星川氏は胸を張る。

 それ以外も、GCPのサービスであるDataflowの実行フレームワークに、Apache Beamも採用しているバッチアーキテクチャを採用。それによりスケーリングが可能で、かつ高速に作れるようなアーキテクチャを目指すことにしたという。

基幹システム実行アーキテクチャ「MAINRI」
基幹システム実行アーキテクチャ「MAINRI」(画像クリックで拡大表示)

関連リンク

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:【デブサミ2021】セッションレポート

もっと読む

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5