LINE Developer Day 2015 Tokyoに参加してきました。
ヒカリエにてLINEのカンファレンスがあったので参加してきました。 会場全体がちゃんと装飾されていて、お金かかってるなぁというのが第一印象でした。
お土産も頂きました。会場限定のエンジニア向けのスタンプも貰えたので活用していきたいと思います(LGTMなどが入ってる)
発表内容自体は後ほど映像も含めて後ほど公開されるとのことです。
A-1 オープニング
LINEがプラットフォーム化を推し進めていることについての話。
使いやすいスマートフォン向けのメッセージアプリが、あまり無かった頃にリリースされ、スタンプや通話機能の追加もあり爆発的に成長してきたLINE。
今は決済やコマースといったライフに関わる所に力を入れているそうです(実際にここ4ヶ月ぐらいで4つの関連アプリをリリース)。 LINE Payには特に力を入れている模様です。 電子決済はこれからどんどん発展する分野なので期待したいですね。 個人的には家計簿付けるのが苦手なので、買ったもの全てがブラウザから容易に一覧できるような世界が早く来て欲しいです。
「SNSではトップシェアを取るのが大事」と言っていたのが印象的でした。 実際、ユーザーは人が多いところに集まり、2番手3番手は過疎化していく一極集中の傾向があります。 そのためLINEでも、ローカライズをしっかり行い、各国でトップシェアを取っていくことを目指しているそうです。
A-2 LINE Global Culture
開発組織についての話。
世界各国に拠点があり、国を超えてチームを形成しているとの話でした。 実際にグローバルでやる上で苦労した話とかをもっと聞きたかったです。
A-3 LINE Messenger for the World
懇親会などでもわりと話題になってたLINE遠征隊のお話がありました。 LINE遠征隊は、開発者が数名チームとなって、実際に現地に赴いてサービスを使い品質改善を行っていくものです。 日本では高速通信が普及していますが、国によっては通信環境が悪くLINEがまともに使えないといったことがあるため、実際に行って使ってみるというのを大事にしているそうです。 現地の人に聞いて改善といったことも出来ますが、こういうのは現地に行ってその場で調整するというのが一番効率が良いと思うので遠征隊は良い仕組みだなと思います。
調整は、1つの国で行うだけでは駄目で、パキスタン - サウジアラビアやスペイン - 南米といった国を跨いだ通信が多い箇所もあり、そういったことを気にかけながら取り組んでいるそうです。
レビューの解析では、文章内の特定のワードが急激に増えた場合など可視化できるようにしているため、何か問題が発生している場合すぐに分かるようになっていました。便利!
A-4 LINE Platform Development Chronicle
LINEのアーキテクチャの話でした。 この講演がなんだかんだで一番面白かったです。
初期のLINEは、2ヶ月で開発したということもあり、数秒に一度Pollingするという仕組みで作られていたそうです。 ユーザ数が急激に増えていく中、どのように改修しスケールするアーキテクチャにしていったかという発表でした。
FrontendをJavaからErlangに変えたり、HTTPSからSPDYに変更したり、MySQLからHBaseに変えたりと新しい技術をいろいろ取り込みつつもシンプルな構成で解決していました。LINEの技術力が感じられました。 現在、国内だと特にインフラの大きなとこだと思うので、そこらへんの挑戦の話は面白いです。
LINEは全てのサービスをマイクロサービス化しており、新しい人が入ってきてもすぐに業務に取り組めるようになっているそうです。 全体を把握するだけで大変という事例もある中かなり良いと思いました。 (けど、実際はコアの部分がめっちゃデカくなっててそこ把握しないと結局辛いとかないだろうか気になる
A-5 HBaseとRedisを使った100億超/日 メッセージを処理するLINEのストレージ
HBaseとRedisの話。 Redisは実際に自分自身もいろんなとこで使っているので話聞くのが楽しみなセッションでした。
初期の頃は、HBaseに詳しい人も居ないながらも使い始めたことでテーブル設計などで苦労したそうです。 ちゃんと設計していれば数々の問題を回避できたとのことです。 ミスったテーブル設計をしてしまい気軽にALTERとかかけられないので苦労するとかどこにもありそうな事例な気がします。 現在はテーブル設計を変更しているそうです。
redisの採用時もクラスタリングの仕組みが無かったため、sharded redis clusterの仕組みを独自に作成など色々挑戦してます。
DCに入らない問題は半年かけてマイグレーションして移設したとのこと。 物理的に入らないのは辛いですね……。 今後はDCを各地域に分割したいらしいのでまた大変そうな仕事が待っているな…という感じでした。
開発とテスト環境の構築にはDockerを使っているとのこと! こういう場面が一番Dockerがしっくりする感じがします。 私の会社でも導入していきたいです。
「サービスが拡大するにつれてサーバーは増加されるけど、エンジニアは増加しないのでいろいろな困難があった」が一番悲しいセリフでした(´・ω・`)
(わりと管理ツールが写ったけど、どこの管理ツールもなんとかストラップっぽい見た目なのは共通でした
A-6 4年に渡る LINE Android アプリの進化とチャレンジ
初期はAndroid専属デザイナーもいないため、iPhoneの見た目をそのままAndroidに反映するために余計な苦労をしたそうです。 iPhoneっぽい見た目のAndroidアプリ、今もわりとよくある気がします。
Googleのデザインガイドラインをエンジニアが確認してデザイナーに伝えていたそうですが、今はデザイナー自身が確認しているそうです。 デザイナーがデザインガイドライン見てるってすごいとかTwitterで反応がわりとあったのですが、デザイナーならむしろ最初に見て欲しい……
Google Play Serviceが使えない端末などにも対応していて、GCMが使えないため、そういった端末は独自のpush通知の仕組みを使っているとのこと。
私自身、最近Androidエンジニアになったばかりですが、ちゃんとマテリアルデザインを把握して、Androidユーザに使いやすいサービスを提供していきたいと感じました。
A-7 巨大化するスタンプ・着せかえ販売システム、その危機と復活の記録
ナイーブな実装をしており、それを解決するためにredisなどを導入した話。
LINEの着せかえといったQAコスト爆上げする仕組みをどうやって回しているのか気になったのですがそれについての話は特になかったです。
過去は地域やバージョンによって販売商品が区別されており、全ての組み合わせについて販売リストをin-memoryで事前に計算してキャッシュしていたらしい……。 今はそこは外に出しているので各APIサーバで計算したりはしてないとのことでした。
過去はトラフィックが捌ききれなかったので、プロモやイベントをずらしてもらったり分割していたらしい。 LINEは個人がスタンプを販売できるので、それがかなり負荷になっていたそうです(出た時わりとバタバタしてた印象)。
B-5 ビッグデータを活用するための分析プラットフォーム 〜データ集計した先に求められる分析技術〜
すごい分かりやすい発表でした。
エンジニアとプランナーのニーズは違うそうです。
- UIなんてどうでもいい、生のデータに触りたいのがエンジニア
- KPI、きれいなグラフで見たい、Excelダウンロードしたいのがプランナー
LINEでは別々に用意することで対応しているそうです。 プランナー向けのグラフ表示のものは既成品でヒートマップなどがそれなりのコストで手軽に出せるとのことでした。
また、現在はKPIをモニタリングする仕組みを作ってるとのこと。
すべてのKPIのトレンド分析を自動化➔時系列のトレンドを学習して、予測値を算出➔異常値を検出してアラート
KPIを毎日チェックしている人なんて少ないと思うので通知する仕組みは必要だよなぁと思いました。というかうちにも欲しいです。
B-6 ベイズ推定とDeep Learningを使用したレコメンドエンジン開発
スタンプのレコメンデーションの話。 Creators stampが出来て、スタンプ数が急速に増加したため、欲しいスタンプが見つけられるように開発したそうです。
スタンプのレコメンドをどのような手法でやるか説明していました。この分野全然知らなかったのですが、分かりやすい説明で助かりました。
仮定を立てて、それにあわせてレコメンデーションの仕組みを作るとのことで、LINEのスタンプは以下の仮定でレコメンドしているとのことです。
- 好ましいスタンプをよく使う
累計だけを見ると昔に購入したスタンプの影響が残りすぎるので、次のルールでバランスを取る
- 最近購入したスタンプをより好む
実際にレコメンドの仕組みを作ったことで、
- リリース後、ランキング1000位以降の販売数が大きく上昇
- ランキングと比較してレコメンド枠はクリック率が大きく上昇
といった効果が出たそうです。
懇親会
懇親会では、いろいろな話が聞けました。 発表準備が大変だった話や他社の話など。
LINEのAPIはよ公開してくださいとの話に関しては公開する予定はないとのこと…。 まぁそこが一番儲かる所だと思うので仕方ないとは思うのですが、LINEと連携した何かを個人でも作りたいです。
終わりに
LINEさん、素晴らしいカンファレンスをありがとうございました! エンジニア向けのイベントという感じで、エンジニアの領域に踏み込んだ話が色々聞けて楽しかったです。