SlideShare uma empresa Scribd logo
1 de 44
全世界400万人が利用する
家族アルバム「みてね」を支えるNew Relic
- 高度な改善を繰り返す開発チームにおけるNew Relicが果たす役割 -
酒井 篤 @_atsushisakai
株式会社ミクシィ
Future Stack Tokyo 2019/3/14(木) at 東京ミッドタウン ホール&カンファレンス
酒井 篤 @_atsushisakai
2011年 株式会社ミクシィに中途入社
2014年 家族アルバム「みてね」の開発を開始
2018年 みてね事業部開発グループマネージャー 兼 SRE
本日の資料について
Future StackのサイトとSpeakerDeckで公開しています。
後ほどご自由に閲覧・シェアを行っていただけます。
本日お話ししたいこと
• New Relicは高い💰というイメージがある
• どういうフェーズで導入すべきか?
• 導入後の運用コストも高く見積もられがち🤔
• New Relicを最大限に生かすための使い方を事例を交えてお話しします。
「みてね」について
「みてね」について
特徴
子どもの写真や動画を共有、整理
家族だけで安心して使える
成長を感じることができる振り返り機能
1
「みてね」について
海外展開
世界中にユーザーが拡大中
1
「みてね」開発チームの変遷
開発チームの変遷
プロダクトの歴史
立ち上げ期
エンジニア 5名
成長期
エンジニア6名
スケール期
エンジニア16名
リリース 英語版リリース 400万ユーザー
スケール期成長期立ち上げ期
リリース 英語版リリース
開発チームの変遷
プロダクトの歴史
エンジニア 5名 エンジニア6名 エンジニア16名
400万ユーザー
開発チームの変遷とともに
New Relicがどのように関わってきたか?
立ち上げ期
立ち上げ期3
プロダクトとチームの状況
• サービスリリース前の開発期
• ユーザー体験をデザイン・実装することが最重要ミッション
• エンジニアは3名からスタート
• しばらくして2名の増員
• インフラ専任のエンジニア不在
New Relicとの出会い
• AWS利用者向けStandard Plan
• APMが無料で結構使えちゃう🤔
• ただし、いまは存在しないPlan😭
• Railsプロジェクトへの導入のしやすさが抜群
立ち上げ期3
New Relicの役割
• 主にAPMを活用
• 開発環境のエラー検知
• ログの収集基盤なども用意されていない時期にとても有益だった
• パフォーマンス測定
• アプリ向けAPIのレスポンスタイムを計測
• 非同期Job Queueクラスターの処理速度
立ち上げ期3
事業立ち上げ期におけるNew Relic導入のメリット
• エンジニアはユーザー体験のデザイン・実装に集中することができる
• 開発環境の課題発見と改善を高速に回すことができる
• 開発を加速させるために最適なツールと感じていた🤗
立ち上げ期3
成長期
プロダクトとチームの状況
• サービスリリース後
• 日々インフラの課題が積み上がっていた
• サービスの価値を最大化するために新機能開発もどんどん行なっていた
• エンジニアは6〜7名程度
• 引き続きインフラ専任のエンジニア不在
成長期4
New Relicの役割
• この時期もAPMをメイン利用
• APMを中心にアプリエンジニアが運用文化を醸成しサービスを支えてきた
• 参照: 「家族アルバム みてね」を支えるモニタリング活動
• https://qiita.com/_atsushisakai/items/f2d10afa0456e0ddc43d
• 安定運用を目指すためにやっていたこと
• デイリーのヘルスチェック
• ウィークリーのメトリクス共有MTG
成長期4
事業の成長期におけるNew Relicがもたらしたもの
• 引き続き、アプリの新機能開発や改善に投資を集中させることができた
• New Relicはエンジニア間のコミュニケーションツール
• メトリクスを共通言語として改善のための活発な議論
• プログラミングやアーキテクチャのガイドラインに発展
• New Relicを中心に運用文化が醸成され、チーム自体の成長を促した💪
成長期4
スケール期
プロダクトとチームの状況
• ユーザー数が400万人を突破🎉
• 海外からのアクセスも増え始め、技術的な課題が多様化
• 現在、エンジニア 16名
• チームを3つに分割
スケール期5
現在の開発組織・役割
• アプリ開発チーム📱
• UI/UXを磨き上げ、ユーザーのより良い体験を追求する
• コンテンツ開発チーム🤔
• ML、画像認識技術を扱う研究開発
• それらを用いた振り返りコンテンツの開発
• SREチーム🤗
• サービスの信頼性に責任を持ち、他チームの開発者の効率を最大化する
• 時には、UXを向上するための分析と改善を直接的に行なっていく
スケール期5
みてね SREチームのNew Relic利用状況
• 様々な視点からインフラの課題を抽出するための分析・モニタリング
• APM: Web/Job Queueアプリケーション視点のパフォーマンス監視
• MOBILE: クライアントアプリ視点のパフォーマンス監視
• INFRASTRUCTURE: 各ホスト視点のパフォーマンス・リソース監視
• SYNTHETICS: APIの死活監視と通信内容の分析・最適化
• INSIGHTS: チーム特有の課題をメトリクスを使って定量化・可視化
スケール期5
New Relicを使ったSREチームの活動の例
• 海外からのAPIアクセスの最適化・高速化
• SLOやコスト構造の可視化
スケール期5
SYNTHETICSを使った海外からのAPIアクセスの最適化・高速化
• 世界中のロケーションからAPIリクエストを実行しパフォーマンスを測定
• 国別にAPIのリクエスト・レスポンスの結果を可視化しボトルネックを探す
スケール期5
🇺🇸 Washington, DC, からのアクセス
APIリクエストを起点とし、リソースを転送し終えるまでの
パフォーマンス分析結果がひと目で把握できる
MOBILE/INSIGHTSで海外アプリユーザーのモニタリング
• MOBILEで取得したメトリクスをINSIGHTSでダッシュボード化
• 各国からの画像や動画アップロードの速度
• AWS S3へのリクエスト状況(成功・失敗)
スケール期5
課題の分析3
課題の分析3
海外ユーザーへの最適化について詳しくは…
iOSDC 2018/DroidKaigi 2019の登壇資料にその経緯を書いています。
是非ご参照ください。
https://speakerdeck.com/_atsushisakai
スケール期5
INSIGHTSを使ったSLOやコストの可視化
• SREチームにとって重要な独自指標をINSIGHTSでダッシュボード化
スケール期5
画像追加予定
スケール期5
事業スケール期におけるNew Relicの役割
• New Relicの製品群を組み合わせて、より複雑で高度な課題を解決💪
• SLOなどチーム特有の指標を可視化し、改善活動をモチベート
スケール期5
今後の「みてね」と New Relicへの期待
「みてね」の目指す姿
• 引き続き海外展開を中心としたサービスのスケールを行なっていく
• 技術的にはコンテナベースのアーキテクチャに移行しながら最適化していく
今後の「みてね」と New Relicへの期
待6
New Relic日本法人の設立🎉
• サポートの充実
• 技術面、契約周りなど様々な面で改善されることを期待
• Future Stackをはじめ、オープンな場での活発コミュニティ活動に期待
今後の「みてね」と New Relicへの期
待6
まとめ
新規事業におけるモニタリングツールへの投資の価値とは?
エンジニアがよりユーザーの課題解決に集中するために!
まとめ7
New Relicをエンジニア文化に取り込むことで効果は最大化される
エンジニアのコミュニケーションツールとして利用しよう!
まとめ7
New Relicによる可視化がきっかけで行われてきた数多くの改善事例
さまざまな製品を組み合わせることでより多くの視点をもたらす
まとめ7
THANK YOU!!

Mais conteúdo relacionado

Mais de New Relic

Three Monitoring Mistakes and How to Avoid Them
Three Monitoring Mistakes and How to Avoid ThemThree Monitoring Mistakes and How to Avoid Them
Three Monitoring Mistakes and How to Avoid ThemNew Relic
 
Intro to Multidimensional Kubernetes Monitoring
Intro to Multidimensional Kubernetes MonitoringIntro to Multidimensional Kubernetes Monitoring
Intro to Multidimensional Kubernetes MonitoringNew Relic
 
FS18 Chicago Keynote
FS18 Chicago Keynote FS18 Chicago Keynote
FS18 Chicago Keynote New Relic
 
10 Things You Can Do With New Relic - Number 9 Will Shock You
10 Things You Can Do With New Relic - Number 9 Will Shock You10 Things You Can Do With New Relic - Number 9 Will Shock You
10 Things You Can Do With New Relic - Number 9 Will Shock YouNew Relic
 
Ground Rules for Code Reviews
Ground Rules for Code ReviewsGround Rules for Code Reviews
Ground Rules for Code ReviewsNew Relic
 
Understanding Microservice Latency for DevOps Teams: An Introduction to New R...
Understanding Microservice Latency for DevOps Teams: An Introduction to New R...Understanding Microservice Latency for DevOps Teams: An Introduction to New R...
Understanding Microservice Latency for DevOps Teams: An Introduction to New R...New Relic
 
Monitor all your Kubernetes and EKS stack with New Relic
Monitor all your Kubernetes and EKS stack with New Relic	Monitor all your Kubernetes and EKS stack with New Relic
Monitor all your Kubernetes and EKS stack with New Relic New Relic
 
Host for the Most: Cloud Cost Optimization
Host for the Most: Cloud Cost OptimizationHost for the Most: Cloud Cost Optimization
Host for the Most: Cloud Cost OptimizationNew Relic
 
New Relic Infrastructure in the Real World: AWS
New Relic Infrastructure in the Real World: AWSNew Relic Infrastructure in the Real World: AWS
New Relic Infrastructure in the Real World: AWSNew Relic
 
Best Practices for Measuring your Code Pipeline
Best Practices for Measuring your Code PipelineBest Practices for Measuring your Code Pipeline
Best Practices for Measuring your Code PipelineNew Relic
 
Top Three Mistakes People Make with Monitoring
Top Three Mistakes People Make with MonitoringTop Three Mistakes People Make with Monitoring
Top Three Mistakes People Make with MonitoringNew Relic
 
Kubernetes in the Wild: Best Practices for Monitoring
Kubernetes in the Wild: Best Practices for MonitoringKubernetes in the Wild: Best Practices for Monitoring
Kubernetes in the Wild: Best Practices for MonitoringNew Relic
 
re:Thinking the Cloud
re:Thinking the Cloudre:Thinking the Cloud
re:Thinking the CloudNew Relic
 
Our Evolution to GraphQL: Unifying our API Strategy
Our Evolution to GraphQL: Unifying our API StrategyOur Evolution to GraphQL: Unifying our API Strategy
Our Evolution to GraphQL: Unifying our API StrategyNew Relic
 
Kick Ass Data Exploration through Dashboards
Kick Ass Data Exploration through DashboardsKick Ass Data Exploration through Dashboards
Kick Ass Data Exploration through DashboardsNew Relic
 
DevOps without Measurement is a Fail
DevOps without Measurement is a FailDevOps without Measurement is a Fail
DevOps without Measurement is a FailNew Relic
 
Keeping Modern Applications Performing
Keeping Modern Applications PerformingKeeping Modern Applications Performing
Keeping Modern Applications PerformingNew Relic
 
Monitoring is Not Just for Production!
Monitoring is Not Just for Production!Monitoring is Not Just for Production!
Monitoring is Not Just for Production!New Relic
 

Mais de New Relic (20)

Three Monitoring Mistakes and How to Avoid Them
Three Monitoring Mistakes and How to Avoid ThemThree Monitoring Mistakes and How to Avoid Them
Three Monitoring Mistakes and How to Avoid Them
 
Intro to Multidimensional Kubernetes Monitoring
Intro to Multidimensional Kubernetes MonitoringIntro to Multidimensional Kubernetes Monitoring
Intro to Multidimensional Kubernetes Monitoring
 
FS18 Chicago Keynote
FS18 Chicago Keynote FS18 Chicago Keynote
FS18 Chicago Keynote
 
SRE-iously
SRE-iouslySRE-iously
SRE-iously
 
10 Things You Can Do With New Relic - Number 9 Will Shock You
10 Things You Can Do With New Relic - Number 9 Will Shock You10 Things You Can Do With New Relic - Number 9 Will Shock You
10 Things You Can Do With New Relic - Number 9 Will Shock You
 
Ground Rules for Code Reviews
Ground Rules for Code ReviewsGround Rules for Code Reviews
Ground Rules for Code Reviews
 
Understanding Microservice Latency for DevOps Teams: An Introduction to New R...
Understanding Microservice Latency for DevOps Teams: An Introduction to New R...Understanding Microservice Latency for DevOps Teams: An Introduction to New R...
Understanding Microservice Latency for DevOps Teams: An Introduction to New R...
 
Monitor all your Kubernetes and EKS stack with New Relic
Monitor all your Kubernetes and EKS stack with New Relic	Monitor all your Kubernetes and EKS stack with New Relic
Monitor all your Kubernetes and EKS stack with New Relic
 
Host for the Most: Cloud Cost Optimization
Host for the Most: Cloud Cost OptimizationHost for the Most: Cloud Cost Optimization
Host for the Most: Cloud Cost Optimization
 
New Relic Infrastructure in the Real World: AWS
New Relic Infrastructure in the Real World: AWSNew Relic Infrastructure in the Real World: AWS
New Relic Infrastructure in the Real World: AWS
 
Best Practices for Measuring your Code Pipeline
Best Practices for Measuring your Code PipelineBest Practices for Measuring your Code Pipeline
Best Practices for Measuring your Code Pipeline
 
Top Three Mistakes People Make with Monitoring
Top Three Mistakes People Make with MonitoringTop Three Mistakes People Make with Monitoring
Top Three Mistakes People Make with Monitoring
 
Kubernetes in the Wild: Best Practices for Monitoring
Kubernetes in the Wild: Best Practices for MonitoringKubernetes in the Wild: Best Practices for Monitoring
Kubernetes in the Wild: Best Practices for Monitoring
 
re:Thinking the Cloud
re:Thinking the Cloudre:Thinking the Cloud
re:Thinking the Cloud
 
Our Evolution to GraphQL: Unifying our API Strategy
Our Evolution to GraphQL: Unifying our API StrategyOur Evolution to GraphQL: Unifying our API Strategy
Our Evolution to GraphQL: Unifying our API Strategy
 
Kick Ass Data Exploration through Dashboards
Kick Ass Data Exploration through DashboardsKick Ass Data Exploration through Dashboards
Kick Ass Data Exploration through Dashboards
 
DevOps without Measurement is a Fail
DevOps without Measurement is a FailDevOps without Measurement is a Fail
DevOps without Measurement is a Fail
 
Fail Better
Fail BetterFail Better
Fail Better
 
Keeping Modern Applications Performing
Keeping Modern Applications PerformingKeeping Modern Applications Performing
Keeping Modern Applications Performing
 
Monitoring is Not Just for Production!
Monitoring is Not Just for Production!Monitoring is Not Just for Production!
Monitoring is Not Just for Production!
 

FutureStack Tokyo 19 -[事例講演]株式会社ミクシィ:全世界400万人が利用する家族アルバム「みてね」を支えるNew Relic