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

Preview:

Citation preview

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

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

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

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

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

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

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

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

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

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

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

はじめに

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

Digital Intelligence プラットフォーム

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

フルスタックの可視化

Digital Intelligence プラットフォーム

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

アラート

フルスタックの可視化

リアルタイム分析

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

Digital Intelligence プラットフォーム

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

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

アラート

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

フルスタックの可視化

リアルタイム分析

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

ページ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

コストが⾼くつく

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

めておく

可⽤性の監視とは?

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

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

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

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

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

ブラウザ監視/RUM

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

外形監視/死活監視

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

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

アラート

ダッシュボード

監視対象とNew Relic 製品

NewRelicDigitalIntelligenceプラットフォーム

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

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

アラート

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

フルスタックの可視化

リアルタイム分析

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

New Relic が提供すること

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

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

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

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

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

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

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

ApplicationPerformanceMonitoring(APM)

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

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

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

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

以上

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

Getting Start

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

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

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

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

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

2: デプロイ履歴機能

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

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

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

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

Deployments ページ

Overview ページ

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

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

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

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

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

Key Transactions ページ

X-Ray Session ページ

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

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

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

ヒストグラム

パーセンタイル

5: サービスマップ

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

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

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

アプリの概要ビュー

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

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

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

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

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

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

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

APM ⼊れると勝⼿に⼊る。

Real User Monitoring (RUM)

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

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

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

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

mobile Application Performance Monitoring(mAPM)

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

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

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

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

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

Server Resource Monitoring /Configuration Change Monitoring /Inventory Management

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

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

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

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

50万+ユーザー

某転職サイトの求⼈数

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

1.  監視必須

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

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

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

リスト

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

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

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

はデジタル

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

再⽣

50% USセールスは

モバイル

50% USセールスは

デジタル

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

デザイン

開発

リリース運⽤

サポート

お客様

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

Develop

Release Manage

Support

Customer Customer Care

Product Manager IT Operations

Developer

Marketing

ダッシュボードツール

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

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

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

Real-time Dashboard

Marketing

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

Data Center

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

Manage

Developer Product Manager

カスタマーケア 運用

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

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

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

Marketing Developer Product Manager

Customer Care Operations

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

理解できるが…

問題は⼈です。

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

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

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

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

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

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

デモに伺います

Recommended