Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

chef -> docker

Immutable Infrastructure Conference #1

2014/3/25

自己紹介

chef

  • つかってますか?

冪等性

  • 良い

何度もサーバ上で実行

  • 同じ。
  • 同じ。
  • 同じ。

出来上がる環境

  • 何度も同じだ!

良かった

が、

管理の問題

  • えっ

たとえば

  • Vagrant boxの構築・保管
  • 構築手順・保管先ドキュメントの整備・保守(wikify)
  • local環境の状態維持(各人で細かい変更したらオワタ)
  • chef cookbookを更新した後の確認

開発環境維持に対するモラル

  • 配慮し続けないとつらい
  • 処理系のバージョンが人によって異なるとか。

chefでつらいこと

  • cookbook変更後のチェック
  • chefバージョンアップ後のチェック

cookbook適用の保証...

  • 数が多くなると管理がしんどくなる(10以上〜)
  • 元にしているcookbookがバージョンアップで非互換に

つらい

test-kitchenがあるじゃん

  • 毎度回すのが大変
  • bentoを使ってテスト用のイメージでテスト
  • Berkshelfなどの依存関係解決せな

俺たちゃ解析したい

  • 解析チーム、3人しかいない
  • マンパワーの限界
  • 意味のある可視化に力を注ぎたい!

悶々とした日々

  • docker、CentOS でも使いたいなァ...

docker v0.7

  • RHELも動作対象だ!
  • やっちまおう!

全とっかえはNO

  • 手付けてからいつ終わるかわからない
  • とにかく試したいし

どこを対象にするか

安定してるアプリをdocker化

  • HRForecast
  • GrowthForecast

社内テスト実施

  • デ〜タが注ぎ込まれていく
  • docker container安定
  • きちんとグラフ出力できてる

結果

  • このままproductionもいっちゃえ

dockerの社内採用OK

前と今

以前

  • chef + Vagrant + Berkshelfが鉄板だよね
  • 構成変更があれば毎度レシピを再ビルド
  • ビルドの遅さ・手順によるやる気の遅滞(knifeとかあるけど)

  • chef -> ansible
  • ansible-playbookでdocker runという形
  • tagで管理できるので環境を長期放置しても大丈夫(でしょう)

環境構築は簡単でなければ。

  • 環境を気兼ねなくぶっ壊せるように
  • ぶっ壊した後さり気なく再現できるように
  • どんどん新しいことを試せるようにする

docker-registry

  • docker imageの管理
  • 保管場所を考えなくても良い
  • ビルド済みの環境をダウンロードするだけで終わる

docker化

  • まだ一部しか置き換えられていない
  • 適用できる範囲を広げていく

進めていきたい

td-agent

  • テスト用のdocker imageを作った程度
  • 設定ファイルの煩雑さをcontainer分割で解決していきたい
  • containerを複数のマシンに展開しやすそう

進めていきたい

BIツール

  • リグレッションで壊れたら利用者こまる
  • 調子のいいときのイメージをdockerによってアーカイブ

やりたいことに力を注ぎたい

  • 効果測定をやりたい
  • デプロイのために生きているわけじゃない
  • 環境構築の時間を解析のために割きたい
  • 「困ったらあの時に戻りたい」を簡単にしたい

dockerの有用性を社内に広めていく

不安点

  • 運用ノウハウの不足
  • dockerのβ感
  • dockerに縛られることになる?

正直わかり手感ある

特にノウハウ面

  • Dockerfile Best Practicesを参考にビルド
  • 監視方法(dstat? docker top? fluentd?)
  • 社内/社外問わず情報共有しないと...
  • よろしくお願いしますm(_ _)m

以上です

ご清聴ありがとうございました

おまけ

インセプション