gunosy go2015 06-02

14
GOLANG TIPS DATA PYTHONISTAの雑感 2015-06-02 @GUNOSY 1 Wednesday, June 3, 15

Upload: yuta-kashino

Post on 06-Aug-2015

599 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Gunosy go2015 06-02

GOLANG TIPSDATA PYTHONISTAの雑感

2015-06-02 @GUNOSY

1

Wednesday, June 3, 15

Page 2: Gunosy go2015 06-02

WHO•バクフー株式会社 柏野 雄太

•大規模リアルタイムデータのPPPP (P4)

• preprocess /process /persistence /providing

Wednesday, June 3, 15

Page 3: Gunosy go2015 06-02

WHO

• Zope3の開発

• Pythonがネイティブランゲージ

•いくつかの本

•バックグラウンドは宇宙物理学

•大規模データ統計解析,科学計算

Wednesday, June 3, 15

Page 4: Gunosy go2015 06-02

WHAT: データプラットフォーム

•大規模・リアルタイム・オンタイム

リアルタイムデータ 処理 ストア

API, 検索ストリーミング

API, 検索可視化 通知

API, 検索ストリーミング

API, 検索可視化

経済データ ES / redis / s3

異常値検知

混雑データ ES / S3変換/分類

気象データ ES/S3変換/分類

ES/Solr/mongoDB

自然言語処理/LDA/センチメント解析twitter

Wednesday, June 3, 15

Page 5: Gunosy go2015 06-02

HOW: 支える技術•分散マイクロサービス

asynctornado (eposs/kqueue)asyncio (gevent/libev/libuv...)gevent/greenlet (libev+libio)node.js (libuv)

messaging ZeroMQ

MQS RQ + RedisCelery + RabbitMQ

DB

Elasticsearch / SolrRedis, MongoDBHDFS, CassandraMySQL / PostgreSQLS3

ML/SciNumpy/Scipyツールチェーンvowpal_wabbitTheano / keras / caffe

Wednesday, June 3, 15

Page 6: Gunosy go2015 06-02

現状

• Pythonベースのマイクロサービスによる分散処理

• asyncサーバー + メッセージング

• asnycサーバー + MQS

•大規模分散フレームワーク

•実際問題,Pythonハウスとして全然困っていない

Wednesday, June 3, 15

Page 7: Gunosy go2015 06-02

ただ…

• Gunosy粟飯原さん「柏野さん,Tornadoもいいけれど,Goはいいっすよ,ほんと早い」

•新しいイケてる技術に乗っておかないと老衰死する

Wednesday, June 3, 15

Page 8: Gunosy go2015 06-02

そこで…

•サービスのAPIの一部をGolangで置き換え

• negroni + net/http

Wednesday, June 3, 15

Page 9: Gunosy go2015 06-02

感想: たしかに良い

•お気軽で速い (チューンなしで倍速)

•単なるforが速い <- Pythonではforを使うと負け

•ただweb系サーバ自体の性能はほとんど変わらず…

•タイムスタンプとか普通に苦労しない

• cgoがある

• InfluxDBとか本格派フレームワークが登場してきた

Wednesday, June 3, 15

Page 10: Gunosy go2015 06-02

感想: つらさも…

•型がキツい

• goroutine/chanのスタイルがステキだが古くさい

•ジェネレータ的なコンカレントなスタイルが難しい

• zmqあればgorutineなくても別に困らない…

•ライブラリ等がカオス (awesome goはあるが…)

•開発エコシステムがスケールしない?

Wednesday, June 3, 15

Page 11: Gunosy go2015 06-02

感想: つらさも…2

• Go + MeCab / Chasen... とかつらすぎる

•結局cgoで自前バインディングという…

•といいますか,日本語の自然言語処理全般に無理すぎ感が…

•逆に必要なcのライブラリさえあれば,cgoがあれば,自力で少ない努力でなんでもできるという面はある

Wednesday, June 3, 15

Page 12: Gunosy go2015 06-02

感想: つらさも…3

• ML/科学計算エコシステムが未成熟

• pandasのようなデータフレームがない

• numpy/scipyのような

• ML特に深層学習などイケてる技術は壊滅…

•リアルタイムwebが未成熟

• websocketライブラリが… (net, gorilla)

Wednesday, June 3, 15

Page 13: Gunosy go2015 06-02

暫定的な結論

•大々的に移行するモチベーションは未だ強くはない

•しかし,実行速度速いので継続的に利用したい

•特に並列化できない処理の部分に

•他の言語に負けない領域で,尖るものがでてくることを期待したい…

Wednesday, June 3, 15

Page 14: Gunosy go2015 06-02

Wednesday, June 3, 15