chef -> docker
Immutable Infrastructure Conference #1
2014/3/25
たとえば
- Vagrant boxの構築・保管
- 構築手順・保管先ドキュメントの整備・保守(wikify)
- local環境の状態維持(各人で細かい変更したらオワタ)
- chef cookbookを更新した後の確認
開発環境維持に対するモラル
- 配慮し続けないとつらい
- 処理系のバージョンが人によって異なるとか。
chefでつらいこと
- cookbook変更後のチェック
- chefバージョンアップ後のチェック
cookbook適用の保証...
- 数が多くなると管理がしんどくなる(10以上〜)
- 元にしているcookbookがバージョンアップで非互換に
test-kitchenがあるじゃん
- 毎度回すのが大変
- bentoを使ってテスト用のイメージでテスト
- Berkshelfなどの依存関係解決せな
俺たちゃ解析したい
- 解析チーム、3人しかいない
- マンパワーの限界
- 意味のある可視化に力を注ぎたい!
悶々とした日々
- docker、CentOS でも使いたいなァ...
全とっかえはNO
- 手付けてからいつ終わるかわからない
- とにかく試したいし
安定してるアプリをdocker化
- HRForecast
- GrowthForecast
社内テスト実施
- デ〜タが注ぎ込まれていく
- docker container安定
- きちんとグラフ出力できてる
以前
- 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に縛られることになる?