fbpx

ChefConf 2015 レポート (part 4) #getchef

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

2015年3月31日から4月2日まで実施されたChefConf 2015の現地レポートpart4です。

ChefConf 2015 レポート Part1

ChefConf 2015 レポート Part2

ChefConf 2015 レポート Part3


Disney Panel Discussion

Jason Cox: Director, Systems Engineering, Walt Disney Corp.
Jeff LaPlante: Staff Systems Engineer, Walt Disney Corp.
Brian Scott: Manager, Systems Engineering, Walt Disney Corp.
Steven Wagner: Staff System Engineer, Walt Disney Corp.
Nick Willever: Sr. Systems Engineer, Walt Disney Corp.

c004001

  • ディズニーは世界でも有数のメディア企業で、強いブランド力を持つ企業として知られている。
  • アプリケーション開発ニーズは大きく、DevOpsを本格的に採用する事で急増しているニーズに対応できることがディズニーのITチームの重要課題となっている。
  • DevOps手法を取り入れるとともに、ChefやSupermarket等のツールで様々な自動化を行っている。
  • また、独自にDRADISと呼ばれるツールを開発し、パブリッククラウド上のアプリケーションスタックの管理を行っている。
  • Dockerコンテナも採用しており、BIを行っている。

c004002

c004003

  • DRADISの実装例として、ディズニーの映画をオンライン配信している、Disney Movies Anywhereというサービスのパブリッククラウド上での運用でアプリのオーケストレーションを行っている。

c004004

  • コンセプト:
    • アプリ運用: 特に自動化に必要なメタデータ(環境設定情報、イメージ、Cookbook、等)の統合管理を行う。
    • 独自のクラウドAPI: リソースをオブジェクトとして捉え、ユースケースや属性情報や設定情報などを管理している。

c004005

  • Software State:
    • オブジェクトはAPI経由で管理/操作する。
    • 複数のステートをサポートできる環境:アクティブなステートは一つ
    • ソフトウェアのデプロイは複数のツールを使って行う
    • ベストプラクティスの処理もこの複数のツールを通して確立している。

c004006

  • アプリケーションの開発/運用に関するChefのcookbookを作る際には、常にチーム内で確認すること:
    • すでにCookbookを作成している人はいないか
    • 最適なバージョンを作っているか(改善の余地はないか)
    • Cookbookの管理責任者は誰か

c004007

  • 他のエンジニアの開発したCookbookは全てSupermarketで管理している。

c004008

  • プライベートなSupermarketを運用している。
    • Irvingpopの提供するSupermarketのcookbookをベースに独自エンハンスしている
    • CookbookはS3のプライベートバケットで管理
    • Enterprise Chefで認証を行う

c004009

  • DisneyのChefで管理しているアプリ開発/運用の環境
    • 250以上のアプリがすでに登録
    • 1日に30TBを運用
    • 3つのパイプライン
    • 300台のHadoopサーバ
    • 30個のCookbook
    • 20PBのHadoopストレージ

c004010

  • Disneyで運用しているBIスタックを構成するコンポーネント
    • Chef
    • Docker
    • Mesos
    • Marathon
    • Chronos
    • Consul

c004011

  • さらに様々なデータベースエンジンや開発言語を標準的に採用

c004012

  • これらのBIサービスは全て、Docker上のコンテナとして管理し、Consulでサービスディスカバリ、Mesosで仮想マシンのクラスタ管理が行われる。

c004013

  • Marathonの運用管理画面

c004014

  • Chefとコンテナ運用のルール:
    • 開発者がCookbookを編集する責任
    • CIはPackerを使い、コンテナのビルド、テスト、そしてDocker Registryへのプッシュを行う
    • Marathon APIを通してBI Helixのデプロイが行われる

c004015

  • 結果的に得られたもの
    • 全てのBIアプリケーションをまとめたレポジトリを統合できた
    • ChefがBI Helix cookbookとConsulサービスディスカバリ機能を使ってクラスターを管理できるようになった
    • コンテナ運用をMesos上で実現できた!

c004016

  • そしてさらに;
    • マイクロサービスの運用を実現
    • ジョブに関連したグラフはChronosで運用
    • BIのETLジョブはMesos上でクラスタ管理された環境の上で実行される
    • ETLジョブはChefで定義される
新規CTA