Download - Intern2015 01
![Page 1: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/1.jpg)
LINE インターン最終発表
所属部署 : 開発1センター
![Page 2: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/2.jpg)
テーマ
• RedisCallTrackerのログ可視化ツール • RedisCallTrackerのログ回収パイプライン
![Page 3: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/3.jpg)
RedisCallTrackerとは?
• talk-‐serverに対するAPIコールによって発行されるRedisクエリのトラッキングシステム
※talk-‐server: LINEメッセンジャーアプリのコアビジネスロジックを担当するサーバー
![Page 4: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/4.jpg)
呍呍呍
Redis
メッセージ配信の流れ
APIコール Redisクエリ
talk-‐server Aさん
sendMessage GET a:contactList SET b:messageBox RPUSH jobq:poprev
• 一度のAPIコールで複数のRedisクエリを発行 • 例) sendMessageでは、一度のAPIコールで平均15.3回のRedisクエリを発行している
![Page 5: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/5.jpg)
現状
• コードの抽象化 – Redisへ直接クエリを送る部分が隠蔽されている
• ロジックの複雑化 – 1つのAPIコールがたくさんのRedisクエリを生み出す
• 負荷管理の重要性の増大 – 安定したサービス提供を持続するために
![Page 6: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/6.jpg)
テーマ
• RedisCallTrackerのログ可視化ツール – ログをもっと見やすく、分析しやすく
• RedisCallTrackerのログ回収パイプライン – talk-‐serverから自動的にログを集める – 将来的な拡張性・安定性のために、Apache Ka^aをログ配信に使用
![Page 7: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/7.jpg)
可視化ツール紹介
![Page 8: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/8.jpg)
![Page 9: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/9.jpg)
可視化ツール紹介 • ストリーミングでログデータを取得
• 何ms以上でスロークエリとするかを指定可能
• 重複クエリやスロークエリが含まれているログをわかりやすく表示
![Page 10: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/10.jpg)
![Page 11: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/11.jpg)
![Page 12: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/12.jpg)
アーキテクチャ&技術スタック
![Page 13: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/13.jpg)
アーキテクチャ
![Page 14: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/14.jpg)
NEXT STEP…
![Page 15: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/15.jpg)
Next Step
• 安定性のあるシステムの構築 – 操作ミスなどでログ量が莫大になったときにどうするか…?
• 大規模解析を見据えた設計 – 将来的にログが活用できる可能性…
• 例)リリースバージョン毎の品質チェック
![Page 16: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/16.jpg)
Next Step①
![Page 17: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/17.jpg)
Next Step②
![Page 18: Intern2015 01](https://reader031.vdocuments.pub/reader031/viewer/2022022203/5870f8151a28ab5f528b5109/html5/thumbnails/18.jpg)
まとめ
• Redisのログ解析が簡単になった • 初めてのことが多く、すごく勉強になった – Scala, Play, Ka^a, アクターモデル, etc… – talk-‐serverのような大きなコードベース – 大規模サービスを支える考え方・技術
• スケールや安定性の面が課題
一ヶ月間ありがとうございました!