intern2015 01

18
LINE インターン 最終発表 所属部署 開発 1 センター

Upload: line-corporation

Post on 07-Jan-2017

26.022 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Intern2015 01

LINE インターン最終発表

所属部署 : 開発1センター

Page 2: Intern2015 01

テーマ

•  RedisCallTrackerのログ可視化ツール  •  RedisCallTrackerのログ回収パイプライン  

Page 3: Intern2015 01

RedisCallTrackerとは?

•  talk-­‐serverに対するAPIコールによって発行されるRedisクエリのトラッキングシステム

※talk-­‐server:  LINEメッセンジャーアプリのコアビジネスロジックを担当するサーバー

Page 4: Intern2015 01

呍呍呍

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

現状

•  コードの抽象化  – Redisへ直接クエリを送る部分が隠蔽されている  

•  ロジックの複雑化  – 1つのAPIコールがたくさんのRedisクエリを生み出す  

•  負荷管理の重要性の増大 – 安定したサービス提供を持続するために  

Page 6: Intern2015 01

テーマ

•  RedisCallTrackerのログ可視化ツール  – ログをもっと見やすく、分析しやすく  

•  RedisCallTrackerのログ回収パイプライン  –  talk-­‐serverから自動的にログを集める  – 将来的な拡張性・安定性のために、Apache  Ka^aをログ配信に使用  

Page 7: Intern2015 01

可視化ツール紹介

Page 8: Intern2015 01
Page 9: Intern2015 01

可視化ツール紹介 •  ストリーミングでログデータを取得  

•  何ms以上でスロークエリとするかを指定可能  

•  重複クエリやスロークエリが含まれているログをわかりやすく表示

Page 10: Intern2015 01
Page 11: Intern2015 01
Page 12: Intern2015 01

アーキテクチャ&技術スタック

Page 13: Intern2015 01

アーキテクチャ

Page 14: Intern2015 01

NEXT  STEP…

Page 15: Intern2015 01

Next  Step

•  安定性のあるシステムの構築  – 操作ミスなどでログ量が莫大になったときにどうするか…?  

•  大規模解析を見据えた設計  – 将来的にログが活用できる可能性…  

• 例)リリースバージョン毎の品質チェック  

Page 16: Intern2015 01

Next  Step①

Page 17: Intern2015 01

Next  Step②

Page 18: Intern2015 01

まとめ

•  Redisのログ解析が簡単になった  •  初めてのことが多く、すごく勉強になった  – Scala,  Play,  Ka^a,  アクターモデル,  etc…  –  talk-­‐serverのような大きなコードベース  – 大規模サービスを支える考え方・技術  

•  スケールや安定性の面が課題  

一ヶ月間ありがとうございました!