だらだらと思いついたこととか書くブログ

エンジニア的なネタとか備忘録とかを書いていく予定

OSCON 2013レポート

7月に行われたOSCON2013に会社の参加制度で参加させてもらってきました。

色々と感じたことなどを忘れないうちにまとめてみようかと思います。

 

・7/21(初日)

7/21の夕方に日本を出発して、7/21のAM9:00頃にPDXに到着

直通が存在するため10時間程度のフライト時間だったのですが、アジアの近いとこしかいったことのない自分にとっては長時間。。
かなり不安でしたが睡眠+ビデオ鑑賞で以外に快適に過ごせました・・

ほとんど寝てたので、ちゃんと最後まで見れたのは踊る大捜査線のみw

 

朝に到着してからストリートカーでホテルへ

ホテルに荷物を預けてから近くにあるというショッピングセンターに向かう。

カンファレンス自体は明日からなので、ショッピングセンターでランチをとってからは各自、自由行動で夕方過ぎまでダウンタウンあたりを歩きまわり、夕方過ぎに会場入りしてレジストレーション

 

会場に「pythonista」や「Data geek」など自分の属性を表すためにシールが用意されているというgeekな会場っぷりw

とりあえず「Apache」、「Perl」と手書きで「Postfix」と書いて、プレートに貼り付ける。

その後はホテルにチェックインし、同じ会社の他の参加者と飲みながらトーク。

今回、同行させてもらった方たちが社内、社外ともに有名な方たちがいたりして、仕事関連だったりオープンソース関連だったりで色々と聞くことができました!

 

・7/22(セッション1日目)

この日受けたのは

-puppetのハンズオンセッション

-mongoDBのセッション

 

・puppetのハンズオンセッション

事前にVMの設定と必要なソースをgithubから落とす必要があっただが、うまくできず準備が未完了のまま会場入り・・

ただ他の参加者でも同じような人が多く、設定&確認の時間も取られるもののネットワーク設定がうまくできず(※この日なんとか覚えたおかげで翌日は苦労せずにすんだ)

質問をしようにも英語の壁で躊躇してしまい、質問できず・・

途中でなんとか追いついたが全体的に高度&スピードが早く、うまく理解しながらついていけず

せめてもうちょっとpuppetについて事前勉強しておくべきだったと後悔

感想としては

-英語のセッション自体は技術的な内容かつ、ハンズオンだったのでそんなに大きく理解できないところはなかった

-puppetの仕組みが少し複雑で導入のハードルがちょっと高いのでは?と感じた

 

・ランチ

ランチはいくつのテーブルに「mobile devil」、「Java(詳しくはわすれてしまった?)」など興味のある内容についてトークしながらランチできる形式になっていたが、ビビってしまい何もないテーブルに座る・・

「どこ出身か」とか「どのセッションうけるのか」とか簡単なとーくをやっとできるくらいで終了・・

 

・MongoDB

こちらはハンズオンでなく講義形式

前半はIntroductionで基礎の説明、後半はシャーディングやレプリケーションの説明

実は時差ボケやなれない環境の影響で前日よく眠れず、このセッションの後半で眠気がピークに後半はあまり頭に入りませんでした・・(最悪・・)

 

セッション終了後はホテルに戻る
その後Igniteがあったのを忘れていたが、行けばよかったと後悔

また夜から5Kランイベントがあったのだが、寝過ごしてしまい参加できず。

観光しようにも時間が遅く、近くをブラブラしてホテルのそばにお酒を飲みつつ、軽食できそうなところを発見

つたない英語で食べ物を頼もうにもうまく伝わらず。。

その後、大きなお姉さんが簡単な英語ゆっくりオーダーを聞いてくれて、どうにかピザ一切れと地ビールジョッキを注文。。

テレビのメジャーリーグダルビッシュがちょうど映っていてちょっと感動w

ピザを食べると当然のようにデカイ、ビールのジョッキもデカイww

だがピザが意外にも結構おいしく、英語の練習も兼ねてもう1枚頼むことに。。

中学レベルの英語と、指差し(恥ずかしい・・)でなんとか注文し、自分的な目標を達成w

 

その後はホテルに戻り、就寝で1日目 終

長いので次に続く・・

JTF2013に参加してみた

「serverspecの話を聞きたい」というのがメインで参加してみました。

 

参加した講演は

・Treasure Dataのクラウド戦略 via @repeatedly さん

http://www.slideshare.net/treasure-data/treasure-data-cloud-strategy

 

メガネを忘れてしまったのに後ろの方に座ってしまうという大失態・・

ただ遠くから見てもわかりやすいスライドだったのでTDを支えるシステム、戦略が細かく分かりました(今までfluentdにばっかり注目していたので、、)

 

・実践! Chefハンズオン via @zero_rootさん

http://219.117.239.190/pub/chef-handson-aws/ (※ID/パスワード無いと見れません・・)

 

chefを始めるにあたって必要なところから詳しく説明(今回はopscodeのhosted環境を利用)

非常にわかりやすかったのですが、時間内に収まりきらず後半は聞けなかたため、apacheインストールがコケたとこであえなく退場。。

資料を参考に続きをやってみようと思います

 

・serverspec: Chef/Puppetと一緒に使うサーバテストのためのテスティングフレームワーク@gosukenatorさん

http://www.slideshare.net/mizzy/serverspec-jtf2013

 

今回、一番楽し見にしていた講演でした

イマイチ理解できていなかったchef&puppetとserver specの違いや、provisioning周りの話を聞くことができ、期待以上の内容でした。

ただ、講演後にひよってしまい、質問に行けなかったのが悔やまれるとこでした。。

 

・LT

インフラメインの勉強会はメール関係でいったhbstudyのみだったので、色々と新鮮でした(笑いどころで、理解できずうまく笑えないなどありましたが。。)

個人的に特に気になったのは馬場さんのnouka

これを何とか自分の持ちプロダクトに利用できないか検討中です

@netmarkjpさんのnouka

https://bitbucket.org/netmarkjp/nouka

 

今回は会場が、会社の近くということもあり、何となく行きやすい雰囲気だったのも参加を後押しした大きな理由だったような気がします。

懇親会も、単独で来たうえ、知り合いもおらず、かなーーり不安だたのですが、いろんな人(大手の方や、地方から出てきている方もチラホラ・・)とお話させていただくことができ、とてもよい機会でした。

 

☆当日聞けなかったけど資料を見たいと思っているもの

・Gitのワークフローとアクティビティ

https://speakerdeck.com/yasuhiro/git-falsewakuhurotoakuteibitei

・JTF ハンズオン資料 via@nifty cloud

http://tily.github.io/jtf2013/#43_mysqld_

Perlbegginers#8

何となく今日からはてなに移行

 以前のブログはコチラ(大したこと書いていません) → http://profile.ameba.jp/santzen/

 

Perlbegginersにて初LTをさせていただいてきました!

参加2回目で味方もいない状態ですが、アットホームな雰囲気、初心者OKな環境に助けられました。

初LT&初keynoteとかなり不安な環境でしたが、準備段階でなごませていただいた@ytnobodyさんや、発表中にスベッても笑ってくれたみなさんにホント感謝です・・

 

忘れないうちに自分なりに感じたことをつらつらと、、

 

■よかったこと

・なんとかLTを経験できた → 経験だけでなく、LTで少しは顔を覚えたいただくきっかけにはなったかなと・・

plackの話を聞くことができた → 実際に自分で色々いじってみるイメージが出来ました

オブジェクト指向のおすすめ本についての話が出た → 気になっていた本だったので買ってみようと思います

・以前にYokohama.pmでお話させていただいた@xtetsujiさんとわずからながらお話させていただいた

・懇親会で同業種の同年代の人と話をさせていただくことができた

 

■今後の課題、反省点など

・課題もやっぱりLT → keynoteの使い方、スライドの作り方はもちろん、話しの持ってき方とか、他の人を見てると着眼点も重要だなと。。

・もっとコード書く → やっぱりコード力が低いので、せめて手を動かす

・話題に食いつく → 話題の本とか、「ああ、聞いたことあるな」で終わってしまってるので、「あ、それ読みました、いいですよね!」までいけるのがベストかなと感じました

 

全体を通してとってもいい機会でした!

前回は最後の方にちょこっと参加でしたので、今回は色んな意味で「参加した!」感が強かったです。

 

@ytnobodyさんが、「メール勉強会」なるものを企画される際に、ぜひ2回目のLTをさせていただければ!と考えています。

 

スライド

http://www.slideshare.net/sora083/pebe20130527

nginxでperl

http://library.linode.com/web-servers/nginx/perl-fastcgi/centos-5
↑のサイトを参考にnginxを入れてみた

epelリポジトリは追加済みのためyumから

sudo yum updatesudo yum install nginx make automake gcc gcc-c++ fcgi-perl wgetsudo yum install nginx fcgi-perl wgetwgetはインストール済みだった・・(いろんなとこですでに使ってるしね)

sudo chkconfig --add nginxsudo chkconfig nginx onsudo /etc/init.d/nginx start

これで起動だ・・と思ったら失敗。。

まあ原因は80番ポートが既に使われちゃってますよと・・
なのでデフォルトでの使用ポートを変更
ついでに↓のサイトを参考にfast-cgiの設定
http://abeerforyou.com/?p=429

vim /etc/nginx/conf.d/default.conf

さらにscriptも追加
その時に自動コメントアウトで困ったので↓でかいけつ
http://mj01234.blog21.fc2.com/blog-entry-544.html

で、fast-cgiを起動

sudo /etc/rc.d/init.d/perl-fastcgi start
sudo chkconfig --add perl-fastcgi
sudo chkconfig perl-fastcgi on
無事、起動できて忘れてたnginxも起動
何とかここまでいけました。。

Jenkins

・jenkinsのインストール
http://dann.g.hatena.ne.jp/dann/20111223/p2

・jenkinsにプラグインを入れる
http://ymotongpoo.hatenablog.com/entry/20120424/1335266181

とりあえずインストール+起動はOK
細かい設定やテスト環境の整備などは後日・・

fluentdでメールログをなんちゃらかんちゃら[追記あり]

・fluentdで maillog を読み込んで MongoDB に投入
http://d.hatena.ne.jp/sfujiwara/20120326/1332760934

↑の記事を参考に前から気になっていたfluentdとmongodbを連携してメールログを管理したいとおもって挑戦
yumを利用できるようにtd-agnetを使用して設定を

http://pastebin.com/XL8WLauH
参考サイトは↑

でも、なんかうまくいかない・・
とりあえず↓を参考にまずapacheの設定からやってみるか
http://dsp74118.blogspot.jp/2012/09/fluentdmongodbapacherails.html

手が止まってしまっていたここに再挑戦

色々調べてみた結果、maillogの日付表示とが現在のtd-agent.confの設定とマッチしていないことが判明・・
ググって発見した記事を参考にrsyslogの日付表示のフォーマットを変更して挑戦してみたところあっさり成功

ただrsyslogの設定はもどしたいので、fluentdのin_tailのあたりを中心にもうちょと勉強して次回に臨みたいところ

キュー管理について

キューが詰まって配信がうまくいかない・・ということがあったので、調査しつつ色々お勉強

・キューの遷移(ざっくり・・)
sendmailコマンド→maildrop→incoming→active

○各種設定項目について
http://www.postfix-jp.info/trans-2.2/jhtml/postconf.5.html


○チューニングの参考
http://hdmr.org/d/?e=18

・defferdについて
※参照サイト:http://d.hatena.ne.jp/ma8loose/20080529/1212069772

最初再送に失敗したら、defferedキューに入って、queue_run_delay(※デフォルト:1000s)ごとにdefferedキューがキューをスキャン。
スキャンしたときにキューにあるメールの時間がminimal_backoff_timeをこえてたら再送
再送失敗してしまったら、今度はdefferedキュースキャンしたとき、minimal_backoff_timeの倍の時間後に再送開始。
再送失敗してしまったら、今度はdefferedキューをスキャンしたとき、minimal_backoff_timeの倍の倍の時間後に再送開始。
再送失敗してしm(ry(※倍々ゲームの繰りかえし)
って感じでmaximal_backoff_timeをこえるまで繰り返し。
こえた後はmaximal_backoff_timeの間隔で再送。


ひとまずdefferdの再送間隔を変えてみるだけでもだいぶ変わるのでは?ということでTry