Vision

Netflix流のコード展開:ストリーミングメディア大手の内側から学ぶ教訓

Netflix流のコード展開:ストリーミングメディア大手の内側から学ぶ教訓

トッド・ビショップ

マイク・マガーはNetflixのエンジニアリングマネージャーで、Netflixのエンジニアがコードの構築とデプロイに使用するツールを担当するチームを監督しています。ストリーミングメディア企業であるNetflixにとって、これは非常に重要な役割です。エンジニアの生産性を最大限に高め、必要な自動化ツールを利用できるようにしながら、社内の複数のチーム間の依存関係の管理も支援しています。

マイクム
マイク・マクガー

また、Netflix でのチームの作業方法は「高度に連携され、疎結合」しており、展開のペースもネットワークの優先順位も異なるため、これは独特の課題でもあります。

マッカー氏は、5月18日から22日までシアトルのベルハーバー・カンファレンスセンターで開催されるALMフォーラムに登壇し、Netflixでの経験に基づいた洞察を共有します。GeekWireとのインタビューで、彼はその概要を語りました。彼のコメントの抜粋は以下をご覧ください。

Netflix流のコードデプロイ:(プロダクト)チームは、サービスの管理、デプロイ、そして本番環境への製品のデリバリーという責任を負います。この責任を果たすため、チームは希望する本番環境プラットフォームを自由に選択できます。私たちの責任は、チームがより効率的に業務を遂行し、ビジネスロジックと機能に集中できるよう、魅力的なツールとサービスのセットを提供することです。これにより、チームはサービスのビルドとデリバリーのパイプラインについて心配する必要がなくなります。

Netflixのユニークな点は、ツールに関して社内的に非常に自由な市場経済を実践していることです。多くの組織は「このツールを使い、全員がこのやり方に従う」と考えがちですが、Netflixにはそのような課題はありません。それがNetflixのユニークな点です。

「分散型イノベーション」の重要性:イノベーションを一つのチームに任せると、イノベーションのボトルネックが生じます。チームは新しい導入方法を試す余裕があると言うかもしれません。しかし、実際にそれを試みて失敗し、従来のやり方(Netflix社内チームのツールを使う)に戻ってしまうチームもあります。また、非常に成功したチームもあり、その場合は「これは素晴らしい教訓だ。取り入れよう」と言うでしょう。

Amazon Web Servicesとの連携:当社が保有するほぼすべてのオープンソースツールはAWS上に構築されています。AWSは優れたパフォーマンスを発揮することが私たちの経験から分かっています。AWS上に構築するツールはすべて、NetflixにとってAWSが期待通りに機能することを確実にするために構築されています。

その一例がAsgardです。AWSにはアプリケーションの定義がないため、Asgardを構築しました。同じアプリケーションの異なるバージョンとして、2組のASG(Auto Scaling Group)を定義したいと考えていましたが、AWS内ではそれが不可能でした。そこで、エンジニアにこの仕組みを提供するために、AWS上にシステムを設計しました。

もう1つの例は、ベイキングに使用しているプロセスです。私たちはaminatorというツールを開発しました。このツールを使うと、アプリケーションコードを取得して「ベイキング」と呼ばれる処理を実行できます。つまり、コードをAMI(Amazon Machine Image)に展開し、Amazon内に保存するということです。これはスクリプトを使って行うこともできますが、このツールはエンジニアがコードをデプロイするたびに、そのアプリケーションコードをAMIに取り込み、そのAMIに保存できるようにするために開発されました。デプロイのたびに、厳密には新しいコードがデプロイされるわけではありませんが、ASGに全く新しいOSイメージがデプロイされ、そのASGがスケールアップされます。

製品チームと連携する上での鍵:それは真に壁を壊し、チームの誰かが顧客と緊密に連携できるようにすることです。私たちは、顧客と一体となる方法を検討しています。これまでも多くのコラボレーションとミーティングを行ってきましたが、今後はさらに踏み込み、エンジニアの一人をサービスチームに配属し、機能を提供するだけでなく、顧客と連携するという形を検討しています。そうすることで、チームの運営方法や、自社のコードを使用する際に顧客が抱える課題について、彼ら自身では理解できなかったような深い洞察が得られます。日々のやり取りの中で、その洞察を目にすることができます。これは、私たちが目指している方向性の一例です。

この環境で成功する方法:最も重要なのは、一貫性を保てなかったり、間違った情報を提供したりした場合、顧客はあなたを信頼せず、あなたに頼らなくなるということです。顧客はあなたが提供できると信じていないため、正しい情報を得ることができないという悪循環に陥ります。これはコミュニケーションとアウトリーチだけでなく、信頼関係の構築も重要です。

編集者注: ALM Forum は GeekWire の広告主です。