nukamuの雑記

ある金融系の会社に勤めるエンジニア 技術系のことやら、日常のことやら

最後のYAPC::Asia Tokyoでコンテナの作り方についてしゃべりました

ブログを書くまでYAPCは終わらない!ということで…

先週末の8/21(金)、22(土)に、今年度で最後とされる YAPC::Asia Tokyo に参加してきました。初めて参加したのが多分東大開催の年だったと思うので、多分2012年…?から毎年欠かさず参加してきた YAPC::Asia Tokyo もついに最後の年ということでした。今年は最後の年だし…ということで、去年まで単なる参加者に徹してきましたが、同僚の @maokt の誘いに乗ってトークに応募してみることにしました。応募は締切日の日が変わる直前に滑り込み*1、大した宣伝もしなかったのであのとてつもない倍率の中採用されたときはビックリしましたが、きっと少しはトークの内容に興味を持ってもらえた?のかなと思います。

自分のトークについて

togetter.com

少し迷ったんですが、トークは結局英語にすることにしました。というのも、同時翻訳の準備をしてもらえそうだったので、それなら私が英語で喋れば、英語・日本語どちらでも好きなほうでトークが聞いてもらえると思ってのことです。相談の結果、自己紹介のみ両スピーカーとも日本語で、それ以降を英語+同時通訳ということにしました。もちろん英語 only の参加者は少なくはありますが一定数いるので、結果的に英語で話すことにしてよかったと思います。同時通訳を用意してくださった運営側、またネイティブでもない私が喋る英語をうまく訳してくれた(自分ではもちろん聞けなかったんですがクオリティが高かったらしい)同時通訳者の方に感謝です。

トークの内容は、" Linux コンテナを Perl で自作する"をテーマに、現在話題の Docker などで使用されている技術がどうやって実現されているのかを深堀りしていく話をしました。実際のところこの内容に Perl を使う必要性は全くなかったんですが、 YAPC だし Perl monger 向けの解説、ということで。トークを聞きに来てくれる方がどれくらい Linux の OS レベルの話に親しんでるか全く予測がつかなかったので、mount, /proc, uid / gid / capability あたりの基礎から始めたのですが、twitter での反応を見る限りは正解だったかな、と思います。前半で基礎的な話をして、後半でシステムコール unshare を使った実装の話をしました。時間的に cgroup や network name あたりは踏み込むことはできず、mount / user / pid namespace の話に集中する、といった構成を取りましたが、これもまぁ結果的にはよかったかなと思います。cgroup とかを入れてたら、多分ごちゃごちゃしすぎたかなと。

Docker や Linux コンテナ関連のトークは最近よく見ますが、これを使うとこういうことができてクールだよ、とかこういうユースケースがという話になることが多いので(機能上あたり前だけど)、実は中でこんなことが…という話にフォーカスしたものがたまにはあってもいいのかな、と思ってこの内容にしました。個人的にもこのへんの機能によって kernel のコードも少し昔のものと変わってしまったんだろうな…と思っていたので、学ぶきっかけになってよかったです。

トーク準備は全体的に少しバタバタしてしまって*2、スライドの準備も直前となってしまい、@lestrrat さん、同時通訳のスタッフさんには多大な迷惑をおかけしました。申し訳ございませんでした。

スライドは、弊社内でのしかるべき許可がおりたらアップしますので、少々お待ちを…

また、弊社ではエンジニアを積極採用しております。トーク中にもお話しましたが、Open Container Initiative などにも金融分野の会社からは珍しく参加してまして、技術的にも面白い課題のある職場だと思います。興味のある方は @nukamu までご一報を!(採用権限は全くありません笑)

YAPC::Asia Tokyo について

10年来の歴史を持つ YAPC::Asia からすると新参者だったし、多くの参加者が所属するであろう web 企業の人でもなかったので知り合いもそう多くはありませんでしたが、YAPC::Asia には毎年参加しては楽しませてもらっていました。普段 Perl もそんなに書きませんが、そんな私でも受け入れてくれる非常に懐の広いカンファレンスでした。今回が最後ということですが、交流させていただいた人たちにはまたどこかで会える気がしています。また何かしらの YAPC があるかもしれないですし、Beacon も開催されるかもしれませんし*3。先のことはわからないですが、また着々と自分がエンジニアとして成長できるよう、日常に戻って頑張っていきたいと思います。@lestrrat さんをはじめ、スタッフの皆さまには本当に感謝しています。ありがとうございました。

皆さま、3日間(人によっては4日間?)お疲れ様でした。またどこかでお会いしましょう!

*1:この時、相方の @maokt は海外出張か何かで日本にいませんでした

*2:相方の海外出張、そして自分の海外出張、の後の相方の海外旅行で2人で準備できるときはほとんどありませんでした :) 

*3:お手伝いできることがもしあればなんなりと!