Engineer Llfe Dogear

エンジニアリング活動におけるメモやTipsを書くブログ

LINE Developer Conference 「テーマ:プラットフォーム」の参加メモ

LINE Developer Conference の2日目「テーマ: プラットフォーム」に参加してきました. そのときにとったメモを残して起きます. メモしきれなかった部分については, 以下で公開されていた内容も参考にさせていただきました.

LINE Developer Conference(Day 2 - プラットフォーム) - Qiita

聞いた内容に加えて, 参加後に, 知らなかった内容について一部情報を補足している部分もあります.

感想としては, 以下にもメモしましたが, LINE Buiness Connectという仕組みが今後どのように展開していくかが楽しみです. LINE Business Connectの目的として挙げられているように, 外部と連携したサービスのPlatformっていろんなところが今までに挑戦してきた思うのですけど, いまいちこれは成功していると思わないので, そのあたりをこのLINE Business Connectがどのように打ち破っていくのか気になります.

開催概要

  • 日時: 2014年4月17日(木) 17:00〜19:00
  • 場所: LINE株式会社 渋谷ヒカリエ 27F カフェスペース
  • 参加者に関して
    • 人数: 約150人 + 周りにLINEの開発者のみなさま
    • 傾向: 20代, 30代男性が多い(エンジニアの方限定とされていたため?)

講演の流れ

  1. LINEのサービス概要について
  2. LINE GAMEのPlatformについて
  3. LINEの Platformについて
  4. Fire Side Chat(パネルディスカッション)

今回は1〜3についてメモを残します.

LINEのサービス概要について

LINEの現在

  • 今年4月にユーザ登録数4億人突破
    • 100億メッセージ/day
    • グローバルに展開
      • 13ヶ国語のサポート
      • LINEのBranch: 日本, 韓国, タイ, スペイン, 台湾, USA + 9カ国の連絡事務所
        • 格好のマーケットの動きをキャッチして伝達して迅速に対応する
    • LINEの開発拠点: 日本(東京)と韓国がメイン + 大連, 北京, 福岡
    • LINE遠征隊: 全世界を回って世界の状況を観察
      • 世界の半分以上?を観察対象(世界地図の約半分くらいは対象国だった)
      • グローバルにサービスを展開し且つ高い品質を保つ

LINEのユーザ登録数の推移は以下を参照

【LINE】LINE、登録ユーザー数が世界4億人を突破

LINEの競争相手

  • Facebook
  • Whats App
    • 欧米で人気のメッセージ交換サービス
  • WeChat
    • 中国で人気の無料通話サービス

サービスカテゴリー

メモしたサービスカテゴリーを図で表します.

f:id:dogear11:20140428000518p:plain

各国のニーズにあったサービスの展開

  • 台湾の例
    • LINE whosecall
      • 知らない番号からの電話やSMSの発信者情報をすぐ識別し、特定の番号からの着信拒否
  • 日本の例
    • 漫画, 占い, モールなど..
    • 新しく「Creators Market」が登場
      • 一般のクリエーターがLINEのスタンプを作成して, 販売できるサービス

LINE GAMEのPlatformについて

LINE GAME について

  • 2012年11月サービス開始(約1年半)
  • 人気の上位アプリ
    • LINE POP : 19カ国でトップ10入り, 4000万DL
    • LINE Cookie Run : 1000万DL(1ヶ月で), 日本以外が70%
    • LINE Disney ツムツム : 400万DL(2週間で)
  • ゲーム全体で3億DL
  • ゲームタイトル数は約50
  • LINEGAMEのDeveloperはグローバルに展開

LINE GAME Platformについて

  • ミッション
    • 3rd party, 内製のゲームがLINEGAMEとして簡単につなげる
    • 安定的且つ安心してユーザに届ける
    • 開発者にとって開発しやすい環境の提供
  • 3rdパーティ向けSDKとサーバのAPIの提供
    • SDKの種類
      • Logging(クラッシュログ etc), Notice(メンテナンス, お知らせ通知etc), Present, Ranking(ランキング支援), Extra, Security, auth/login, IAP/IAB, KPT, Webview, push
    • サポートプラットフォーム
  • バックエンドの改善
    • Before
      • GAME毎に専用サーバがあり, その下にPlatformが大きくある
      • 管理しやすいが, あるGAMEに急激に負荷がかかった場合, 他のGAME全体に影響してしまう
    • After
      • GAME毎に専用サーバがあり, その下に専用のPlatformがある
      • GAMEごとに必要な機能をPlatformに入れるよう対応

LINE GAME Monitoringについて

  • Server System
    • CPU, Memory, Disk, Load average, Network, Process
  • Application
    • Log, Health check, Crash Log
      • ログレベル別, サービス別, ホスト別で単位時間あたりの件数を検索することができる
  • CS abusing
    • 利用者からのお問い合わせ
    • 不正行為のモニタリング
      • スコア改竄, アプリ内データの改竄を検知
      • いち早く不正行為を検知してリアルタイムに通知する
        ⇨ 大きな問題になる前に障害を防ぐ

ESPERについて

ESPERについては以下を参照
Esper - Complex Event Processing

  • イベントストリームの結合, 統計的な解析とフィルタリング, グルーピングをリアルタイムに処理

    • INPUT: 端末やSDKから送られてくるイベント
    • OUTPUT: EPLと呼ばれる言語でフィルタリングされた結果
  • RTA: Real Time-Access

    • 単位時間あたりのゲームへのアクセス数

      • お昼の時間, 夜寝る前にあがったりする様子がみえる
      • イベントなどがあがると上がる
      • データに不整合があるとすぐにその不整合を検知でき対応できる
    • 5min RTA monitoring test case (ESPERを使った簡単なモニタリング例)

      1. クライアントの端末から[アプリケーションID,OS,ユーザの暗号化されたハッシュの値,リージョン]をイベントして送る
      2. Web ServerからESPERに送る
      3. ESPERのエンジンでタイムバッチで5minおきにgroup by した結果をリスナーで検知してMy SQLに output
        ※最初はWeb Serverで後ろのHadoopで分散処理しようとしたが間に合わなかった
      4. 集計結果をさらに設定した条件でリアルタイムに分析することで, 条件に一致したwarningを検知する

今後取り組みたいこと

  • LINEからGAMEの人気が出るのではなく, GAMEからLINEの人気がでる逆パターンを目指す

LINE Platform(LINE本体について)

現状

  • ゲームのタイトル数が50以上
  • LINE漫画, LINE モール, などゲーム以外のアプリも増えている
  • GAME Platform特有の機能ではなく, もっと汎用的な機能をLINEと統合して使いたいという要望
    ⇨ 「Channel Gateway」と呼ばれる GAMEもファミリーアプリもすべてを網羅した汎用のプラットフォームがGAME Platformの下に存在(LINE Platformじゃないのか?という発表者自身のツッコミ)
    • Why Channel Gateway?
      • GAMEやファミリーアプリなどLINEとなんらかの連携をして機能する別のアプリやサービスを総称してChannelと呼んでいる
      • LINEとChannelの間を橋渡ししてくれる出入り口がChannel Gateway

Channel Gatewayについて

  • Channel Gatewayの構成
    • Authentication
      • LINE StoreのLoginや, アプリのユーザ認証に利用
      • oAuth2をベース(ほとんど準拠)
    • API
      • Profile
        • 認証を要求したユーザのID, 顔写真, ニックネームなどを取得
      • Friend list
        • ソーシャル機能といして, 友達のリストと友達のプロフィールを取得
      • Send Message
        • 別のユーザに対してメッセージを送る
      • Post Timeline
        • タイムライン機能にPostする(ハイスコア取りましたよ!とか)
  • Channel GatewayAPIの仕組み
    • RESTful API
    • SDK
      • iOS, Android向けに提供
      • High-Level API を提供(RESTful APIを直接た叩く必要がない)
      • Objective-C, Javaのメソッド呼び出しで簡単に呼び出し可能
      • httpsも気にしなくてすむ
  • 規模
    • 1億6000万request: 1日のfriendly APIのアクセス数

LINEアプリのPlatformに対する違和感(何か物足りない)

  • LINEアプリの本質って?

    • メッセージのやりとり
      ⇨ プラットフォームとして, メッセージを扱うことではじめてLINEらしさが出るのでは!?
  • LINE Business Connectの登場

    • ユーザはアプリからメッセージをスタンプで送ることで各種サービスを利用できる
      • ピザスタンプを押せば実際にピザが届く
      • レンタルビデオの返却メッセージが前日に届く
      • タクシースタンプを押す事でタクシーの手配
        ⇨ それぞれの会社が独自のサービスで実現することもできるが, LINEでひとまとめにできることが手軽で魅力的

LINE Business Connectを利用した実例

  • 放送番組でLINE経由で意見を募集
    • いっぷく! (継続中)
    • 東京LIVE24 (終了)

LINE Business Connectの技術的側面

  • 仕組み
    • LINEが土管となってメッセージをやりとり

f:id:dogear11:20140428223225p:plain

  • ピザの例

f:id:dogear11:20140428223500p:plain

LINE Developersサイトを準備中(一般公開はまだ)

  • GAMEを作ったり, アプリを作ったり, LINE Business Connectで何か作ったりすることを目的
    • 技術情報
      • SDK, ドキュメント
    • Channelの登録
      • 共通鍵の発行

LINEの裏側の仕組み (LINEのクライアントとサーバの技術的な仕組み)

  • SPDYを拡張したものを利用
    • クライアントはLINEアプリのみという前提のもと, クライアント不明の場合の手順を省いてやり取りを削減
    • 通信の遅い国に対しては, 通信を速くする仕組みを導入して最適化
  • LEGY(LINE Event Gateway)
    • クライアントとのセッションを管理しているプログラム
      • LEGY Server Push
      • LEGY Encryption
  • LINEのStorage, DB
    • Redis cluster(redis, redis) + MySQL + HBase HA + storm + Mongo DB という仕組み
      • Redis (キャッシュ機能に利用): 30TB
      • Hbase(サービスのメインストレージ): 1PB
      • Hadoop(Log analyze, statistics): 7PB(42%利用)

Fire Side Chat

こちらの内容に関しては省略します.