Skip to content

Instantly share code, notes, and snippets.

@dforest
Last active August 29, 2015 13:59
Show Gist options
  • Save dforest/10970803 to your computer and use it in GitHub Desktop.
Save dforest/10970803 to your computer and use it in GitHub Desktop.

LINE Conference

テレビ会議システム凄い。 ワイドディスプレイ3枚で、実際に対面しているようになってる。

Session1 LINE GAME

  • Esper CEP on LINEGame

  • Horigami Hiroyuki

  • LINE POP 4000万

  • LINE Cookie Run 1000万(1ヶ月、70%海外)

  • LINE Disney ツムツム 400万(数週間)

  • ゲーム全体で3億DL

SDK

  • Developerが便利に開発できるように様々なSDKを用意している
  • LINE Login, Logging, 不正アプリ検知, Root取得検知, etc...

Server side/API

  • GAME毎のPlatformを用意してスケールアウトの問題を改善

Monitoring

  • System: Munin?
  • Application: ログ収集, API応答時間チェック
  • Service: スコア改ざんチェック, データ改ざんチェック

Esper

  • イベントをリアルタイムに監視できる何からしい

  • イベントを溜めてSQLっぽい言語でフィルターしてリアルタイムに表示する

  • GoogleAnalyticsのEventトラッキングのすごい版?

  • Hadoopにつっこんでごにゅごにょする方法だと検知が遅いということでEsper入れた経緯がある

  • 6月にLINE GAMEをつくろうぜイベントを開催予定

Breaking TIME

  • 666名の社員
  • 40%がエンジニア

Session2 LINE Platform

  • GameもFamilyAPPも共通のベースPlatformを使う
  • Channel Gateway

Channel Gateway

  • Authentication

  • API

  • 160,000,000

  • ある1日のFriendListAPIのアクセス数

LINE Buisiness Connect

  • LINEの中でピザの注文、返却期限の通知、タクシーの呼び出しができるようになる

LINE Server side

  • SPDYをベースにしたprotocolで設計

  • USER Agentが全てLINEなので、protocolの解決を省略して速度アップを図ってる

  • 速度に対する最適化が半端ない

  • Line Event Gateway(LEGY)をERLANGで構築

  • LINE Engineer's Blog

  • 100億/日を捌かなければいけない

  • 開発当時はRedisメインとMySQL少し

  • Redis clusterを入れてRedisを増やせるようにした、でも横に増やし続けるにはお金が苦しい(Redisはインメモリ)

  • 永続化をキチンとやった上で速度を担保する必要がある

  • RedisをHbaseに置き換え→横展開

  • データからの価値を迅速に見つけるためにStorm

  • LINEストアなどのためにMongoDB

  • 現在はRedisをキャッシュ目的にHBaseの前に使ってる

  • キューを多様

  • Redis: 30TB (Cache, Message queue, Task queue, etc...)

  • HBase: 1PB (Service main strage)

  • Hadoop: 7pb 42% (Log analyzes, stastics)

  • 色々な仕事をサーバーを分散して行っている

  • サーバー間での障害が一番多いのでメッセージをロストしないようにしたりといった工夫を行っている(Message queueなど)

Fire side chat

2度と思い出したくない思い出

インフラ基盤のトップ

俺の3年どこいったってくらいの3年だった。時間に余裕なかった。 「12月事件」。2011年12月Redisクラスタを導入直後の話。クラスタが1個完全になくなってスレーブもなくなった。 ログだけがかろうじて残っていたので、ログから実データをリストアした。

Androidエンジニア

クラス数、メソッド数の制限に達してしまった。 機能追加する度にリファクタリングしたり、バイナリを分けたりした。

iPhoneエンジニア

アップデートしたときに初回だけアップデートデータをダウンロードするけど、タイマーをミスって起動する度にデータをダウンロードするようになってしまって、DDoS攻撃をユーザーがするみたいになった。サーバーパンクギリギリになった。

多言語対応

Androidエンジニア

Stringsで対応してるだけ。

UIエンジニア

ラベルの管理はXLPと呼ばれている多言語管理ツールを作って運用している。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment