gunosy go2015 06-02
TRANSCRIPT
GOLANG TIPSDATA PYTHONISTAの雑感
2015-06-02 @GUNOSY
1
Wednesday, June 3, 15
WHO•バクフー株式会社 柏野 雄太
•大規模リアルタイムデータのPPPP (P4)
• preprocess /process /persistence /providing
Wednesday, June 3, 15
WHO
• Zope3の開発
• Pythonがネイティブランゲージ
•いくつかの本
•バックグラウンドは宇宙物理学
•大規模データ統計解析,科学計算
Wednesday, June 3, 15
WHAT: データプラットフォーム
•大規模・リアルタイム・オンタイム
リアルタイムデータ 処理 ストア
API, 検索ストリーミング
API, 検索可視化 通知
API, 検索ストリーミング
API, 検索可視化
経済データ ES / redis / s3
異常値検知
混雑データ ES / S3変換/分類
気象データ ES/S3変換/分類
ES/Solr/mongoDB
自然言語処理/LDA/センチメント解析twitter
Wednesday, June 3, 15
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
現状
• Pythonベースのマイクロサービスによる分散処理
• asyncサーバー + メッセージング
• asnycサーバー + MQS
•大規模分散フレームワーク
•実際問題,Pythonハウスとして全然困っていない
Wednesday, June 3, 15
ただ…
• Gunosy粟飯原さん「柏野さん,Tornadoもいいけれど,Goはいいっすよ,ほんと早い」
•新しいイケてる技術に乗っておかないと老衰死する
Wednesday, June 3, 15
そこで…
•サービスのAPIの一部をGolangで置き換え
• negroni + net/http
Wednesday, June 3, 15
感想: たしかに良い
•お気軽で速い (チューンなしで倍速)
•単なるforが速い <- Pythonではforを使うと負け
•ただweb系サーバ自体の性能はほとんど変わらず…
•タイムスタンプとか普通に苦労しない
• cgoがある
• InfluxDBとか本格派フレームワークが登場してきた
Wednesday, June 3, 15
感想: つらさも…
•型がキツい
• goroutine/chanのスタイルがステキだが古くさい
•ジェネレータ的なコンカレントなスタイルが難しい
• zmqあればgorutineなくても別に困らない…
•ライブラリ等がカオス (awesome goはあるが…)
•開発エコシステムがスケールしない?
Wednesday, June 3, 15
感想: つらさも…2
• Go + MeCab / Chasen... とかつらすぎる
•結局cgoで自前バインディングという…
•といいますか,日本語の自然言語処理全般に無理すぎ感が…
•逆に必要なcのライブラリさえあれば,cgoがあれば,自力で少ない努力でなんでもできるという面はある
Wednesday, June 3, 15
感想: つらさも…3
• ML/科学計算エコシステムが未成熟
• pandasのようなデータフレームがない
• numpy/scipyのような
• ML特に深層学習などイケてる技術は壊滅…
•リアルタイムwebが未成熟
• websocketライブラリが… (net, gorilla)
Wednesday, June 3, 15
暫定的な結論
•大々的に移行するモチベーションは未だ強くはない
•しかし,実行速度速いので継続的に利用したい
•特に並列化できない処理の部分に
•他の言語に負けない領域で,尖るものがでてくることを期待したい…
Wednesday, June 3, 15
Wednesday, June 3, 15