Blogs
11

ポール・テイラー、Thought Machine 最高経営責任者(CEO)

September 24, 2020

なぜマイクロサービスが銀行の未来なのか

マイクロサービスが銀行の未来である理由

Google、Amazon、Netflix、あるいはSpotifyのエンジニアがThought Machineに入社すれば、すぐに馴染めるはずです。私たちは同じツールを使用しており、ソフトウェアアーキテクチャの原則もこうした先進企業と共通しているからです。

私たちが共有する最も重要なことの一つは、マイクロサービスへのこだわりです。マイクロサービスは、回復力が高く、強力で、拡張性に優れ、更新も容易なアプリケーションを構築するための鍵となります。率直に言って、GoogleはGmailを運営できず、Netflixもサービスを維持できないでしょう。マイクロサービスなしでは成り立たないのです。

銀行業界では、マイクロサービスはあまり馴染みがありません。控えめに言っても、銀行のソフトウェア技術は最先端から数十年遅れています。銀行関係者は、一刻も早くマイクロサービスについて学ぶ必要があります。

そこで、マイクロサービスとは何か、そしてなぜそれが銀行業務に革命をもたらすのか、その要点を解説します。

従来の銀行アプリケーションは、モノリス(一枚岩)と呼ばれる単一のエンティティとして構築されてきました。すべてのコードが巨大で複雑なコードベースにまとめられており、エンジニアが迷路の中で迷子になってしまうほど難解なものです。

その代替となるのがマイクロサービスです。アプリケーションをモノリスにするのではなく、マイクロサービスと呼ばれる小さな自律的な単位に分割します。各マイクロサービスは独立して動作し、専任チームによって管理されます。マイクロサービス同士はAPIを介して通信します。

つまり、小さな自立したユニットがネットワークを形成し、それらが連携することで一つのアプリケーションを作り上げているのです。

その最大の魅力はサイズにあります。各マイクロサービスはコンパクトで明確に定義されています。シリコンバレーには、マイクロサービスを担当するチームは「2枚のピザ」で食事が足りる人数であるべきだという考え方があります。有名な「2枚のピザのルール」です。食欲にもよりますが、7人から10人程度の規模です。真偽はともかく、このルールは、マイクロサービスは少人数のチームで管理できる範囲に収めるべきだという信念を象徴しています。

例えば、 Vault Core のカーネルは、約20個のマイクロサービスで構成されています。それぞれのマイクロサービスには、その仕組みを熟知した小さなチームが割り当てられています。

さらに、

単にサイズの問題だけではありません。技術的な観点から見ても、マイクロサービスを採用すべき素晴らしい理由は数多くあります。

1)マイクロサービスは堅牢です。仮に一つのマイクロサービスが故障しても、影響はその範囲に限定され、他のマイクロサービスは正常に動作し続けます。システム全体がダウンしてしまう可能性があるモノリスと比較すると、障害を切り分け、被害を最小限に抑えられるこの能力は、極めて大きな利点です。

2)マイクロサービスは整理が容易です。計画の観点から見ると、アプリケーションを個別のパーツとして扱うことで、全体像の把握がしやすくなります。

3)マイクロサービスはスケーリングの問題を解決します。銀行には、ピーク時の需要に対応できる能力が求められます。例えば、月末の金曜日に給与振込が集中するタイミングや、ブラックフライデーのような爆発的なショッピング需要が発生する時期です。メインフレームの場合、こうしたピーク時に合わせてリソースを確保する必要がありますが、実際には月に数分しか使われないこともあります。残りの時間はサーバーがアイドル状態となり、さらに同規模の災害復旧システムも必要となるため、コストが莫大になります。

マイクロサービスは個別にスケーリング可能です。クラウド上で需要に応じて個別に拡張・縮小できるため、インフラの無駄が排除されます。また、急激な需要の急増にも問題なく対応できます。

4)マイクロサービスの更新はより簡単です。数ある利点の中でも、これは特に強調すべき点です。モノリシックなアーキテクチャと比較すると、その差は歴然としています。

その理由は以下の通りです。マイクロサービスは、チームの準備が整ったタイミングでいつでも更新できます。他のマイクロサービスとの調整を待つ必要はありません。各チームは独自のペースで作業を進められます(ただし、他のマイクロサービスに影響を与えるAPIの変更がある場合は別ですが、その場合でも影響範囲は関連する少数のマイクロサービスに限定されます)。

このアプローチは非常に優れています。チームはマイクロサービスを小さく段階的にアップグレードできるようになります。エラーの修正も迅速です。どの変更が原因かを特定しやすく、調査範囲もそのマイクロサービス内に限定されるためです。イノベーションが加速し、チームは自らの裁量で開発を進められるため、満足度も向上します。

モノリスの更新は悪夢です。変更は半年ごとの「ビッグバン」アップグレードで一括適用されます。エラーの特定は困難を極め、エンジニアは数千もの同時変更の中からバグを探し出さなければなりません。その結果、エンジニアはアップグレードを避けるようになり、時間が経つにつれてモノリスはますます時代遅れになっていきます。次のビッグバン更新では、さらに膨大なバックログを組み込む必要があり、リスクは増大する一方です。これは銀行のエンジニアにとってあまりにも馴染み深い悪循環です。

マイクロサービスへの移行はこのサイクルを断ち切ります。各マイクロサービスが独自のペースで進化し、アプリケーションを継続的かつスムーズに非同期でアップグレードすることが可能になります。

5)マイクロサービスはダウンタイムなしでアップグレードできます。ブルー/グリーンデプロイメントを採用すれば、アップグレード版を旧バージョンと並行してリリースし、トラフィックを切り替えることができます。顧客サービスを中断させることはありません。万が一、変更がうまくいかなかった場合でも、旧バージョンにトラフィックを戻すことで即座に切り戻しが可能です。ダウンタイムは発生しません。

対照的に、モノリスはオフラインにする必要があります。銀行から届く「メンテナンスのためサービスを停止します」という通知は、まさにこのためです。

Thought Machineにおけるマイクロサービス

ここで、よく寄せられる質問にお答えします。

「マイクロサービスがそれほど優れているなら、なぜ銀行業界では一般的ではないのでしょうか?」

答えは2つあります。1つ目は、銀行ソフトウェアの古さです。多くの銀行は、数十年前の時代遅れの原則に基づいて構築されたシステムに縛られています。こうした古いシステムのアップグレードはほぼ不可能です。欠けているのはマイクロサービスだけではなく、過去10年分のテクノロジーそのものなのです。

2つ目は、銀行でマイクロサービスを運用することが 困難であるということです。競合状態(レースコンディション)が発生するため、極めて精密に設計されたソリューションでなければ機能しません。例えば、2人の名義人が同時に引き出しを行う口座を想像してください。モノリスであれば、オンプレミスのデータセンターで単一のアーキテクチャが処理するため、1ミリ秒の応答時間が実現でき、競合も少なく解決も容易です。しかし、マイクロサービスは競合状態の影響を受けやすくなります。クラウドセンター間で分散配置されるため、光速という物理的な限界や光ファイバーの抵抗などが加わり、応答時間が200ミリ秒から1秒かかることもあります。

これが、コアバンキングでマイクロサービスが普及していない理由です。従来のプロバイダーには、この問題を解決できませんでした。

今日、競合状態は解決可能です。しかし、その技術を習得している組織はごくわずかです。Thought Machineがコアバンキングの分野で世界をリードしているのは、エンジニアリングへの妥協なき取り組みがあるからです。当社のコアバンキングエンジン「Vault Core」は、他のどのマイクロサービスベースの銀行システムよりも優れた方法で、競合状態の問題を解消しています。

だからこそ、Lloyds Bank、SEB、Atom bank、Standard Charteredをはじめとする多くの銀行がVault Coreを採用しているのです。

規制への対応も重要な課題です。Thought Machineでは、マイクロサービスを毎月アップデートしています。理論上はAmazonやSpotifyのように、各チームが好きなタイミングでマイクロサービスを更新することも可能ですが、銀行や規制当局と密接に連携している当社では、あらゆる規制や要求事項を完全に遵守するため、予測可能なスケジュールを採用しています。

テクノロジーと銀行業務の両面における深い知見があるからこそ、競合他社には真似できない方法で取り組むことができるのです。

銀行にもたらされるメリット

実のところ、Vault Coreの洗練されたマイクロサービスアーキテクチャは、クライアントからは見えないところで機能しています。Vault Coreはマイクロサービスで構成されていますが、銀行はパブリックAPIを通じて接続するため、そのゲートウェイのみが接点となります。

私たちは「全体的な一貫性」を重視しています。銀行には一貫したAPIが提供されるため、内部で変更が行われても、銀行が利用するインターフェースには影響がありません。そのため、銀行側はマイクロサービスを意識する必要はないと言えるかもしれません。

しかし、銀行にとってマイクロサービスを理解することは不可欠です。自社の内部システムを設計する上でも、Vault Coreの強みを把握する上でも重要だからです。

Vault Coreを採用すれば、無限の拡張性を享受できます。需要の増減に合わせてVault Coreがスムーズにスケールアップ・スケールダウンし、波に乗るように対応します。

Vault Coreを導入することで、銀行は考えうる限り最強の基盤を構築できます。マイクロサービスアーキテクチャの堅牢性により、確信を持ってアップデートを行い、エラーを排除し、ダウンタイムなしで改善を実装することが可能です。これによりリスクを桁違いに低減し、コストを劇的に削減できます。

これらは驚異的な利点です。

Google、Apple、Netflix、Spotifyはマイクロサービスの上に成り立っています。今、Thought Machineを通じて、銀行業界がその恩恵を受ける番です。