kinoppyd.dev

blog

products

accounts & contact

YAPC::Asia Day2 行ってきたよ

posted at 2015-08-23 00:51:04 +0900 by kinoppyd

行ってきたよ

毎度おなじみ、ブログを書くまでがYAPCだと骨の髄までたたき込まれたので書くよ。

訂正:所々スピーカーの方の名前を間違えていたので修正しました

Mackerel開発におけるScalaとGo、そしてPerl

ScalaとGoが主流のチームで、いかにPerlを含むそれ以外の言語が使われているかという、songmuさんのセッション。

Mackerelのチームでは、サーバーサイドにScala、Forward用のAgentにGoを使用しているチームで、その中で他の言語がどのような目的で使用されているのか、という話だった。

最初はScalaの話。型素敵、Option素敵、コンパイルが重いというのは、やはり誰もが思うことだけど、songmuさんのチームではコンパイルが遅すぎる事に関して「むしろバグが減ってるからトータルでとんとん」とのこと。確かに、と思いはしたが、自分のチームではコンパイルしてテスト走らせるだけで一回コーヒーが飲める位の時間がかかるから、やはり限度ってものがあると思うと感じる。

あとテストも遅い。この点に関しては、テストの書き方に対するマインドチェンジが必要、Scalaはある程度型が守ってくれるのだから、メソッド単位のテストを充実させずにもっと大きな範囲のテストを書くようにするべきとのこと。こっちは確かにその通りだと思った。

PerlとScalaの共通点は、どっちも(文法が)軽く書ける点、膨大な仕様で崩壊しかかっているようなかわいさがある点だとのこと。

Mackerelのチーム内で、PerlはMackerel-Agentのリリース自動化に使われているとのこと。やはりPerlの使いやすさは、どこにでも居るBetter shellとして使えること、テストを同梱した1ファイルのスクリプトが書けること、テキスト操作に強いこととのこと。

同様に、Rubyも各所で使われているらしく、Rubyはそのエコシステム(FluentdやCapistrano)が魅力とのこと。

言語ごとの特性を生かし、それが必要な場面で必要な言語を使うことが、MackerelチームでPerlを使う理由との事。

Perl 5.22 and You

最新のPerl5で、どんなフィーチャーが入り、どんな修正が施されたかを、Perl5のリリースマネージャー、Ricardo Signesが解説していた。

英語のトラックで同時通訳が入ったが、あまりにしゃべるのが早くて通訳がややついて行けて無かったので、頑張って英語で聞いてみた。

Perl5.22では、シジルの変な動きやハッシュリファレンスの意味不明な動き、参照に対するdefinedなど、なんでそうなってんだよ的謎動作をいくつか削除したと言っていた。

また、5.22の新しいフィーチャーとして、ダブルダイアモンド演算子(«»)や、暗黙のファイルハンドルクローズに対する警告、¥b{wb}などの新しい正規表現のメタ文字(日本語だと壊れてるけど、次のリリースには治るんじゃ無い?的なことも言ってた)、デリファレンスの新しいシンタックスなどを紹介していた。

他にも5.22で高速化した点、Perl5.24で入る予定のフィーチャーを紹介していた。

質疑応答で、「なんで<>の挙動を治さずに、«»演算子なんか追加したのさ」と聞かれ、「後方互換壊れるでしょ」と答えていて、ああやっぱりPerlだと実感した。

データ分析基盤を支える技術

TD社のrepeatedlyさんの、データ分析基板のトレンドの移り変わりと現状を解説したセッション。

結論は、「お前ら分析基盤とか安易に作ろうとすんな!」で面白かった。

HadoopとHiveってのがあるくらいしかデータ分析基盤については知らなかったけど、かなり細かい解説込みでデータ分析基盤に関しての歴史がしれてかなりためになった。

最初はRDBにガツガツデータためる方法が流行って、そのうち行指向DBじゃダメだからってことで並列化させた列指向DBが基盤として用いられ、そのうちデータをストアするときにスキーマ決めてたら扱いづらいということから分析手法とデータストアを分ける考え方が一般的になり、Hadoopが流行って、分析用のMapReduceの他にもいろいろ生まれてApache Tezが出てきて、やっぱりSQL的な方法でデータ分析したいからとPrestoが生まれ、よりリアルタイムなデータが欲しいからApach Stomeが生まれ、最近ではFluentdやBmbulkなどの収集エンジンを使って、Apache kafkaのようなキューシステムにデータを貯め、それを必要な分析基盤達がいろんなところからデータを参照する(ここでまたFluentdとかを挟んで一方的に送りつけたり、分析アプリが引っ張ってきたりいろいろ)。今のトレンドは大体こんな感じ、みたいな話ががーっと頭に流れ込んできて、データ分析基盤を知るとっかかりが一気に広がった感じがする。

まとめとしては、お前ら安易に分析基盤作ろうとするな! あとSQL書けるようになれ!

サンタクロースを支えるIT技術

ボランティアの現場でITを使って貢献する、石川 将行さんのセッション。

30分でスライド90枚&前半のボランティア紹介でかなり時間を割き、技術的な側面はほぼスライド丸流しでカットされていた……

とにかく、レンサバとか限られたリソースを最大限使うことが楽しい、そしてボランティアの現場だと、自分の使いたい技術を自分の使いたいように使える、ということが良いと言っていた。

Perlがメインじゃない現場でもPerlを使う(AdTech現場編)

Perlがメインでは無い現場でいかにしてPerlを使ったかという、masartzさんのセッション。

今のチームでは、様々な言語を使っているが、Perlを使っている場面はやや限られている。そんな中で、PHPで作ったプロダクトをPerlにバックポートした話があった。なんでそんなことをしたかと言えば、Perlはいろんな言語のいろんな文化(PSGI、Plack、Plenv、Carton、etc)を取り入れている言語だから、そう言う形で貢献してみたかったとのこと。

また、Rubyで書かれているバッチのプロトタイプを、Perlで作ってその後Rubyで再実装をした話もあった。なぜそんなことをしたかと言えば、そのバッチの目的は、異常なデータを検知して警告することだったが、既に異常なデータが大量にありすぎて、可能な限り早くの対処をしないとどんどん悪化していく。しかも、ヒアリングするたびに要件が変わる! ヤバい。そこで、まず手になれているPerlをつかって、すぐにフィードバックを受けながらデータの修正をし、まずデータに異常が無い状態を作り、そこで洗い出した要件を元に、Rubyでバッチを再実装するというもの。結果として実装時間は二倍になったが、慣れているPerlを使ったおかげでデータの修正は迅速に終わり、トータルでは時間の短縮になったという話だった。

言語が変わっても求められることは変わらない、というまとめ。

HTTP2 時代の Web

http2studyのJxckさんのセッション。HTTP2に関しては何となく知っていたけど、今現状はどうなっているんだろうなと思って聞きに行った。

とりあえず、最初から最後まで軽妙なトークでHTTP2に関する現状と、今後の展望を語っていた。

まさかRFCになるとは思っていなかったGoogleのアレ規格が、もはや策定フェーズを超えて、実際に使うフェーズまで来ている。だからこそ、HTTP2を知らずにいつの間にかHTTP2になっているのではなく、HTTP2を知って、スイッチしていくのか、それともあえて使わないかの判断が出来るようになるセッションだった。

HTTP1.1では、シンプルがゆえに様々な制約があり、現実のWebのニーズに即すには難しくなっていた。特に、HTTP head of line blockingなど、TCPの仕様によるスピード的な限界を超えるために、様々なハック(というなの地道なノウハウ)が積み重なっていた(この辺、なんだかES5とES6みたいな感覚を個人的に覚えた)。その様々なノウハウでなんとか対応していた状況に、プロトコルの変更で対抗しようというのが、HTTP2。ヘッダの圧縮や、1コネクションでデータをストリーム的に流したり、サーバーからのプッシュに対応したりなど、今までのHTTP1.1ではシンプルな仕様を守るために、どうしてもボトルネックになっていた箇所を改善している。

ただし、HTTP1.1でもHTTP2でも、本当にユーザーが体感するスピードというものを簡単に数値化はできない。心理的な感じ方や、あるいはHTTP1.1のチューニングでも十分な効果が出せているかもしれない。それを踏まえて、これからHTTP2に移行していくかどうかを、エンジニア達が理解しておく必要がある。

なお、年内にNginxがHTTP2に対応するかもしれない。そうしたら、これは間違いなく一つのターニングポイントになる。知らないうちにHTTP2を使っているということもあり得るかもしれない。

備えよう。

Lightning Talks Day 2

相変わらず早すぎてメモは出来なかったけど、昨日よりも更にハジケた感じのトークが多くて、もうずっと笑いが絶えない感じだった。

めちゃくちゃ笑ったのは、MySQL5.7の罠、botになる技術、本物のロックの話、Vimスクリプトの静的解析の闇

あと、CONBUの人たちマジですごかった。ライブコーディングはたまに見るけど、ライブインフラ設営とか普通見れない。すごい良いもの見せてもらった。

クロージング

とうとうYAPC::Asia2015も終わり。YAPC::Asiaも、いったん最終回。

Makiさんが、YAPC::Asiaの歴史を簡単に振り返って、ベストトーク賞の発表、そして大きな拍手のうちにYAPC::Asiaは幕を引いた。

そしてもしかしたら、2016……?

今年も参加してみて

すごく良かった。もう、Perlカンファレンスなんだけど、そんなの関係ないエンジニアのお祭りだ! みたいな感じがびりびり伝わってきてすごくいい。

普段使わない技術のトークとかにふらっと入って行けて、そして新しい知見を手にして出てこれる。これは本当に楽しい。

いつかはYAPCで登壇してみたいと思ったけど、とりあえず当面はその夢は叶いそうに無いのが残念。せめてLTでも応募しとけば良かったと後悔した。

ただとにかく、楽しい2日間だった。スタッフの方々本当にお疲れ様でした。

もう一個びっくりしたこと

> > YAPC::Asia is free これマジ!? [#yapcasia](https://twitter.com/hashtag/yapcasia?src=hash) > > — kinoppyd (@GhostBrain) [2015, 8月 22](https://twitter.com/GhostBrain/status/635011506891984896)