出版

Netflixは独自のコンテナオーケストレーションシステムを構築することを選択しました。その過程で同社が得た重要な教訓をいくつかご紹介します。
大規模企業のIT運用を変革するのは困難です。開発当時は最先端だったアプリケーションも、わずか数年でレガシー化してしまうのです。
ウェブスケーラーのNetflixを例に挙げましょう。Netflixは、パブリッククラウドを広範な業務に活用している組織の好例です。Netflixのアプリケーションのほとんどはこれまで主に仮想マシン内で実行されていましたが、同社は最近、インフラストラクチャ内でコンテナをオプションとして提供することを目指しています。ここでは、Netflixの経験から得られる4つの教訓を紹介します。
参照: クイック用語集: DevOps (Tech Pro Research)
1. ガバナンス
Netflixはボトムアップ型の組織です。コンテナオーケストレーションの設計決定の多くは、ガバナンスによって左右されました。運用部門はどのアプリケーションをコンテナに格納するかを指示しませんでした。どのサービスをコンテナに格納し、どのアプリケーションを仮想マシンに残すかは、個々のアプリケーションチームが決定する必要がありました。
企業はコンテナ戦略を検討する際、常にガバナンスから始めるべきです。クラウドネイティブ技術を導入したものの、結局は使われずに終わる組織を数多く見てきました。最大の課題は企業文化です。技術を導入するインセンティブがないか、導入を強制するスポンサーシップがないのです。Netflixの場合、コンテナチームのモチベーションは、アプリケーションコミュニティに価値を提供することから始まりました。
2. KubernetesとTitus
Netflixはホワイトペーパーでコンテナ導入の軌跡をまとめました。大規模なコンテナ運用にはオーケストレーションが不可欠であり、NetflixはKubernetesオープンソースプロジェクトの初期からその取り組みを始めました。Netflixは、独自のオーケストレーションプラットフォームを構築するか、既存のプラットフォームを採用するかを決定する必要がありました。
Netflixは、専用のコンテナオーケストレーションプラットフォーム「Titus」の構築を選択しました。Netflixによると、多くの組織はKubernetesなどの新しいコンテナプラットフォーム上でグリーンフィールドアプリケーションの開発を検討しているとのことですが、Netflixのチームは既存のアプリケーションも考慮に入れたいと考えていました。そのため、NetflixはTitusコンテナ管理システムをMesophere上に構築することを選択しました。
現在、Kubernetesはブラウンフィールドアプリケーションを幅広くサポートしています。例えば、Docker SwarmはKubernetesをSwarmクラスターに統合できるようになりました。また、運用チームはレガシーアプリケーションをDockerコンテナにデプロイし、そのコンテナをKubernetesクラスターにデプロイすることも可能です。
3. コンテナネットワーク
組織はコンテナネットワークについて十分に検討する必要があります。レガシーアプリケーション間のアプリケーション連携を設計する際には、ネットワークが特に重要になります。NetflixのTitusは、コンテナ間ネットワークを実現し、IPアドレス空間を節約します。このソリューションでは、既存アプリケーションのルーティング可能なネットワークアドレス空間にコンテナを直接配置することも可能です。
企業におけるコンテナ導入において、ネットワークオーバーレイの導入は一般的なアプローチです。VMware、Cisco、Juniper、Extreme Networks、Big Switchといった主要ネットワークベンダーは、Kubernetesコンテナのサポートを提供しています。各ソリューションはKubernetesに接続することで、オーバーレイとセキュリティの両方のサポートを実現します。また、アプリケーションはKubernetesネイティブのネットワークAPIを使用してセキュリティポリシーを制御できます。
4. パブリッククラウド
以前のTechRepublicの記事で述べたように、NetflixはAmazon Web Services(AWS)の非常に大きな顧客です。しかしながら、AWS Identity and Access Management(IAM)との統合は運用上の課題となっています。NetflixはTitusにおいて、レガシーアプリケーションを変更せずに利用できるプロキシサービスを構築しました。TitusはIAMロールを活用し、単一のTitusノードがそのノード上で実行されているコンテナに対してIAMロールを適用できるようにします。ワークロード配置の一環として、TitusはIAMセキュリティを考慮する必要があります。
もう一つの検討事項は、EC2インスタンスをコンテナホストとして活用することです。コンテナ導入以前、NetflixはEC2の非効率性に悩まされていました。コンテナを導入することで、Netflixは複数のワークロードを単一のEC2インスタンスに配置できるようになり、EC2インスタンスを小さな単位に分割できるようになりました。その結果、Netflixはより高いレベルの効率性を実現しました。

こちらもご覧ください
- 特別レポート:DevOps革命の波に乗る(無料PDF)
- クラウドコンピューティングは3年以内に従来のデータセンターを事実上置き換えるだろう
- コンテナ:賢い人のためのガイド
- Netflixは2018年に技術、マーケティング、コンテンツへの支出を増やす予定
- コンテナ vs. 仮想マシン: 複雑な質問への簡潔な答え

キース・タウンゼント
キース・タウンゼントは、データセンター技術の設計、実装、管理において15年以上の経験を持つ技術管理コンサルタントです。専門分野は、フォーチュン500企業向けの仮想化、ネットワーク、ストレージソリューションです。デポール大学でコンピューティングの学士号と情報技術の修士号を取得しています。