BT

InfoQ ホームページ ニュース Spotifyにおけるマイクロサービス

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

ブックマーク

原文(投稿日:2015/12/14)へのリンク

Spotifyは何年も前から,マイクロサービス開発を大規模に行ってきた。技術担当副社長のKevin Goldsmith氏がGOTO Berlin 2015カンファレンスで,同社がマイクロサービスを使って達成したアーキテクチャ革新について講演した。モノシリックなアプリケーションと比べた場合,マイクロサービスはテストやデプロイ,監視が容易であると氏は主張する。製品間の依存性を可能な限り少なくする目標も持つSpotifyにとって,マイクロサービスは極めて有効なアーキテクチャだ。

システムは独立してスケール可能なように構築されなくてはならない,とGoldsmith氏は言う。アプリケーションを疎結合で構成することなどはその例だ。spotifyは自律的なチームがフルスタックの開発を行っている — つまり各チームには,独立して行動する自由が認められている。これに一役買っているのが,マイクロサービスによるシステム開発である。チームがそれぞれ,自分たち自身のサービスを持つことができるからだ。

マイクロサービスは現実世界のボトルネック解消を可能にすることによって,製品のスケールアップを容易にする。テストやデプロイ,監視なども,モノシリックなアプリケーションよりも簡単だ。

マイクロサービスのもうひとつのメリットは,古いバージョンのサービスを維持しながら,段階的に廃止することができる点にある。新バージョンのソフトウェアに古いコードを含める必要がないため,開発が容易になる。

各サービスの内容がそれほど大きくないこともメリットのひとつだ。各サーバがアプリケーション内で,特定のごく小さな役割をしているため,何らかの理由でそれが使用不可能になっても,ユーザへの影響を最小限に抑えることができる。

マイクロサービスの利用には,充実したドキュメントとディスカバリツールは不可欠だ。Spotifyでは,サービスディスカバリを行うシステムオーバービューツールと,マイクロサービスの稼働状態を示すために独自開発したドキュメンテーションツールを使用している。

マイクロサービスのデメリットは,複数のサービスがコールされることによる遅延の大さだ。この問題を解決するためにSpotifyでは,サーバ側に"ビューアグリゲーション”ツールを開発して,クライアントのビュー表示に必要なデータの収集を行っている。これによってクライアントがサーバに対して行わなくてはならないコール数を削減し,遅延を大幅に改善している。

マイクロサービスの使用には,自律的なチームが同じ開発を繰り返し行ったり,同じものを開発するというリスクがある。Spotifyでは,チームが実施すべき作業を非常に明確にすることでこれを防止している。 チームにはそれぞれ,重複しない独自のミッションがある。複数のチームで互いに学ぶ方法として,ギルド(Guild)が利用されている。

Spotifyでは開発者自身がマイクロサービスをデプロイし,運用を担当する。プロビジョニングやデプロイを容易にするため,彼らをサポートするツールが用意されている。

Spotifyでは専門チームが“途方もない量のデータ”を収集して,クライアント側のパフォーマンスを分析している,とGoldsmith氏は言う。サーバ側の性能は従来の方法で測定されている。パフォーマンスの監視にはこれが役に立っている。

聴衆の中から,Spotifyがチーム間の同期を保つ方法についての質問があった。 Goldsmith氏の回答は,チームは自律的なので“同期は必要ない”,というものだった。目的は依存関係を最小限にすることであり,マイクロサービスはそのための極めて有用な方法なのだ。システムが複数の関連しない処理を行っているのであれば,複数の独立した特定用途のシステムにリファクタした方がよいだろう。

チームの自律性と,サービスが何をすべきかについての一般要件とのバランスを取ることが重要だ。これを可能な限り簡単に行うため,チームはツールを利用する。Spotifyではルールを課すことはしていないが,不明確な動作を行わないように制限を掛ける場合はある,とGoldsmith氏は述べている。チームの問題に対しては,チーム自身が最善のソリューションを見つけられるようにする必要がある。Spotifyが発展させたベストソリューションに従えば,それは簡単だ。そのような作業方法にあえて自分たちで挑戦したいのであれば,それも可能だが,実現にはより多くの作業が必要になるだろう。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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メールを変更すると確認のメールが配信されます。

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