55
New Relic を使った DevOps 時代の パフォーマンス監視と障害分析⼊⾨ 宮澤信吾、岩永朝陽 @ Degica 2017.02.16

【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

Embed Size (px)

Citation preview

Page 1: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析⼊⾨宮澤信吾、岩永朝陽 @ Degica 2017.02.16

Page 2: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

プロフィール宮澤 信吾•  所属: 株式会社デジカ Ruby エンジニア兼 New Relic 担当•  エンジニア: ECや弊社決済サービス Komoju の開発•  New Relic 担当: 技術サポートやワークショップの講師

株式会社デジカ•  海外と⽇本を繋ぐ会社•  社員の半分くらい⽇本⼈以外•  決済サービス: Komoju の開発/運営とか•  Steam とか HTC とか Razer とかと取引•  New Relic の⽇本代理店兼パートナー

Page 3: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

アンケート1.  アプリケーション監視を導⼊している⼈?

2.  New Relic という名前を聞いた事がある⼈?

3.  New Relic APM を使っている⼈?

4.  New Relic APM 以外の製品を使っている⼈?

5.  インフラも⾒るひと?

6.  フロントエンドも作る⼈(主にJS)?

7.  モバイルアプリも作る⼈?

Page 4: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

Agenda•  New Relic の紹介•  パフォーマンス監視の必要性とその理由•  New Relic でできること•  New Relic APM のはじめかた (DEMO)•  New Relic APM を使った障害分析⽅法 (DEMO)•  覚えて帰って欲しい New Relic APM 便利機能トップ5•  おまけデモ (Browser / Mobile / Infrastructure) (DEMO)•  さいごに

Page 5: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

はじめに

New Relic とは SaaS 型のパフォーマンス分析プラットフォームである

Page 6: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

Digital Intelligence プラットフォーム

アプリケーション インフラ顧客体験

フルスタックの可視化

Page 7: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

Digital Intelligence プラットフォーム

アプリケーション インフラ顧客体験

アラート

フルスタックの可視化

リアルタイム分析

ダッシュボードメトリクス

Page 8: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

Digital Intelligence プラットフォーム

強固なセキュリティオンデマンドスケールマルチテナント

アプリケーション インフラ顧客体験

アラート

スケール可能なクラウドプラットフォーム

フルスタックの可視化

リアルタイム分析

ダッシュボードメトリクス

Page 9: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

ページ

平均レスポンスタイムチャートユーザー満⾜度指標

スループット分あたりのリクエスト数

遅いトランザクショントップ

エラー率サーバーリソース

直近の警告や致命的な状態などのイベント

アプリケーションパフォーマンス監視 (APM)

Page 10: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

もってかえってほしいこと1.  監視とアラート重要

2.  New Relic はフルスタックの監視プラットフォームであること

3.  New Relic は導⼊が簡単で直ぐ使える

Page 11: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

パフォーマンス監視ツールは必要なのか?

Page 12: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

パフォーマンス監視ツールはサービスを運⽤しているなら、必要サービスを発展させていきたいなら、必須

Page 13: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

パフォーマンス監視ツールはサービスを運⽤しているなら、必要

Page 14: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

パフォーマンス監視ツールを導⼊していない世界

1.  問題を検知する仕組みがない

Page 15: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

1.  問題を検知する仕組みがない•  ⾃前で計測する仕組みを作る•  カスタマーサポートからの電話(ユーザーからのクレーム)

パフォーマンス監視ツールを導⼊していない世界

Page 16: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

1.  問題を検知する仕組みがない

2.  問題の原因を特定する仕組みがない

パフォーマンス監視ツールを導⼊していない世界

Page 17: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

1.  問題を検知する仕組みがない

2.  問題の原因を特定する仕組みがない

•  ログを確認する•  開発/テスト環境で再現する

パフォーマンス監視ツールを導⼊していない世界

Page 18: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

コストが⾼くつく

1.  問題を検知する仕組みがない: 機会損失、ユーザーの信頼性の低下

2.  問題の原因を特定する仕組みがない: 調査時の⼈件費、機会損失

まとめ: パフォーマンス監視ツールを導⼊していない世界

Page 19: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

パフォーマンス監視を導⼊しているとパフォーマンスが低下したときに、⾃動的に検知し、アラート通知し、原因を特定するための情報をくれる

Page 20: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

パフォーマンス監視はサービスを発展させていきたいなら、必須

Page 21: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

ソフトウェア開発をとりまく現状

1.  進化の激しく複雑なソフトウェア開発、運⽤環境•  マイクロサービス、コンテナ、サーバーレス

Page 22: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

ソフトウェア開発をとりまく現状

1.  進化の激しく複雑なソフトウェア開発、運⽤環境•  マイクロサービス、コンテナ、サーバーレス

2.  より安定したシステムへの要望•  デジタルビジネスの加速

Page 23: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

ソフトウェア開発をとりまく現状

1.  進化の激しく複雑なソフトウェア開発、運⽤環境•  マイクロサービス、コンテナ、サーバーレス

2.  より安定したシステムへの要望•  デジタルビジネスの加速

3.  頻繁な機能追加、改善のリリース•  迅速な安定性の確保、競争⼒強化のため

Page 24: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

ソフトウェア開発をとりまく現状

1.  進化の激しく複雑なソフトウェア開発、運⽤環境•  マイクロサービス、コンテナ、サーバーレス

2.  より安定したシステムへの要望•  デジタルビジネスの加速

3.  頻繁な機能追加、改善のリリース•  迅速な安定性の確保、競争⼒強化のため

4.  チーム間/サービス間の連携コストの向上•  ⼩さなチームによる分散開発の促進

Page 25: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

つまり、安定性を維持しながら、システムを成⻑、スケールさせる体制や仕組みが必要である

Page 26: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

如何に安定した状態でスケールさせるか?

フォーカスすべき5つのこと1.  故障を想定して構築する2.  常にスケール化を意識する3.  リスクを軽減する4.  可⽤性を監視する5.  事前に問題を想定し、対策を決

めておく

Page 27: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

可⽤性の監視とは?

ソフトウェアが外部からどう⾒えているかだけでなく、内部の監視も適切に⾏う必要があります。•  サーバー監視: サーバーの健康状態を監視し、運⽤が効率的に維持できるようにする•  設定変更の監視: システムの設定を監視し、いつ変更されたのか特定できるようにす

る•  アプリケーションパフォーマンスの監視: アプリやサービスを監視し、期待どおりに

動作していることを保証できること•  外形監視: ユーザーが問題に気づく前に問題を把握できるように、アプリがユーザー

の期待どおりに機能しているかを調査できるようする•  アラート: 問題発⽣時に適切な対応者へ連絡できること

Page 28: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
Page 29: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

アプリケーションパフォーマンス監視

ブラウザ監視/RUM

モバイルアプリ(mAPM) 監視

外形監視/死活監視

サーバーリソース監視/設定変更監視

ミドルウェアパフォーマンス監視

アラート

ダッシュボード

監視対象とNew Relic 製品

Page 30: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

NewRelicDigitalIntelligenceプラットフォーム

強固なセキュリティオンデマンドスケールマルチテナント

アプリケーション インフラ顧客体験

アラート

スケール可能なクラウドプラットフォーム

フルスタックの可視化

リアルタイム分析

ダッシュボードメトリクス

Page 31: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

New Relic が提供すること

•  問題が発⽣した場合に迅速に通知する•  問題が発⽣した場合に、どこが問題の原因なのか、当たりを絞り

こめる•  問題が発⽣した場合に、その原因をコードレベルまで深掘りでき

Page 32: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

サーバーアプリケーションのパフォーマンス監視

New Relic でもっとも古い製品であり、有名な製品。

アプリケーションサーバーにエージェントを⼊れて、パフォーマンスを計測。7⾔語に対応。

アプリの平均のレスポンスタイム、スループットから各トランザクションごとのパフォーマンスも確認できる。SQL レベルまで情報が⾒えるのが特徴。

導⼊が⾮常に簡単、最短数分

ApplicationPerformanceMonitoring(APM)

Page 33: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

1.  アカウント作成 (newrelic.degica.com) •  メールが届く

2.  APM ⽤エージェントをダウンロード3.  設定ファイルのダウンロードと修正

•  ライセンスキーの追加•  アプリ名の変更

4.  アプリを起動5.  数分待つ

以上

※ 最初はトライアル期間(14⽇)のため、すべて無料で開始できます。

Getting Start

Page 34: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

⽇々のパフォーマンス監視のすゝめ

[準備]1.  ユーザー満⾜度の指標である Apdex を適切な値に設定する2.  アラートを設定し、ユーザーに影響が出る前に迅速に検知できる体制を整えておく

[障害対応]1.  アラート通知が来たら、New Relic UI にアクセスし、まずは Overview ページで概要

を把握する2.  気になるデータを⾒つけたら、Transaction やレイヤーを軸に原因を絞り込んでいく

Page 35: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

New Relic APM覚えて帰って欲しい機能トップ51. トランザクショントレース 2. デプロイ履歴管理 3. キートランザクション 4. ヒストグラムとパーセンタイル 5. サービスマップ

Page 36: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

2: デプロイ履歴機能

デプロイ時点を中⼼に前後のパフォーマンスを様々なチャート(レスポンスタイムや CPU 使⽤率等)で表⽰

[利点]1.  リリース後にシステムに異常がないか⼀

⽬で判断できる。2.  Overview ページでもデプロイタイミン

グが分かるため、リリースに関係なかったメンバでもパフォーマンスに異常があった場合に、リリースが原因ではないかと当たりがつく

Deployments ページ

Overview ページ

Page 37: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

3: キートランザクション

アプリに重要なトランザクション専⽤のパフォーマンス監視が⾏える。

[利点]1.  専⽤のページができる2.  アラートやパフォーマンス指標も専⽤の

設定が⾏える3.  X-Ray session 機能でメソッドレベルで

パフォーマンスを計測できる

Key Transactions ページ

X-Ray Session ページ

Page 38: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

4: ヒストグラムとパーセンタイル

トランザクションのレスポンスタイムのばらつきを表⽰

[利点]1.  異常値や外れ値を発⾒できる2.  トランザクションの傾向を分析できる

ヒストグラム

パーセンタイル

Page 39: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

5: サービスマップ

サービス間のアーキテクチャを表⽰

[利点]1.  アプリの構成を俯瞰して確認できる2.  どのアプリでアラートが発⽣しているの

か⼀⽬瞭然サービスマップ

アプリの概要ビュー

Page 40: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

1. Apdex、アラートを適切に設定する2. リリースしたら、デプロイ履歴をチェック3. キートランザクションを活⽤する4. レスポンスタイムのパフォーマンスが気になったら、

ばらつきも確認する5. サービスマップを⾒て、障害の場所を切り分ける

New Relic APM を効果的に利⽤するヒント

Page 41: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

ブラウザ処理のパフォーマンスを計測するツール。

-  描画やDOM処理、ネットワークな処理時間の内訳の分析

-  JS エラーや Ajax リクエストも分析可能。-  アクセス分析が可能(ブラウザ、地域等)-  SPA にも対応

イメージとしては、ブラウザ付属のパフォーマンス分析ツールでみれるデータをWebでみる感じ。

APM ⼊れると勝⼿に⼊る。

Real User Monitoring (RUM)

Page 42: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

モバイルアプリのインタラクション(画⾯操作等)、HTTPリクエストのパフォーマンスを計測。

-  クラッシュレポート機能におけるインタラクションの追跡

-  アプリのリリースバージョン毎の各種⽐較

iOS、Android の両⽅に対応。Unity のサポートも開始。

mobile Application Performance Monitoring(mAPM)

Page 43: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

クラウド時代に最適なインフラ監視

4つのインフラ監視のビュー1.  サーバーリソース(CPU/メモリ/ロードアベ

レージ等)の監視2.  変更管理3.  IT 資産管理: インストールされているパッケー

ジの管理4.  各種 AWS サービスとの統合

便利機能-  フィルタリング機能が優秀-  ダイナミックアラート

Server Resource Monitoring /Configuration Change Monitoring /Inventory Management

Page 44: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

New Relic の⽬標御社のデジタルビジネスを理解できる最初で最良の場所となること

15,000+ 10億+有料アカウント 1分あたりの 受信データ

12,500+ 新興企業1,500+ グローバル企業

⽇本でも多数のソーシャルゲームやEC系のサービスで利⽤

50万+ユーザー

某転職サイトの求⼈数

Page 45: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

おさらい:もってかえってほしいこと

1.  監視必須

2.  New Relic はフルスタックの監視プラットフォームであること

3.  導⼊が簡単で直ぐ使える。無料トライアルがあるので、是⾮試してください。

Page 46: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

プロフィール岩永朝陽•  所属: 事業開発•  New Relic担当 :営業、データビジネスの重要性のエバンジェ

リスト

株式会社デジカ•  海外と⽇本を繋ぐ会社•  決済サービス: Komoju の開発/運営とか•  New Relic の⽇本代理店兼パートナー•  社員の半分くらい⽇本⼈以外

Page 47: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

デジタルエクスペリエンスはブランドエクスペリエンス

75% カスタマーインターラクション

はデジタル

10M 1⽇のストリーミング

再⽣

50% USセールスは

モバイル

50% USセールスは

デジタル

Page 48: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

デジタルサプライチェーンと顧客との関係

デザイン

開発

リリース運⽤

サポート

お客様

Page 49: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

各事業部署によって情報共有がされていない

Develop

Release Manage

Support

Customer Customer Care

Product Manager IT Operations

Developer

Marketing

Page 50: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

ダッシュボードツール

全てのデータを俯瞰的に確認できるBI ツール的な使い⽅もできる。

-  全製品のデータを⼀括表⽰できる-  全アプリのデータを⼀括表⽰できる

NQRL と呼ばれるSQLチックなクエリを使って、リアルタイムに好きな条件、表⽰形式でデータを表⽰できる。

Real-time Dashboard

Page 51: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

Marketing

ちゃんと思ったようにシステムは動いてますか?

Data Center

例えば、チェックアウトの成功率が急に落ちた場合は、運⽤チームが急いで対応にあたる間に、同じ指標を⾒てカスタマーサポートが顧客対策を考える!

Manage

Developer Product Manager

カスタマーケア 運用

Page 52: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

Webマーケティングの広告効果でているのか?KPIは保たれているか?

カートに⼊れてからのドロップレートはどれぐらい?

正しく購⼊されているか?購⼊の成功率は維持されているか?

Marketing Developer Product Manager

Customer Care Operations

購⼊ファネルは正しく機能しているか?

Page 53: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

理解できるが…

問題は⼈です。

Page 54: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

株式会社デジカの取り組み

•  データに対してのマインドセットを全社的に変える→無理やりサイネージを社内設置

•  データコンテストを社内で実施– こんなデータを⾒てみたい– エンジニアが実装–  1位〜3位までを四半期ごとに決める

Page 55: 【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門

さいごにワークショップ(無料)も定期的に開催

⽇本 New Relic ユーザー会へ是⾮ご登録を!

プランや料⾦は製品資料を!

デモに伺います