変えるべきところ、守るべきところを意識したアーキテクチャ設計とは?
クラウドネイティブな金融システムの開発をアクセンチュアのアーキテクトが語る
2022年06月24日 09時00分更新
ユーザー企業とともにクラウドネイティブな金融システムを構築したアクセンチュア。スクラムマスターが語る開発の舞台裏に続き、アーキテクトチームの3人にはテクノロジー面でのこだわりについて聞いた。(以下、敬称略 インタビュアー ASCII編集部 大谷イビサ)
クラウドネイティブな金融システム開発を支えるアーキテクトチームの役割とは?
ASCII 大谷イビサ(以下、大谷):前回はスクラムマスターにおもにプロジェクトの概要とユーザー企業との協業について聞いたのですが(関連記事:アクセンチュアのスクラムマスターが語る銀行システム開発の舞台裏)、今回はテクノロジー面のこだわりについて聞いていきたいと思います。みなさんが所属するアーキテクトチームについて教えてください。
アクセンチュア 阿部倉泰平氏(以下、阿部倉):アーキテクトチームは最大数十人で、6つのチームから構成されています。それぞれ星川さんのいる共通アーキチーム、角山さんのいるインフラアーキチームのほか、DevOpsチーム、運用アーキチーム、DWHチーム、モバイルアーキチームに細分化されています。アクセンチュア社内から専門家をかき集めて、それぞれのプロフェッショナルでプロジェクトを回していました。
アクセンチュア 星川彰男氏(以下、星川):私がリードした共通アーキチームは、おもにサーバーサイドのアプリケーションアーキテクチャを担当していました。サーバーの実行だけではなく、どのように開発すべきかというプロセスやレビューの標準化なども手がけ、一部のスクラムチームの成果物レビューもやりましたね。アプリケーション開発者の要望に応じて、いろいろ新しい機能も追加しました。
大谷:アーキテクトチームと言っても、けっこう幅広いんですね。
星川:はい。ただ、基本はサーバーサイド側の共通コンポーネントを作ったり、開発中の品質を担保する仕組みを作っているチームだとお考えください。
「このリソースをベースにアプリを作り始めてほしい」という各アプリのひな型も用意して、それぞれ適材適所に使い分けてもらっています。たとえば、処理量の多いバッチならこのひな形、基幹に近いシステムであればまた別のひな形(MAINRI)が用意されている、という感じです。
大谷:今回の開発基盤にもなった「アクセンチュア クラウドネイティブ コアソリューション」(通称MAINRIメイリー)についても教えてください。
星川:平たく言うとGoで作成されたgRPCフレームワークで、クラウド環境で基幹系システムを作っていくためのひな形です。ソースコードの構造をひな形として提供するだけではなく、どのアプリでも使うような共通機能も含まれています。
今まで、われわれはカスタムで開発する際にJavaを使うことが多く、そのための別のフレームワーク(Accenture Connected Technology Solution - ACTS)がありましたが、これをGoで使えるようにし、かつパフォーマンスを上げられるようにしたのがMAINRIになります。今回はより堅牢なフレームワークが求められていたため新たに開発しました。
大谷:なるほど。続いて角山さんはインフラアーキチームですね。
アクセンチュア 角山恵介氏(以下、角山):インフラアーキチームはクラウドを中心とした基盤の設計・構築などを担当していました。われわれは、システムの実行基盤としてどのGoogle Cloudのマネージドサービスを使うか選択するだけではなく、耐障害性など非機能面を担保するにはどうしたらいいかを考えなければなりません。
セキュリティに関しても、たとえば単に不要な通信を遮断するだけではなく、もしその設定にミスがあってもどこかでカバーできるよう幾重にもセキュリティを設けておく必要があります。また、MAINRIで作られたGoのアプリ、ACTSで作られたJavaのアプリ、他のフレームワークで作られたアプリなど、いろいろなアプリを動かすことができる共通基盤をコンテナやKubernetesを用いてチームで作っていました。
大谷:共通化を図るとともに、柔軟性も必要なんですね。
角山:たとえばMAINRIで作ったアプリと他のフレームワークで開発したアプリで動作や運用方法が異なると、求められる非機能や運用においてアプリ個別でカスタマイズが必要になるし、DevOpsの面でもアプリによってはデプロイ時に一時的に通信断が発生するとなると大きな課題に繋がります。ですから、実行アーキテクチャとしては、どんなアプリでも同じように実行や運用ができ、可用性もセキュリティも確保される。そんな環境が必要になります。しかもこの環境をわれわれやお客様、誰であっても運用できるようにしなければなりません。