DAVID BAUM 常時オン NetflixはJava駆動型アーキテクチャ...

6
ORACLE.COM/JAVAMAGAZINE ////////////////////////////// MARCH/APRIL 2015 04 COMMUNITY JAVA IN ACTION JAVA TECH ABOUT US blog 員について把握し、その好みに応じて絞 り込んだコンテンツを提供することで、 Netflixは世界最大のインターネットTVネッ トワークになりました。ほぼすべての人がその柔軟 なオンデマンド・モデルになじんでおり、 ”見放題”の TVサービスを選んで、従来の衛星サービスやケーブ ル・サービスを見限った消費者もいます。Netflix会員 は毎月約10ドル払えば、ほぼすべてのインターネット 接続機器で、いつでもどこでも映画や番組を好きな だけ視聴できます。自由に再生、一時停止、再開が でき、広告の表示や何らかの義務が発生することは ありません。 左から:Netflixの常時オン・チームに所属 するRob Fletcher氏、Clay McCoy氏、 Andy Glover氏、Adam Jordens氏、 Brian Johnson氏、Shelley Bower氏。 写真:BOB ADLER/GETTY IMAGES Java and Performance NetflixはJava駆動型アーキテクチャ 使用して、毎日20億件のコンテンツ・ リクエストを処理しています。 DAVID BAUM 常時オン

Transcript of DAVID BAUM 常時オン NetflixはJava駆動型アーキテクチャ...

Page 1: DAVID BAUM 常時オン NetflixはJava駆動型アーキテクチャ …...Glover氏は幹部としてのリーダーシップにお いて優れた経歴を持ちますが、コード作成に対

ORACLE.COM/JAVAMAGAZINE ////////////////////////////// MARCH/APRIL 2015

04

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

会員について把握し、その好みに応じて絞り込んだコンテンツを提供することで、Netflixは世界最大のインターネットTVネッ

トワークになりました。ほぼすべての人がその柔軟なオンデマンド・モデルになじんでおり、”見放題”のTVサービスを選んで、従来の衛星サービスやケーブ

ル・サービスを見限った消費者もいます。Netflix会員は毎月約10ドル払えば、ほぼすべてのインターネット接続機器で、いつでもどこでも映画や番組を好きなだけ視聴できます。自由に再生、一時停止、再開ができ、広告の表示や何らかの義務が発生することはありません。

左から:Netflixの常時オン・チームに所属するRob Fletcher氏、Clay McCoy氏、 Andy Glover氏、Adam Jordens氏、 Brian Johnson氏、Shelley Bower氏。

写真:BOB ADLER/GETTY IMAGES

Java andPerformance

NetflixはJava駆動型アーキテクチャを 使用して、毎日20億件のコンテンツ・ リクエストを処理しています。

DAVID BAUM常時オン

Page 2: DAVID BAUM 常時オン NetflixはJava駆動型アーキテクチャ …...Glover氏は幹部としてのリーダーシップにお いて優れた経歴を持ちますが、コード作成に対

ORACLE.COM/JAVAMAGAZINE ////////////////////////////// MARCH/APRIL 2015

05

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

Netflixが世界50か国で5,700万を超える会員にサービスを提供できる体制を整える上で、重要な役割を果たしてきたのがJava生来のスケーラビリティです。合計すると、オリジナル・シリーズやドキュメンタリー、長編映画を含めて、10億時間以上の番組や映画が毎月ユーザーに視聴されています。 「Netflixのアーキテクチャ内で実行されるサービスの圧倒的多数は、JavaおよびJava仮想マシン(JVM)で構築されています」と語る

のは、Netflixのデリバリ・エンジニアリング・マネージャーであるAndrew Glover氏です。「Netflixはステートレス・アーキテクチャを採用しているため、顧客が増えても比較的容易にインスタンス数を増やせるのです。何千というJavaプロセスを常に実行していますが、拡大に際して、インフラストラクチャ関連でそれほど大きな課題は抱えていません。また、Javaベースのオープンソース・ツールを多数導入しているので、サービスの監視、アップグレード、規模調整

も簡単です」Glover氏は幹部としてのリーダーシップにおいて優れた経歴を持ちますが、コード作成に対する情熱が揺らいだことはありません。Netflixに入る前、Glover氏はVanward TechnologiesやStelligent、App47で要職を歴任してきました。現在、Glover氏は7名のエンジニアから成るチームを運営しています。このチームは、世界中に広がる巨大なNetflixインフラストラクチャ内で、途切れのない配信と新規ソフトウェアの

NETFLIX netflix.com

本社所在地: カリフォルニア州 ロスガトス売上:44億ドル従業員数: 2,300使用しているJava テクノロジー: Java EE 6、Java EE 7 プロセスをチェックするAndy

Glover氏とJon Schneider氏(左)、打ち合わせ中のGlover氏とAdam Jordens氏(上)。「Netflixのアーキテクチャ内で実行されるサービスの圧倒的多数は、JavaおよびJava仮想マシン(JVM)で構築されています」とGlover氏は述べます。

Page 3: DAVID BAUM 常時オン NetflixはJava駆動型アーキテクチャ …...Glover氏は幹部としてのリーダーシップにお いて優れた経歴を持ちますが、コード作成に対

ORACLE.COM/JAVAMAGAZINE ////////////////////////////// MARCH/APRIL 2015

06

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

デプロイを担っています。「作業時間が短いことはITにおいて重要な差別化要因ですが、この迅速さは間違いなく、Netflixの競争力になっています」とGlover氏は強調します。「途切れることのない配信プラットフォームのおかげで、事業部門が新しい機能の本番稼働を望んだ場合は、数時間以内に実現できます」Glover氏が唱えた、Netflixの主要なスローガンの1つは、「素早く動け、迅速に意思決定せよ、すべてを頑丈なアーキテクチャ上で」というものです。「私たちはデータ企業ですから、迅速なイノベーションを世界中で推し進める能力

を備える必要があります」とGlover氏は付言します。「収集したデータに基づいて素早く意思決定する必要があります。そうすることで、顧客が望む視聴体験を提供し、競合他社の一歩先を行くことができます」

NETFLIXの仕組みNetflixの会員は、リモコンやマウスをわずか数回クリックするだけで映画を閲覧して選び、視聴できることを喜んでいますが、そのコンテンツを配信している高度なハードウェアおよびソフトウェア・インフラストラクチャについて考え

てみたことのある人は多くないでしょう。『ボールズ・ボールズ』や『お熱いのがお好き』、『ブレイキング・バッド』などの映画やテレビ番組を登録しようとして会員がNetflixを立ち上げるたび、まずは基幹Javaサービスが実行され、会員が誰で、どこに住んでおり、料金を支払っているかどうか、どのようなディスプレイ機器を使用しているのかが特定されます。次に、コンテンツ配信ネットワークがもっとも近いキャッシュを見つけ、その時点での接続に最適なオーディオおよびビデオ品質でバッファリングされたコンテンツが、そこからストリーミング配信されます。「会員がNetflixを立ち上げると、システム内部で10種類以上のプロセスが開始され、会員の認可や使用している機器の特定、アカウントの有効性チェック、最近のアクティビティの確認が行われます」とGlover氏は説明します。「このようなオーケストレーションには、Javaベースのオープンソース・ツールであるEurekaを使用しています」

「何千というJava プロセスを常に実行していますが、拡大に際して、インフラストラクチャ関連でそれほど大きな課題は抱えていません」と Glover氏は述べます。

イノベーションの推進

「収集したデータに基づいて素早く意思決定する必要があります」 ̶Andy Glover氏

Page 4: DAVID BAUM 常時オン NetflixはJava駆動型アーキテクチャ …...Glover氏は幹部としてのリーダーシップにお いて優れた経歴を持ちますが、コード作成に対

ORACLE.COM/JAVAMAGAZINE ////////////////////////////// MARCH/APRIL 2015

07

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

Netflixはデジタル・フィルムのマスターコピーをAmazon Web ServicesとAmazon Simple Storage Serviceのクラウド上に保存しています。それぞれのフィルムはビデオ解像度とオーディオ品質に応じて50以上のバージョンにエンコードされており、データを合計すると1ペタバイトを超えます。フィルムはここから、Akamai、Limelight、Level 3などのコンテンツ配信ネットワークに配信され、次に地元のインターネット・サービス・プロバイダへ、最後に視聴者へと

届けられます。 インフラストラクチャのベースとしてサービス指向アーキテクチャ(SOA)を採用し、毎日約20億件のコンテンツ・リクエストを処理しています。「常時、何千ものマイクロサービスが実行されています」とGlover氏は説明します。「この構成により、開発者が新規ソフトウェアをデプロイするときに大幅な独立性が確保されます」

途切れのない配信Netflixのエンジニアは、途切れのない配信により、世界各地のユーザー基盤に新機能を提供し続けています。「途切れのない配信」は、途切れることのない配信プロセスを使用して、低いリスクと最小限のオーバーヘッドで拡張機能やバグ修正を迅速に顧客に提供するエンジニアとともに、全社での事業戦略の基盤となります。Glover

氏によると、この自動化パイプラインにより、エンジニアリング・チームは開発やテスト環境から安定した本番環境へと簡潔な機能セットを移行することができます。「Netflixのソフト

ウェア環境は毎日少しずつ変化しています」とGlover氏は付け加えます。「この途切れのない配信環境が、スピードとイノベーションを実現するうえでの生命線なのです。私たちに、停止時間を設けるというぜいたくは許されていません。『デプロイが完了する3時間後に再度アクセスしてください』などと顧客に言うことはできないのです」パフォーマンスの問題があると視聴者側でバッファリング・エラーとなる場合があるため、Netflixは途切れのない配信システムを使用し、最新のトラフィック統計に基づいて、それぞれ

のデプロイをスケジューリングしています。たとえば、ヨーロッパがピーク視聴時間帯の場合、配信チームはオフピーク時間帯までデプロイを延期するように決めるでしょう。「事業の指針となる中心的指標の1つは、1秒あたりに開始されるストリーミングの数です」とGlover氏は続けます。「私たちはすべての地域のこの数値を注意深く見守っています。一時的な低下が見つかると、即座にアラートが通知されます」

戦略を練るShelley Bower氏、Brian Johnson氏、Mike McGarr氏の3名。Netflixは途切れることのない配信システムを使用し、最新トラフィック統計に基づいてデプロイのスケジュールを策定します。

Netflix企業情報創業:1997年

総会員数:5,740万

毎月Netflixの視聴に 費やされる合計時間: 10億時間以上

複数回の番組を一度に 見る視聴者の割合:61%

使用帯域幅:ピーク時間帯にNetflixが占める北米の下りインターネット・ トラフィックの割合は33%

Page 5: DAVID BAUM 常時オン NetflixはJava駆動型アーキテクチャ …...Glover氏は幹部としてのリーダーシップにお いて優れた経歴を持ちますが、コード作成に対

ORACLE.COM/JAVAMAGAZINE ////////////////////////////// MARCH/APRIL 2015

08

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

データを追いかける インターネット経由でビデオ・コンテンツをストリーミング配信すること自体は難しくありません。技術的な参入障壁は低いでしょう。Netflixを他のビデオ・オンデマンド・サービスと差別化しているのは、同社が収集しているあらゆるデータです。顧客は何を視聴しているか、どのくらいの頻度でサービスを利用しているか、各番組の終了前後にどのような操作を行うか、どのようなジャンルを好んでいるかなど、相互に関連のある多数のデータ・ポイントが収集されています。視聴者が好むと思われる他の番組や映画をおすすめする推奨エンジンのために、

Javaプログラムは毎日約1ペタバイトのデータを取り込んでいます。Netflixは、購入または制作すべきコンテンツや視聴者数を最大化するためのオリジナル作品の制作方法を決定する場合にも、このデータを使用しています。例を挙げると、Netflixが『ハウス・オブ・カード』の放映権を獲得した際、製作総指揮のDavid Fincherと主演のKevin SpaceyはNetflixでの人気が非常に高かったことから、安心して大きな投資を行うことができました。「Netflixの柱の1つとなっているのは、顧客が好みそうな番組を推奨するためのデータ利

選択肢について検討する Chris Berry氏(手前)と Andy Glover氏。Netflixは自社のデータを使用して、購入または 制作すべきコンテンツを決定 しています。

1日あたり1ペタバイト

「Netflixの柱の1つとなっているのは、顧客が好みそうな番組を推奨するためのデータ利用です」 ̶Andy Glover氏

用です」とGlover氏は言います。「Netflixの従業員なら、このデータの取込みかデータの利用のいずれかに必ず関わっています。事業部門が素早く変更を実施できる理由の1つは、インフラストラクチャ全体がJavaで構築されている点にあります」

JAVAベースNetflix Open Connectに含まれるJavaプロセスはサード・パーティのデータセンターにインストールされており、コンテンツの交換、キャッシング、ストリーミング方法を制御しています。Glover氏によれば、このSOAでは、数千ものインスタンスが相互に通信してビジネス・プロセスを実行します。「Sun(Microsystems)がよく言っていたように、『ネットワークこそがコンピュータ』なのです。Linux UbuntuとJava EE 7を実行しているのはすべて汎用ハードウェアです。ノード障害が発生しても、容易に新しいノードを立ち上げることができます」インフラストラクチャはLinuxコンピュータで稼働していますが、ビデオ・エンコーディングはたいていWindowsマシンで、Javaベースのフレームワークの力を借りて実行されます。プラットフォーム間での移植が容易なJavaは、現在そして将来にわたる柔軟性を与えてくれます。また、スキルを持つエンジニアの雇用も容

Page 6: DAVID BAUM 常時オン NetflixはJava駆動型アーキテクチャ …...Glover氏は幹部としてのリーダーシップにお いて優れた経歴を持ちますが、コード作成に対

ORACLE.COM/JAVAMAGAZINE ////////////////////////////// MARCH/APRIL 2015

09

COMMUNITY

JAVA IN ACTION

JAVA TECH

ABOUT US

blog

易になります。「人員を募集する際、Java開発者を見つけるのは簡単です」とGlover氏は述べます。「流行に敏感な人たちしか知らない最新のテクノロジーや言語を追いかけているわけではないので、いつでも有能な人材を探し出せます」Glover氏は、Java 8はJavaを根本から変えたと考えており、”過去10年でもっとも意義のあるJavaリリース”だと見なしています。特に気に入っているのは、デフォルト・メソッドとラムダ式、java.util.stream APIです。このAPIはコレ

クションのHadoop MapReduce変換など、要素のストリームに対する関数型スタイルの操作を可能にします。「中心的な言語機能としての関数型スタイル・プログラミングは強力な構成概念であり、開発領域に大きな影響を及ぼすでしょう」とGlover氏は予想します。「Java 8はJava言語を良い方向へと劇的に変えています」Spring BootをSOAの基盤として採用し、JVMのスケーラビリティと成熟度を享受しています。「Netflixは巨大なSOAの塊です」、Glover

氏はこう言います。「Javaプラットフォーム・サービスを使用することで、開発者は素早く変化のスピードに対応し、Netflixのアーキテクチャで動くサービスを作成できるようになります。JVMでのNetflixの運用実績は実証済みです。Spring BootはWebフレームワークの好例であり、手早く使いこなすことができます。Java自体とJavaエコシステムには依然として、非常に大きなイノベーションが起きています。Javaは確実で、常にそこにあります。だからこそ、Hadoopを含め、非常に多くのインフラストラクチャがJavaで構築されているのです」JavaはNetflixが必要とする柔軟性とスケーラビリティの両方を提供します。「Netflixテクノロジー・インフラストラクチャはハウス・オブ・カード(トランプで組み立てた家のように不安定なもの)ではありません」、Glover氏は最後にこう述べます。「インターネットを使用した最大のストリーミング・ビデオ・コンテンツ・プロバイダであり続けるために、私たちは絶え間なく革新を続けていかなければなりません。JavaはNetflixのソフトウェア・アーキテクチャの基盤です。モニタリング・ツールやプラットフォーム・サービスを含むNetflixの中心的な業務インフラストラクチャはすべてJavaで構築されています」 </article>

David Baum:カリフォルニア州サンタバーバラを拠点とし、革新的なビジネスと最新テクノロジーについて執筆活動中。

Java andPerformance

MORE ON TOPIC:

左から:結果を分析するCameron Fieber氏、Andy Glover氏、Zan Thrash氏。Netflixは汎用ハードウェアを使用してLinux Ubuntuを実行しています。