intern2015 01

Post on 07-Jan-2017

26.022 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

LINE インターン最終発表

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

テーマ

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

RedisCallTrackerとは?

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

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

呍呍呍

Redis

メッセージ配信の流れ

APIコール   Redisクエリ

talk-­‐server Aさん

sendMessage GET  a:contactList  SET  b:messageBox  RPUSH  jobq:poprev  

•  一度のAPIコールで複数のRedisクエリを発行  •  例)  sendMessageでは、一度のAPIコールで平均15.3回のRedisクエリを発行している  

現状

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

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

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

テーマ

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

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

可視化ツール紹介

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

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

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

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

アーキテクチャ

NEXT  STEP…

Next  Step

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

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

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

Next  Step①

Next  Step②

まとめ

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

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

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

top related