Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

アプリ向け エラー・クラッシュ検知ツールの 運用品質について@Ques13th

318 views

Published on

2019年5月17日@第13回Ques
FROSK株式会社 仲井 裕紀

Published in: Technology
  • Be the first to comment

アプリ向け エラー・クラッシュ検知ツールの 運用品質について@Ques13th

  1. 1. Confidential アプリ向け エラー・クラッシュ検知ツールの 運用品質について FROSK株式会社 仲井 裕紀 2019年5月17日@第13回Ques
  2. 2. Confidential 会社紹介 Copyright (C) FROSK,Inc.,All Rights Reserved. 2 ■SmartBeat 国内No1リアルタイムエラー検知解析 ツール アプリの品質を改善し、顧客満足度向 上や継続率UPを図るツール ■FROSK株式会社 B2D(Business To Developers) というコンセプトのもと、 アプリ開発者支援ツールを開発/提供 現在 16名(CTO, エンジニア:8名)
  3. 3. Confidential 自己紹介 Copyright (C) FROSK,Inc.,All Rights Reserved. 3 リクルートにて新規事業の立ち上げや グロースを経て、2017年から現職。 サービスを通して得たアプリのグロース手 法について、情報提供を続けている 認定スクラムプロダクトオーナー 仲井 裕紀 SmartBeatプロダクトマネージャー
  4. 4. Confidential お話する前提として ちょっとだけツールの紹介! Copyright (C) FROSK,Inc.,All Rights Reserved. 4
  5. 5. Confidential リアルタイム検知はSmartBeatだけ! 5 日本初!スマホアプリのリアルタイム エラー検知・解析ツール アプリ品質の改善によるユーザ満足度向上を強力にサポート 不具合の早期発見 デバッグ/開発の効率化 カスタマーサポートの充実 継続率/レビュー評価向上 ※CPA改善、DAU向上などにも間接的に寄与 Copyright (C) FROSK,Inc.,All Rights Reserved. 次回起動時クラッシュ発生! アプリ削除 長期離脱 リアルタイム検知は SmartBeatだけ!
  6. 6. Confidential SmartBeatはエラーを原因別に分類し、柔軟なソート&フィルタが可能 6 エラーを原因別に分類し発生回数や影響ユーザー数でソート アプリバージョンやOSバージョン、デバイス毎にフィルタ可能 Copyright (C) FROSK,Inc.,All Rights Reserved. どれを直すか決めて 開発チームに共有するだけ!
  7. 7. Confidential 7 業界初 iOS, Android両プラットフォームの メモリーリークの発生回数モニタリング可能 Copyright (C) 2018 FROSK,Inc.,All Rights Reserved. イベントやキャンペーン時の 異常終了増加も検知可能 SmartBeatはメモリーリークも検知可能
  8. 8. Confidential 導入実績 8 主要大手アプリ・ゲームデベロッパー様にご利用いただいています。 導入アプリ数 2,400アプリ 月間アクティブユーザー数 1.9億人 1日あたりのエラー検出数 3,000万件以上 ご利用企業様例 Copyright (C) FROSK,Inc.,All Rights Reserved. 大手ゲーム企業様を始め、 EC、O2O、動画などさまざまなアプリにご 利用いただいております。 詳しくはHPまで (https://smrtbeat.com/)
  9. 9. Confidential なぜ、利用してくれるのか。 9Copyright (C) FROSK,Inc.,All Rights Reserved. クラッシュはアプリ運営に ネガティブな影響が たくさん
  10. 10. Confidential ちょっとだけデモ!! 落ちるデモ用の不具合アプリ作ってきました! (きっとここで5分くらい!) Copyright (C) FROSK,Inc.,All Rights Reserved. 10
  11. 11. Confidential SmartBeatの運用品質について Copyright (C) FROSK,Inc.,All Rights Reserved. 11
  12. 12. Confidential 本日は、 12 バックエンド+アプリ向けSDK の運用品質を話します Copyright (C) FROSK,Inc.,All Rights Reserved. 1. 品質管理サービスならではの運用品質 2. アプリ向けSaasであるこだわりどころ ※改善中な部分箇所もまだまだあるので ぜひアドバイスください!
  13. 13. Confidential 運用品質でキーとなってくるのは2つ 13Copyright (C) FROSK,Inc.,All Rights Reserved. お客さん待ってくれないので、、 サービスを 止めないこと 世の中の変化が早い中で、、 顧客アプリに 影響がないこと
  14. 14. Confidential 運用品質でキーとなってくるのは2つ 14Copyright (C) FROSK,Inc.,All Rights Reserved. お客さん待ってくれないので、、 サービスを 止めないこと 世の中の変化が早い中で、、 顧客アプリに 影響がないこと
  15. 15. Confidential 運用品質でキーとなってくるのは2つ 15Copyright (C) FROSK,Inc.,All Rights Reserved. お客さん待ってくれないので、、 サービスを 止めないこと 世の中の変化が早い中で、、 顧客アプリに 影響がないこと 負けたくない! (弊社CTO談)
  16. 16. Confidential お客さん待ってくれないので、、サービスを止めないこと サービスの状態を把握する Copyright (C) FROSK,Inc.,All Rights Reserved. 16
  17. 17. Confidential 常にサービスを止めたくないけど、ピンチはありました。。 Copyright (C) FROSK,Inc.,All Rights Reserved. 17 2014 2015 2016 2017 2018 サービス開始 YJによる買収 1億MAU突破 韓国市場進出 エラー検索高速化 🔥 🌋 🌋 🔥 エラー数推移
  18. 18. Confidential アプリにとって重要なタイミングにSmartBeatの負荷ピークも連動する Copyright (C) FROSK,Inc.,All Rights Reserved. 18 2014 2015 2016 2017 2018 サービス開始 YJによる買収 1億MAU突破 韓国市場進出 エラー検索高速化 🔥 🌋 🌋 🔥 エラー数推移 G.W. 年始 OS update
  19. 19. Confidential 止めないために作ったマイクロサービス化された構成 Copyright (C) FROSK,Inc.,All Rights Reserved. 19 バックエンドは、すべてAWS • マイクロサービス化 • マネージド化進行中 非常に大量のコンポーネントのため、 サービスは安定しやすいが、 全員が全てを把握するのは無理。 • 各コンポーネントに、 1~2名担当を設定 • 障害時の状況の共有や対策は 担当からが多い
  20. 20. Confidential ひと目で状況がわかるモニタリングとアラートを自社ツール等で用意 Copyright (C) FROSK,Inc.,All Rights Reserved. 20 詳細なモニタリングシステム • 各コンポーネントの状態をす べて自作ツール及びZabbixでモ ニタリング(healthy, unhealthyな ど)し危険があればすぐに全員 に通知 • 障害時ログを追ったりするこ となく状況の把握が可能とな り素早い対応が可能に • Slackにアラートが届くように して会社全員が気づける仕組 み化
  21. 21. Confidential 課題も見えてきました Copyright (C) FROSK,Inc.,All Rights Reserved. 21 モニタリング/アラートの課題 • 不安定な1箇所から大量にアラートが出ている場合に、 他の箇所のアラートが埋もれてしまう • High, Disaster等で分類していても埋もれる • コンポーネントが多く、アラートの設定に関する議 論が多くなりがち 効率化できる方法があれば教えてくださいm(_ _)m
  22. 22. Confidential お客さん待ってくれないので、、サービスを止めないこと 品質改善を行い続けること Copyright (C) FROSK,Inc.,All Rights Reserved. 22
  23. 23. Confidential エンジニア:8名 チームの体制を分けて常にバックエンドの品質改善を実施 Copyright (C) FROSK,Inc.,All Rights Reserved. 23 機能追加:4名 基盤改善:4名
  24. 24. Confidential 実は急成長したために、負荷問題が出てました。。 Copyright (C) FROSK,Inc.,All Rights Reserved. 24 巨大アプリだと、エラー一覧のフィルタに 数分以上かかることもありました。。
  25. 25. Confidential 実は急成長したために、負荷問題が出てました。。 Copyright (C) FROSK,Inc.,All Rights Reserved. 25 巨大アプリだと、エラー一覧のフィルタに 数分以上かかることもありました。。
  26. 26. Confidential 実は急成長したために、負荷問題が出てました。。 Copyright (C) FROSK,Inc.,All Rights Reserved. 26 巨大アプリだと、エラー一覧のフィルタに 数分以上かかることもありました。。
  27. 27. Confidential 検索&DBシステムのリプレイス Copyright (C) FROSK,Inc.,All Rights Reserved. 27 リプレイスの概要 - 検索システムをElasticsearch(ES)にリプレイス - 既存ESではパフォーマンスが足りず、独自プラグインを開発 性能試験(一部) 1. 本番の2倍の負荷状況を作り、性能試験&チューニング 2. 自作ツールを作成し、前後の性能差/データ整合性の確認を実施
  28. 28. Confidential 1. 本番の2倍の負荷状況を作り、性能試験&チューニング Copyright (C) FROSK,Inc.,All Rights Reserved. 28 当時負荷テストのときの「CloudWatchのダッシュボード」 • 負荷ツールLocustで実負荷の数倍の負荷をかけて 各コンポーネントの動作と可用性を検証 • AWSは、大量の有意義なメトリクスを提供してくれるため 計測結果を元に、チューニングすることが一番インフラの品質向上につながる
  29. 29. Confidential 2. 自作ツールを作成し、前後の性能差/データ整合性の確認を実施 Copyright (C) FROSK,Inc.,All Rights Reserved. 29 リプレイス前後での環境を2つ用意して、リプレイス前後の性能比較を実施 - 作業は自作ツールにて実施 結果 • 元々レスポンスが早い場合においては、若干の悪化が見られたが 多くの場合において、性能改善が見られた。
  30. 30. Confidential 検索DBリプレイスの品質を維持するために気をつけたこと Copyright (C) FROSK,Inc.,All Rights Reserved. 30 どれだけ実装前に異常系も想定して設計できることと、 その想定をしっかりツール(数値)で評価できること • しっかり比較設計をする • AWS, GCP問わず、すべての可能性を比較検討 • 落とし穴を事前に読んで対応しておく • AWSなら、どのページにもトラブルシューティングガイドがある • 負荷テストは必ず商用同等かそれ以上のテストをする • テストはツールにやらせる、ツールがなければ作る工数を惜しまないこと、 修正のたびに実行することで元が取れる ↑おすすめ
  31. 31. Confidential 運用品質でキーとなってくるのは2つ 31Copyright (C) FROSK,Inc.,All Rights Reserved. お客さん待ってくれないので、、 サービスを 止めないこと 世の中の変化が早い中で、、 顧客アプリに 影響がないこと
  32. 32. Confidential 運用品質でキーとなってくるのは2つ 32Copyright (C) FROSK,Inc.,All Rights Reserved. お客さん待ってくれないので、、 サービスを 止めないこと 世の中の変化が早い中で、、 顧客アプリに 影響がないこと
  33. 33. Confidential 世の中の変化が早い中で、、顧客アプリに影響がないこと パフォーマンス影響がないこと Copyright (C) FROSK,Inc.,All Rights Reserved. 33
  34. 34. Confidential SDKはパフォーマンスの影響ないこと Copyright (C) FROSK,Inc.,All Rights Reserved. 34 SDK組み込み時のアプリのサイズの変 化量を教えてください。 SDK組み込み時のアプリパフォーマンス への影響はどれくらいですか? お客さんのアプリや端末の状況が変わっても パフォーマンス影響のないSDKが必須
  35. 35. Confidential でも、たまに、、影響が発生してしまった場合。。 Copyright (C) FROSK,Inc.,All Rights Reserved. 35 特定条件において、画面キャプチャ機 能のせいで、アプリがカクつくという 事象が発生 原因は、1秒ごとにキャプチャするパ フォーマンスの劣化 • 端末の解像度の向上とiOS12から キャプチャ用のAPIのパフォーマン ス悪化が影響していた [余談]親会社のYahoo!を通じてAppleに 問い合わせ行ったが、解決に至らず。。
  36. 36. Confidential 自社でなんとかするするしかない。 Copyright (C) FROSK,Inc.,All Rights Reserved. 36 キャプチャのパフォーマンスを計測す るためのアプリを自作し、パフォーマ ンス試験を実施 対象 - すべての端末×全キャプチャ方式 実施方式 - 手動計測し、Spreadsheetに記載 端末の入手方法 - Yahoo!の貸与端末 - 端末貸出サービス
  37. 37. Confidential ちなみに、その結果わかったことは3つ Copyright (C) FROSK,Inc.,All Rights Reserved. 37 1. アプリのコンテンツ(描画サイズではなく、特に描画面積)に依 存して、パフォーマンスが劣化する 2. キャプチャ方式は、iOS7以降に導入された新方式よりも、 iOS11,12においては、以前の方式の方がハイパフォーマンスで あった (DrawViewInHierarchy よりもRenderInContextが ハイパフォーマンス) 3. 解像度の高い、CPUパフォーマンスの低いような古いiPadなど への影響は大きかった
  38. 38. Confidential SDKパフォーマンス試験の課題点 Copyright (C) FROSK,Inc.,All Rights Reserved. 38 SDKパフォーマンス試験の課題 • 世の中に知見があまりなく、自社で仕組み作りから 進める必要がある • 端末毎に特性が異なるため、たくさんの実機を手動 で確認する必要がある 効率化できる方法があれば教えてくださいm(_ _)m
  39. 39. Confidential 世の中の変化が早い中で、、顧客アプリに影響がないこと 顧客より早く プラットフォーム動きに対応できること Copyright (C) FROSK,Inc.,All Rights Reserved. 39
  40. 40. Confidential 顧客より早く各プラットフォーム動きに対応することできること Copyright (C) FROSK,Inc.,All Rights Reserved. 40 SDKとして対応している各プラッ トフォームの動きを 常にSlackで自動共有し、 顧客よりも早い対応を検討 • 各プラットフォームの動きが 早く、急な対応が増えてきて いたため事前に知れる仕組み を構築 • AR/VR向けアプリなど多様な対 応が必要に
  41. 41. Confidential まとめ Copyright (C) FROSK,Inc.,All Rights Reserved. 41
  42. 42. Confidential まとめ Copyright (C) FROSK,Inc.,All Rights Reserved. 42 バックエンド+アプリ向けSDKの運用品質において SmartBeatが気をつけていること 1. サービスを止めないこと • サービスの状態を把握すること • 品質改善を行い続けること 2. 顧客のアプリに影響がないこと • パフォーマンス影響がないこと • 顧客より早く プラットフォーム動きに対応できること
  43. 43. Confidential アプリ品質は、クラッシュ率を~1%が当たり前な時代がきている Copyright (C) FROSK,Inc.,All Rights Reserved. 43 アプリをリリースして終わりではなく 品質管理を継続することが「当たり前な時代」において SmartBeatも運用品質も向上させていきたい。
  44. 44. Confidential ご清聴ありがとうございました! Copyright (C) FROSK,Inc.,All Rights Reserved. 44

×