Amazon Web Services(AWS)のユーザーのなかでも開発・運用の先進性で別格といえる存在の米Netflix。システムの開発では「マイクロサービスアーキテクチャー」を全面採用し、機能変更の頻度を高めている。

 マイクロサービスアーキテクチャーは、API(アプリケーション・プログラミング・インタフェース)を備えた独立性の高いソフトウエアコンポーネントである「マイクロサービス」の組み合わせでアプリケーションを構成する設計方法だ。ソフトウエアコンポーネントの独立性を高めて機能変更の影響範囲を限定することで、影響調査やコード作成などの開発工数を減らし、機能変更の頻度を高められる。

Netflixが採用したマイクロサービスアーキテクチャーの例
Netflixが採用したマイクロサービスアーキテクチャーの例
(出所:米Netflixがre:Invent 2014で発表した資料)
[画像のクリックで拡大表示]

 Netflixは何千ものマイクロサービスから成るシステムを開発し運用しており、以前は2週間掛かっていた機能変更の期間を短縮。マイクロサービスごとに適したタイミングでの機能変更を実現しているという。

 Netflixで2009年からAWSへの移行を指揮し、現在は米AWSのバイスプレジデント クラウドアーキテクチャーストラテジーを務めるエイドリアン・コッククロフト氏は、企業ユーザーがマイクロサービスアーキテクチャーを採用する意義を次のように話す。

 「顧客が企業のサービスに求める進化の頻度は、1カ月よりもっと短い。顧客の要求に素早く対応しようとするなら、より柔軟なシステム構成が必要になる」(同氏)。

1年半掛けてアーキテクチャーを変更

 Netflixがクラウドの導入を開始したのは2008年8月のこと。当時はソフトウエアコンポーネント同士が密接に結びついた「モノリシック(一枚岩)」なシステムで、複数の課題があった。

 一つは可用性だ。それまで利用していたデータセンターにリレーショナルデータベースを設置したところ、重大な障害が発生。当時提供していたDVDレンタルサービスで、DVDの発送業務が3日間にわたり停止するなどの問題が発生した。モノリシックなシステムでは、1カ所の障害でシステム全体に影響が出ることを痛感。水平方向にシステムを拡張しやすいクラウドの特性を生かし、マイクロサービス化による分散システムへの移行を決断した。