YAPC::ASIA Hachioji 2016 mid in Shinagawa で発表してきました

YAPC::ASIA Hachioji 2016 mid in Shinagawa で発表してきました

7/2, 7/3に開催されたYAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa に参加して「つくって学ぶLinuxコンテナの裏側」というタイトルで発表させていただきました。

github.com

前日までに何回か発表練習をしたのですが40分に収まらず悩んでいたところ、 同僚から 「想定聴講者を"中級者"にしているじゃないですか。基本的なところはバッサリと飛ばしちゃっていいいんじゃないですかね。」 という 素晴らしいアドバイスを頂き、当日はなんとか40分に収まりました(1分ほど延ばしていただきましたが)。感謝。

ですが、思い返すと大事なことも言い忘れていたし、やりたかったデモもできずじまいでした。 もう少し計画的に話せればよかった。

  • yapCyet another pachimon Container の略であること
  • yapCは今回の説明をするためのリファレンス実装であること
  • パラメータが環境変数なのは、getoptsつかったりコマンドラインオプションを自前でパースするのが面倒だったので手抜きしたため
  • YAPC_CPU_QUOTA=50000CPU使用率が50%になるのはcpu.cfs_period_usのデフォルト値が100000のため
  • プロセスがforkする際に親プロセスのケーパビリティセットが子プロセスにコピーされる
  • プロセスのケーパビリティはcapsh --printでも確認できる
  • yapCではInh/Prm/Eff/Bndすべて同じケーパビリティセットにして制限を徹底する
  • setuid(2)やファイルのケーパビリティを利用しない場合は--drop=allでも良いかもしれない
  • dockerで用意したcentosのルートファイルシステムを利用したコンテナのデモ ができなかった
  • ネットワークの分離のデモではdockerのようなネットワーク構成(ブリッジ+veth)にしている
  • デモではコンテナ内でIPアドレスを割り当てているけどホスト側で割り当てることももちろん可能
  • コンテナ内から外部につなげるにはNATの設定が必要
  • straceの使い方
  • 実行中のプロセスの名前空間に入る方法
  • 既存の運用に合わせたコンテナ実装の話

とかとか。細かいところを挙げればもっとたくさん話したいことがありました。

あとで動画がアップされると思うのですが、テンパっている様子を生暖かく見守っていただけるとありがたいです。

スライドは頑張って作ったので、多くの方に見ていただければ嬉しいなーなんて思っています。

発表後には、穴が空くほど(?)繰り返し読んだLXCで学ぶコンテナ入門の著者である@ten_forwardさんに声をかけていただいたり、はてな@shiba_yu36さんとお話できて「発表してよかったなぁ」とつくづく思いました。

gihyo.jp blog.shibayu36.org

クロージングでは得票数が6位だったことが聞けてとても嬉しく思っています。投票していただいた方々、本当にありがとうございました!

@uzullaさんをはじめスタッフの皆様、大変お疲れ様でした。 最高に楽しいカンファレンスでした!!!