BT

InfoQ ホームページ ニュース Go言語とマイクロサービスとコンテナで銀行を作る:QCon LondonのMatt Heath氏の講演

Go言語とマイクロサービスとコンテナで銀行を作る:QCon LondonのMatt Heath氏の講演

ブックマーク

原文(投稿日:2017/03/20)へのリンク

QCon Londonで、Matt Heath氏が'Building a Bank with Golang'と題して講演をした。氏はMonzo BankでどのようにしてバックエンドのシステムをGolangを使ったマイクロサービスとして開発したのかを説明した。重要な点は、Golangの素晴らしい並列処理機能が、この言語を'ボリュームが高く、遅延が少ない分散アプリケーション'の開発に適したものにしているということ、Monzoのオープンソースのマイクロサービスのフレームワークである'Typhon'のようなものとCNCF 'linkerd'プロキシを組み合わせると重要な通信の実装に大きな利点があるということ、分散システムを監視できるようにしデバッグするのに重要なのはコンテキストプロパゲーションを通した分散トレーシングを有効にすることだ。

Matt Heath氏はMonzo Bankの分散システムエンジニアだ。氏は講演のはじめに、Monzoのゴールである、破壊的なリーテルバンキングについて、そして、現時点ではモダンなUXのモバイルアプリを使った口座管理を提供することに注力していることを紹介した。Monzoは、イギリスの銀行業界に新規参入し、2016年8月には制限付きの銀行業のライセンスを取得した。2015年2月に生まれたとき、この会社の技術チームは一枚岩のアプリケーション設計を避けるという意思決定をした。技術とバックエンドシステムを開発するチームの両方のスケーリングという要件を満たすためだ。

Monzoのバックエンドシステムの開発を'マイクロサービスから始める'という意思決定は、マイクロサービスのアーキテクチャスタイルの性質から生まれた。例えば、単一責任原則に従うという思想や、(ドメイン駆動設計に着想を得た)境界付けられたコンテキストとインターフェース/APIを簡単に実装できるようにする、という性質だ。このバックエンドサービス群はGolangで開発された。この言語を採用したのは、メモリが管理され、静的型付け言語であり、優れた並列処理(goroutineschannelsのような)を提供し、小さい、シンプルなネットワークサービスを提供するのにうってつけの言語だからだ。

Goはマイクロサービスを開発するのに最高の言語です。Monzoは'単一責任原則'にフォーカスしており、この言語の並列処理の特性と言語そのものが、小さなシンプルなネットワークサービスを簡単に作れるようにしてくれます。

サービスの数が増えるにしたがって、Monzoのチームは標準化されたフレームワークのような枠組みを使うことに実装上の利点があることを理解した。Peter Bourgon氏のGoベースのマイクロサービスフレームワークである'go-kit'やAsim Aslam氏の'micro'に着想を得て、Monzoのチームはオープンソースの'Typhon'を開発したこれは、'マイクロサービス[RPC]通信のためのトランスポートレイヤ'だ。サービスディスカバリ、ロードバランシング、失敗の管理のような中核となる通信の責務は'linkerd'透過プロキシ(現在は、CNCFによって管理されている)を使って実装されている。

MonzoのバックエンドサービスはDockerにパッケージングされており、Kubernetesを使って配置される。アプリケーションはイベント駆動アーキテクチャのパラダイムを拡張して使っており、コンテキストプロパゲーションを通じてリクエストの情報を共有する。全てのリクエストに相関IDが付与される。Monzoは分散トレーシング(GoogleのDapperやOpen Zipkinと同じような)に利用される'phosphor'をオープンソースにしている。これによってシステム全体でリクエストのパスを視覚化でき、デバッグしやすくなる。

Monzo Typhon and Phosphor distributed tracing

氏はMonzoの技術チームはGoが'マイクロサービスアーキテクチャに最適だ'という発見をした、と話、講演を締めくくった。この言語の並列処理の特性と言語そのものが、小さなシンプルなネットワークサービスを簡単に作れるようにしてくれる。

氏の講演のスライドは'Building a Bank with Go'と題してにアップされている。詳細は、QCon Londonのページで確認できる。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

C# 8の非同期ストリーム

Bassam Alugili 2018年10月11日 午前3時13分

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。