#infrapp2012に行ってきました
去る2012/2/10(金),11(土)に開催された インフラ&アプリエンジニア合同合宿 #infrapp2012 に参加しました。
とても楽しく、貴重な経験ができていい2日間でした。
金曜20:00に集合して、初日はいきなり23:00頃まで懇親会。
懇親会中にテーマ決め&チーム分けをして、その後はチームごとにひたすら作業。
好きな時に寝て、好きな時に起きるスタイルで翌日18:00までコツコツとがんばりました。
テーマ・チーム決め
テーマは主催さんたちが3つほど用意していましたが、それよりも思いついたやりたいものを優先ということで3チーム中2チームが自由選択でした。
懇親会でワイワイ話してる中でなんとなく気になることが形になってきて、なんとなくその場の流れでテーマごとにチームをつくるという極めてオトナな方法でテーマ・チームが決まりました。
今回は @sguaynさん、@do_akiさん、@yut148さんと4人で「Ruby on Rails or Redmineのプロファイラ作ろうか」って話でスタートしました。
命名:チームますだっく、だったんですが、チーム決めの中で@masudaKさんが移籍流出してしまい名前負けに…(ノД`)
ちなみに採用されなかったけど、「WordPressをhiphop対応させる」なんてアイデアも出てました。
紆余曲折
懇親会から帰ったらすぐに作業開始。
なんせテーマがフワフワしてるので、まずは各種言語のプロファイラを調査…してたら眠い…ということでうちのチームは1:00頃に早仕舞。
翌日がんばることにします。
翌日になってみたらみたで、さてどうしましょうという感じ。
最終的には「大事なのはデータのvisualizationだ!」ということで、ログをvisualizeするツールをつくることにしました。
もう思いっきり@kazeburoさんインスパイアって感じ。
このログがメンバー持ち込みのリアルログなもんだから、このあといくつかの問題を引き起こすことに…
ようやっとスタート
最終日の朝にテーマが決まるというスロースターターぶりを披露した我々ですが、アーキテクチャをざっくりと決めて9:30頃(うろおぼえ)には手を動かし始めました。
決めたことはざっくりこれだけ。
- アーキテクチャ: fluentd -> mongodb -> node.js -> JavaScript側でグラフ描画
- 担当
- ログファイル -> fluentd @netmarkjp
- fluentd -> mongodb @yut148
- mongodb -> view @do_aki
- visualize @sugyan
fluentdはTreasureDataのリポジトリからtd-agentをyumでさっくりインストール。fluent-plugin-mongoも入っててラクチン。
mongodbも10genのリポジトリからyumでさっくりインストール。
node.jsはちょっとよくわからなかったけど、nvmからインストール。
構築超簡単。
自分はfluentdもmongodbもnode.jsもちゃんと触ったことなくてどうなるかドキドキだったけど、簡単でえがった。
決まってからはさすがにみんな手が早くて、色々な問題に遭遇しつつだったけども18:00の締め切りまでになんとか形にすることができました。
↓発生してた諸問題(一部)
- fluentdにencodeできない文字列を渡したとき、複数行まとめて入力してfileに出力していると途中で出力が途切れる(未解決)
- リアルログならではの「想定外のデータ」が引き起こした問題でした
- fluentd -> mongodbデータ連携してるときに、一気にでかいデータを渡すと
buffer_chunk_limit
を小さく設定してもExceded maximum insert size of 16,000,000 bytes
のエラーになる(@repeatedlyさんが対応してくれてる) - highcharts.jsで棒グラフに3分分(3〜4桁くらい)のデータを渡すとブラウザが固まる。折れ線グラフなら大丈夫。(未解決)
18:00で作業終了して、発表会。
みなさんちゃんと形にしてて、やっぱ作れる人はいいね〜と思った次第。
解散した後は有志で月島までいってもんじゃしながら打ち上げしてきました。うまかった!w
まとめ
どうにも締まらない文章で大変申し訳ないんですけど簡単にまとめると、とても充実した2日間(1.5日)でした。
普段なら組めないような人とチームを組んで開発できて、対応とか問題解決の速さに驚くことしきり。とても勉強になりました。
また機会があれば参加したい!
運営のみなさん、お疲れさまでした。ありがとうございました。