まえおき

  • 2つくらいデプロイしたい新規のアプリがあったので運用方法の候補に Docker も検討した
  • 検討段階で既にいくつか課題点が見えた
  • Docker に興味ありそうな人たち (@deeeet @repeatedly @kenjiskywalker @punytan) で寿司した

参考画像

tl;dr

  • プロダクションで Docker 使うのは今のところ人柱
  • 盛り上がってる感はあるけど実際使ってる人いない
    • Docker は周辺のミドルウェアが揃わないとなかなか使いにくい

話題ごとに箇条書きメモ

運用

  • アプリのログを完全に回収する方法どうする?
    • ホストのディレクトリをマウントしてそこに書き込む?
    • ログ回収しきってからコンテナ止める安全な方法は?
  • コンテナ内のアプリも監視したい
  • 高負荷時の挙動が未知なのでトラブった時怖い
  • 環境
    • カーネルバージョン新しいの使えない環境だと導入すら難易度高くてつらい
    • ディストリの壁 (CentOSェ…)

デプロイ

  • DB の接続設定とかどうする?
    • ビルド時にコンテナに突っ込む?
      • Dockerfile 内で ONBUILD 使えるかも
        • http://deeeet.com/writing/2014/03/21/docker-onbuild/
    • etcd や consul のような分散 KVS に DB の設定入れるとかしたい
  • AWS Elastic Beanstalk for Docker
    • Beanstalk では 1 container しか起動できなくてコンテナの意味あまりない
      • https://news.ycombinator.com/item?id=7636785
    • Amazon からすれば VM 内で大量にコンテナたてられたら売上増えない
      • 理屈はわからなくもない
  • 既存のデプロイフローが綺麗に確立できていると移行するメリットが見出しにくい
  • デプロイした新しいバージョンのアプリに切り替えるのどうするか
    • 古いコンテナからなんとかして同時に新しいコンテナへ向き先を切り替える?
      • 新しい VM たてて LB で向き先変える (Blue-Green Deployment) 方が楽そう

開発環境として

  • 開発環境の構築に使いたい件
    • Vagrant 1.6 で Docker provider がサポートされた
      • http://deeeet.com/writing/2014/05/08/vagrant-docker-provider/
    • Vagrant で VM 起動するよりは圧倒的に早い
  • テスト回すには良いがそれ以上に使い倒したい

IaaS? PaaS?

  • Docker の扱うレイヤーは結構下の方
    • 連携してよしなにしてくれるミドルウェアと組み合わせる必要ある
    • オンプレで IaaS/PaaS ライクなものを構築するには向いてるかも
  • Mesos みたいなクラスタマネージャと組み合わせると良いかも?
    • その後、神のお告げがあった

その他話題

  • Docker Inc.
    • dotCloud 華麗にピボット成功
    • Docker 単体で収益化するのは難しそう
      • どこかが買うかも?
  • 「◯◯来たか!」と思って調べてもみんなそれ言って盛り上がってるだけ
    • インターネットこわい
  • goroutine と Erlang の軽量プロセスの内部実装の話
  • レガシー環境は辛い
  • ステッカーの質感
  • CDN の話
  • S3 使うよりさくらでコンテンツ配信したほうが安上がり案について

雑感

  • Docker はみんなが期待してるような夢の何かではない気がした
  • オンプレか EC2 インスタンスを大量に確保していてそのリソースを最適化したい場合には使えるかもしれない
    • DockerはLXC同士を隔離するのが得意ではない
      • http://deeeet.com/writing/2014/05/01/what-is-docker/
  • Docker 一周したらカジュアルに使えるようになってると嬉しい