ChefConf 2015 レポート (part 4) #getchef
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
2015年3月31日から4月2日まで実施されたChefConf 2015の現地レポートpart4です。
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.
- ディズニーは世界でも有数のメディア企業で、強いブランド力を持つ企業として知られている。
- アプリケーション開発ニーズは大きく、DevOpsを本格的に採用する事で急増しているニーズに対応できることがディズニーのITチームの重要課題となっている。
- DevOps手法を取り入れるとともに、ChefやSupermarket等のツールで様々な自動化を行っている。
- また、独自にDRADISと呼ばれるツールを開発し、パブリッククラウド上のアプリケーションスタックの管理を行っている。
- Dockerコンテナも採用しており、BIを行っている。
- DRADISの実装例として、ディズニーの映画をオンライン配信している、Disney Movies Anywhereというサービスのパブリッククラウド上での運用でアプリのオーケストレーションを行っている。
- コンセプト:
-
- アプリ運用: 特に自動化に必要なメタデータ(環境設定情報、イメージ、Cookbook、等)の統合管理を行う。
- 独自のクラウドAPI: リソースをオブジェクトとして捉え、ユースケースや属性情報や設定情報などを管理している。
- Software State:
-
- オブジェクトはAPI経由で管理/操作する。
- 複数のステートをサポートできる環境:アクティブなステートは一つ
- ソフトウェアのデプロイは複数のツールを使って行う
- ベストプラクティスの処理もこの複数のツールを通して確立している。
- アプリケーションの開発/運用に関するChefのcookbookを作る際には、常にチーム内で確認すること:
-
- すでにCookbookを作成している人はいないか
- 最適なバージョンを作っているか(改善の余地はないか)
- Cookbookの管理責任者は誰か
- 他のエンジニアの開発したCookbookは全てSupermarketで管理している。
- プライベートなSupermarketを運用している。
-
- Irvingpopの提供するSupermarketのcookbookをベースに独自エンハンスしている
- CookbookはS3のプライベートバケットで管理
- Enterprise Chefで認証を行う
- DisneyのChefで管理しているアプリ開発/運用の環境
-
- 250以上のアプリがすでに登録
- 1日に30TBを運用
- 3つのパイプライン
- 300台のHadoopサーバ
- 30個のCookbook
- 20PBのHadoopストレージ
- Disneyで運用しているBIスタックを構成するコンポーネント
-
- Chef
- Docker
- Mesos
- Marathon
- Chronos
- Consul
- さらに様々なデータベースエンジンや開発言語を標準的に採用
- これらのBIサービスは全て、Docker上のコンテナとして管理し、Consulでサービスディスカバリ、Mesosで仮想マシンのクラスタ管理が行われる。
- Marathonの運用管理画面
- Chefとコンテナ運用のルール:
-
- 開発者がCookbookを編集する責任
- CIはPackerを使い、コンテナのビルド、テスト、そしてDocker Registryへのプッシュを行う
- Marathon APIを通してBI Helixのデプロイが行われる
- 結果的に得られたもの
-
- 全てのBIアプリケーションをまとめたレポジトリを統合できた
- ChefがBI Helix cookbookとConsulサービスディスカバリ機能を使ってクラスターを管理できるようになった
- コンテナ運用をMesos上で実現できた!
- そしてさらに;
-
- マイクロサービスの運用を実現
- ジョブに関連したグラフはChronosで運用
- BIのETLジョブはMesos上でクラスタ管理された環境の上で実行される
- ETLジョブはChefで定義される