国内初のデジタルバンク「みんなの銀行」は、勘定系システムの構築基盤にGoogle Cloudが提供するGoogle Cloud Platform(以下、GCP)を採用していたり、マイクロサービスアーキテクチャを採用していたりと、技術的にもチャレンジングな銀行です。
バンキングシステムの開発はどのような環境で行っているのか? なぜ、GCP、マイクロサービスアーキテクチャを採用したのか? ゼロバンク・デザインファクトリーで、みんなの銀行のサーバーサイドの開発を行うエンジニアの山﨑がお話します。
※この記事はオウンドメディア『みんなの銀行 公式note』からの転載です。
開発体制と開発手法
ゼロバンク・デザインファクトリーのサービスファクトリーグループは、フロントエンド/R&D、バックエンド、SRE/インフラ、セキュリティ/QA、デザインなどのチームに分かれて、みんなの銀行のバンキングシステムの開発を行っています。
開発体制は世の中の他の開発会社と変わらないと思います。開発手法としてはアジャイルを基本にしています。これまでの開発を通して見えてきた課題もありますので、改善し、さらに良い進め方を見つけていきたいと考えています。各チームの仕事、技術スタックなどについての詳細は少しずつ綴っていければと思います。
メンバー
ゼロバンク・デザインファクトリーはエンジニアのみで構成されている組織です。多くのパートナー企業がいますので、ディレクション(いわゆる舵取り役)的な仕事もありますが、基本的にはスタッフは手を動かして開発を行っています。
所属するふくおかフィナンシャルグループが九州を基盤としているので、ゼロバンク・デザインファクトリーとみんなの銀行も、九州出身のメンバーが多いのが特徴の一つです。これまでにバンキングシステムの開発に携わったことはないけれど、「技術が好き!」というメンバーがたくさん入社してきており、私もその一人です。
開発環境
拠点
ゼロバンク・デザインファクトリーとみんなの銀行の拠点(オフィス)は東京と福岡にあります。ただエンジニアは、基本的に自宅でリモートワークを行っている人が多いです。
開発マシン
担当する業務によってWindows、Macが貸与されます。スペックも十分なので、開発する上で困ったことは今のところありません。このスペックでは不十分というくらいに開発マシンを使いこなせるエンジニアを募集しています(笑)。
言語
JavaScript (Typescript)
Java
Go
Python
主に使っている言語です。 マイクロサービスアーキテクチャを採用していますので、別の言語を使って新しいサービスを提供する! ということもできるかもしれません。
Cloud
Google Cloud Platform
最初に触れた通りですが、みんなの銀行は国内で初めてGCP上にバンキングシステムを構築しました。GCPの多くのサービスを活用していますが、Cloud Spanner、BigQuery、Google Kubernetes Engineはバックエンドのメンバーであれば必ず触るサービスです。銀行でKubernetesって、少し魅かれませんか?
開発ツール
開発に使用するツールには困ることはありません。無償、有償関係なく、必要なものは新しいツールでも導入を検討できる環境です。JavaのIDEであるIntelliJは現場からの声で使用できるようになりましたし、最近ではプロジェクト管理ツールのJiraが導入され活用が始まりました。
フルリモート
エンジニアはフルリモート勤務も可能です。その分コミュニケーションは大事にしており、オンラインミーティング、チャットツールなどを活用しています。
Teams/Slack
オンラインミーティングには、主にTeamsを使用しています。背景を好きな画像に差し替えることができるので、リモート環境(自宅)でも気を使わず会議に参加できますが、通常カメラはオフにしていることが多いです。
チャットツールは、Slackを使っています。「XXXXはどうすれば良いのだろう?」というような誰に聞くべきか分からない質問は、Slackで問いかければ一度にチームメンバーに届くので、実際に一人一人に直接聞いて回るよりも早く解決に辿りつけたりします。emojiで簡単なリアクションができるのもよいですね
そのほかにもより良い開発環境を求めて絶賛整備中です!
まとめ
私もそうでしたが、銀行からイメージされるものは「お堅い」とか「クローズド」なものが多く、「先進的な取り組み」のイメージからは程遠いのではないでしょうか。そんな中、みんなの銀行が既存の枯れた技術(←良い意味です!)だけを使うのではなく、パブリッククラウドを使って、マイクロサービスアーキテクチャでバンキングシステムを作るということは、とてもチャレンジングなことだと感じています。
また、バンキングシステムは高いセキュリティや可用性を求められるので、ゼロバンク・デザインファクトリーのエンジニアは、新しいことに触れられることはもちろん、モノづくりのための重要なスキルを磨けると思っています。課題も盛りだくさんの出来立てほやほやの若いチームですが、環境、メンバーも続々と整ってきています! 具体的な取り組みについては次の機会に紹介していきます。
(執筆者: みんなの銀行)