Upgrade to Pro — share decks privately, control downloads, hide ads and more …

13年物プロダクトの監視を起点とした改善活動

Be47c62c1ec0ab23cb3b26e70f76cda0?s=47 money166
October 02, 2021
700

 13年物プロダクトの監視を起点とした改善活動

PHP Conference Japan 2021の発表資料

Hameeでは"ネクストエンジン"というプロダクトをPHPを使って開発・運用をしています。

ネクストエンジンは13年の開発・運用を重ねて成長してきた一方でたくさんの課題も抱えており、その課題を解決するため日々改善活動を行っています。今回は監視の観点から弊社アプリケーションエンジニアとSREエンジニアの二名が現場から生の声をお届けします。

- どんな問題があり監視を行っているのか
- どのような監視を行って改善しているのか
- アプリケーションエンジニアとSREエンジニアでどう連携を行っているか

対象
- まだ監視していない人
- 監視しているけど、うまく運用できていない人
- 13年物のプロダクト開発・運用に興味がある人

Be47c62c1ec0ab23cb3b26e70f76cda0?s=128

money166

October 02, 2021
Tweet

Transcript

  1. 13年物プロダクトの監視を 起点とした改善活動 PHP Conference Japan 2021 Hamee株式会社 日野陽平 大嶋淳司

  2. 自己紹介 日野陽平(@money166) • Hamee株式会社 • 2016年新卒入社 • Webアプリケーションエンジニア • 温泉・サウナが好き

  3. 自己紹介 大嶋淳司 (@atsusics) • Hamee株式会社 • 2020年中途入社 • SRE •

    もうすぐパパになります
  4. 今回の発表の対象 - 対象 - まだ監視をしていない人 - 監視をしているけどうまく運用できていない人 - 13年物のプロダクト開発・運用に興味がある人

  5. - Hameeとネクストエンジンについて - 抱えていた課題 - 改善方法 - まとめ 目次

  6. 目次 - Hameeとネクストエンジンについて - 抱えていた課題 - 改善方法 - まとめ

  7. 小田原でネットショップの運営と ECの業務を自動化する企業

  8. None
  9. 在庫0個 在庫0個 在庫0個 在庫0個 在庫情報の更新 A B C 在庫1個 在庫1個

    在庫1個 在庫1個 複数ショップの運営は大変
  10. ネクストエンジン

  11. EC運営の作業をラクにする機能がたくさん ネクストエンジン

  12. None
  13. - 2007年 Hamee内での提供開始  - 2008年 外部向けサービス提供開始 - 2013年 ネクストエンジンAPI公開 -

    2021年 オンプレからAWSへの移行中 2007 2021 13年機能強化・対応モール強化を続け サービス成長し続けて来ました。 ネクストエンジンの歴史
  14. - PHPとMySQLのwebアプリケーション - PHPコード - 8000ファイル - 50万行 - 処理しているプロセス

    - Webリクエストプロセス - バッチプロセス - メール受信プロセス システムと処理するプロセスに関して
  15. ネクストエンジンのバッチ処理の重要性 - ネットショップ運営の中で重要な処理がたくさん実行されて いる - ネットショップからの注文情報の取り込み処理 - 注文状情報に対して在庫を割り振る処理 - ネットショップへの在庫数更新処理

    - etc...
  16. 目次 - Hameeとネクストエンジンについて - 抱えていた課題 - 改善方法 - まとめ

  17. 改善する前の監視 - インフラ視点 - 問題が起きた場合にメールで結果を通知 - DB接続 - CPU・メモリ -

    アプリ視点 - 監視はしていない - 特定機能でのエラーメール通知
  18. 問題が発生 1: 操 作 2: 問い合わせ 3: 調査依頼 お客様 カスタマー

    サポート エンジニア 障害認知 大量のメール 改善前の障害認知方法
  19. 今回改善する課題 - お客様からのお問い合わせで障害と判明することがほとん ど(受動的) - アプリ視点での監視をしていない - 必要・不要の判断がつかないメールが多い

  20. 目次 - Hameeとネクストエンジンについて - 抱えていた課題 - 改善方法 - まとめ

  21. 理想の形 エラー、ログ レイテンシー インフラメトリクス etc Slack通知 緊急度高、ログレベル高 すぐ反応したいチャンネル 緊急度低 知っておきたいイベントが流

    れるチャンネル
  22. 理想の形 エラー、ログ レイテンシー インフラメトリクス etc Slack通知 緊急度高、ログレベル高 すぐ反応したいチャンネル 緊急度低 知っておきたいイベントが流

    れるチャンネル
  23. 実施した具体的なアクション • Datadogの整備 • パフォーマンス定点観測会

  24. 実施した具体的なアクション • Datadogの整備 • パフォーマンス定点観測会

  25. Datadogとは システム、アプリケーション、サービス横断で 監視可能な監視プラットフォーム • ログデータの分析/調査 • AWSとの連携 • リアルタイムダッシュボード構築 •

    高機能なアラート設定 Datadog公式
  26. 理想の形(再) エラー、ログ レイテンシー インフラメトリクス etc Slack通知 緊急度高、ログレベル高 すぐ反応したいチャンネル 緊急度低 知っておきたいイベントが流

    れるチャンネル Alert チャンネル Notify チャンネル
  27.  Alertチャンネル 緊急度高、ログレベル高、すぐ反応したい  ↓ ユーザー業務に支障が出ているもの (ユーザー影響が出るもの) SRE サイトリライアビリティエンジニアリング 入門 監視 モダンなモニタリングのためのデザインパターン

  28. 通知設計 Alertチャンネル ユーザー影響があるものが通知されるSlackチャンネル Notifyチャンネル ユーザー影響はないが知っておきたいイベントが通知される Slackチャンネル

  29. 実際に設定しているアラート その中でもユーザー影響が大きなもの例 • Batchエラー • Batchパフォーマンス • Webリクエストエラー(5XX,4XX)

  30. Batch エラー

  31. ログレベル設計(アプリケーション側) レベル 概要 状況 取り扱い方 例 ERROR 要対応 重要な動作に支障 発生を監視

    発生した場合に解消を試 みる バッチ失敗・パフォーマンス 低下、DB接続失敗 WARNING Weekly確認用 動作に支障 or 準正常系 発生状況を監視 多発した場合に影響が出 ているか確認 リトライで復旧可、バリデー ションエラー、操作ミス INFO 情報 正常に動作 パフォーマンス監視等に 利用 ログイン成功、バッチ成功 DEBUG デバック 開発時の 詳細な情報 本番環境では記録しない 開発時に必要に応じて利 用する Alert Notify
  32. name wait-time run-time batch1 200ms 2000ms batch2 10000ms 50ms Batch

    パフォーマンス
  33. Webリクエストエラー(5XX,4XX)

  34. 結果 • 障害発覚が早くなった • 「ユーザーからお問い合わせで障害と判明」が少なくなった • Datadogが便利なので、原因調査が楽になった

  35. 実施した具体的なアクション • Datadogの整備 • パフォーマンス定点観測会

  36. パフォーマンス定点観測会とは? 通称「パフォ会」 パフォーマンス、問題点を確認する週次MTG SREのみで実施していたが、 その後アプリケーション側でも開始 エウレカ株式会社様 パフォーマンス定点観測会の取り組み

  37. 大事にしていること 社内ドキュメントを拝借

  38. パフォーマンス定点観測会 • 毎週木曜日 15:00-16:00 • 手順 o zoomに集合 o 共有事項があれば共有

    o 3,4人になるようにブレイクアウトルーム o 各チームで確認、深堀、考察(20分ほど) ▪ Datadogダッシュボード ▪ ログ、パフォーマンス o 再度集まり、問題・気づきを共有、必要があればタスク化
  39. ダッシュボード例

  40. クエリーパフォーマンス例

  41. パフォ会起点で改善できた例 • ログレベル適正化 o ユーザー影響が出ていないのに、Alert通知されていた • 潜在的なバグ発見、修正 o ユーザー問い合わせが来ていないエラー •

    お客さんの設定ミスを発見、サポート経由での協力 o 問い合わせ前の発見 • アラートの改善 o 閾値変更、新たなアラート追加
  42. 結果 • 監視運用が回っている o 陳腐化してない!!! • アプリケーション特性を毎週見ることで傾向把握 o 在籍が長い人の肌感をデータで •

    Datadogに慣れた o 機会が増え、操作感把握 • アラート対応に積極的になっていった o 改善が進むことで、重要なアラートに絞られていった
  43. 目次 - Hameeとネクストエンジンについて - 抱えていた課題 - 改善方法 - まとめ

  44. ネクストエンジンの障害検知(改善前) 問題が発生 1: ネ クス トエ ン ジ ン を操

    作 2: 問い合わせ 3: 調査依頼 お客様 カスタマー サポート エンジニア 障害認知 大量のメール
  45. ネクストエンジンの障害検知(改善後) 問題が発生 1: ネ クス トエ ン ジ ン を操

    作 お客様 カスタマー サポート エンジニア 障害認知  アラート
  46. 課題改善から生まれた文化 - ユーザー目線で障害判断・システム改修 - アプリエンジニアとSREエンジニアの密な連携 - パフォーマンスなどのシステムの変化を疑う思考

  47. 課題に対する改善のまとめ  改善前 改善後 障害対応の確認 受動的な対応 能動的な対応 アプリからのalert 不必要な通知が大量 重要な通知に反応できない 不必要な通知が減少

    重要な通知に反応できる アプリ視点での監視 特定機能のメールのみ パフォ会で毎週確認
  48. 本題終了(次のスライドから宣伝)

  49. お知らせ PHPカンファレンス のオンラインチラシにて Hamee本店で使用できる クーポンを配布しています。

  50. Hameeでは一緒に働く仲間を募集 - 小田原に住んでる人 - 「小田原手当」制度 - 小田原に住んでいない人 - 「いざ!小田原」制度 -

    その他リモート補助制度も存 在します。 新幹線と小田急ロマンスカーの停車駅 である小田原の地の利を 活かし、通勤手段として新幹線・特急電車・飛行機・船・高速バスの 利用を可能とする 小田原周辺地域に住む社員に対して月2万円の手当金を支給する 「小田原手当」制度
  51. Hamee 採用