Skip to content

Instantly share code, notes, and snippets.

@kakerukaeru
Last active January 27, 2020 02:38
Show Gist options
  • Save kakerukaeru/a20e0a250b9272a197bc to your computer and use it in GitHub Desktop.
Save kakerukaeru/a20e0a250b9272a197bc to your computer and use it in GitHub Desktop.
LINE dev day行ってきたメモ

LINE dev day

LINE Development Chromicle

  • 全体的なアーキテクチャ
  • LINEメッセージング基盤の進化
    • メッセージ基盤の歴史
      • 急成長やで
      • 2011/06
        • LINErelease、スマホアプリ、二ヶ月でrelease
        • 初期のアーキテクチャ
          • aaa
          • Tomcat、Apache、LB(L4)
          • Redis、MySQL
          • Spring
        • Polling + Push通知によるメッセージングの問題
          • pushの遅延、無駄なrequest-response
        • push通知に変わる通知手段 long polling
          • そのためのgateway層の導入
          • nginx層 + 独自モジュール
          • gate way
          • が、セグフォ地獄
          • プロセス間の同期がうまく行かなかった
        • Erlangの導入
          • 並行性、分散、高級、無停止deploy
        • LINE Event Delivery Gatewayの導入
          • LEGY
        • connection大杉地獄
          • 何が問題なのか
          • client ⇔ LEGY で
          • polling用のConnectionが常に一本
          • 追加でAPI叩くように新規のConnectionがぽろぽろと
        • ので、httpsからSPDYに変更
          • で、Connectionが1/3までに減少
        • 海外のレスポンスの改善
          • 海外拠点の構成
            • 最寄りのGlobal PoPに接続して、裏は専用線で通信
          • レスポンス改善
            • 非同期メッセージの導入
        • その後、色々ゴニョゴニョして今の構成に。
        • このタイミングで、MySQL → HBaseの置き換えもした
        • LINEサービスの成長に求められる要素
          • スピード、機能、品質
  • LINE流MicroService
    • MicroServiceを支える組織
      • 組織図や会社をまたぐアドホックなチーム形成
      • 短期間でinterationを回し、目的を達成したら縮小あるいは解散
    • MicroServiceを支えるprotocol管理
      • Apache Thrift
      • protobuf
      • REST
        • Pull Requestベースのディスカッション
    • MicroServiceを支えるファシリティ
      • これはちゃんと事前に用意してあげる
  • 今後やってくこと
    • マルチデータセンタ
      • Global popへの依存から離脱したい
    • MicroServiceの発展
      • 各コンポーネントで障害が発生した際の連携
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment