Slide 1

Slide 1 text

インシデント対応の 成熟度とベストプラクティス 2023年9⽉4⽇ Ops JAWS Meetup #25 インシデント管理

Slide 2

Slide 2 text

Agenda 1. PagerDuty概要 2. インシデント対応の成熟度 3. Ops Guide - インシデント対応のベストプラクティス 4. AI/自動化の活用例 5. Q&A Motomu Yamada PagerDuty株式会社 Manager, Solutions Engineering X: @ymotomu_pd インシデント対応の成熟度と ベストプラクティス

Slide 3

Slide 3 text

3 PagerDuty - Wake UP, your servers are DOWN! -

Slide 4

Slide 4 text

4 Company 創業: 2009年 (2019年NYSE上場) 創業者: 元Amazonのエンジニア3名 従業員数: 1000+ 本社: ⽶国サンフランシスコ市 拠点: 6ヶ国 8拠点 Product ⾼い信頼性を誇る エンタープライズクラウドサービス 700+の外部サービスを統合する ⼀元管理システムを提供 機械学習と⾃動化により ⽣産性を向上 Customers 2万社以上の実績 100万以上のユーザー 6億以上のインシデント対応 Fortune100の65%が採⽤ PagerDuty インシデント対応ソリューション インシデントをより早く‧少ないリソースで解決 / 将来のインシデントを未然に防ぐ

Slide 5

Slide 5 text

PagerDutyインシデント対応ソリューション 導⼊効果 700以上の インテグレーション PagerDutyの優位点 ユーザー100万⼈の信頼 10年におよぶ MLデータの蓄積と ラーニング実績 ⾃動化 795% 3年間のROI 74% 予期せぬダウンタイム の削減率 85% 問題特定時間の 削減率 ご利⽤企業数 『Fortune 100』の 企業における PagerDutyの利⽤⽐率1 インシデント管理、 ITアラート、 IT⾃動化、AIOpの分野で G2リーダーに選出 出典:IDC Business Value Research, sponsored by PagerDuty, 『PagerDuty Helps Organizations Optimize Their Digital Operations Management to Create Better Value』 2021年1⽉ 顧客価値の追求 20,000 12020年12⽉3⽇現在 65% Leader 77% 問題解決までの時間 削減率 2ヶ⽉ 投資回収期間

Slide 6

Slide 6 text

リアルタイム運⽤の成熟レベル 顧客からの問い合わせが 障害検知⼿段になってい る 障害/問題管理のプロセ スが未定義 ノウハウや経験がチーム 間で共有されていない リアクティブ( 受動的) ⾃動化された障害検知 適切な問題解決担当者を 直ちに招集できる体制‧ プロセス アドホックでの情報共有 レスポンシブ( 即応的) 適切でタイムリーな情 報が提供可能 ⾃動化され、チーム間 同期の取れたレスポン スとアクション 定型化/⾃動化した振り 返りプロセス プロアクティブ (能動的) 機械学習での洞察に基 づく予測的な復旧、障 害予防 ⼀貫性が取れ、組織全 体に浸透したベスト‧ プラクティス ⾼度に⾃動化され、無 駄を排除したプロセス 継続的学習、改善、及 び予防 プリベンティブ (予防的) 6 サービスの可⽤性‧信頼性 エンジニアの⽣産性

Slide 7

Slide 7 text

PagerDutyでは2つの⽅法で インシデント対応の成熟度向上‧継続的改善を⽀援 リアルタイム運⽤の ベストプラクティスを公開 リアルタイム運⽤をサポートする ソリューションの提供 7

Slide 8

Slide 8 text

Ops Guides - https://www.pagerduty.com/ops-guides/ 2023年現在 12のガイドを公開 ● Incident Response ● Full Service Ownership ● Auto Remediation ● Best Practices for On Call Teams ● Postmortems ● Retrospectives ● Operational Reviews ● DevSecOps ● Security Training ● Internal Stakeholder Communications ● Customer Service Operations ● Business Incident Response GitHub - https://github.com/PagerDuty 8

Slide 9

Slide 9 text

Ops Guides/Incident Response - https://response.pagerduty.com/ ● インシデント対応プロセスに関する、 PagerDuty内部⽂書の縮⼩版 ● PagerDutyを利⽤していなくても活⽤可 (インシデント対応の準備‧発⽣時‧発⽣後に それぞれ何をすべきか、⼀般化して記載) ● 以下の⽅を読者として想定対象 ○ オンコールの実務担当者 ○ 現在運⽤中のインシデント対応プロセスに携わる⽅ ○ 今後、正式なインシデント対応プロセスを制定したい⽅ ● 動画のトレーニングコースや、アンチパターンも公開 Training Course - https://response.pagerduty.com/training/courses/incident_response/ Anti-Patterns - https://response.pagerduty.com/resources/anti_patterns/ GitHub - https://github.com/PagerDuty/incident-response-docs 9

Slide 10

Slide 10 text

オンコール⽂化を創る 10 ● 責めない⽂化‧共感‧⼼理的安全性 ● 睡眠時間を確保する ● メンバーには仕事だけでなく⽣活がある ● すべてのアラートに対応することは、義務ではない ● エスカレーションをためらわない 暗黙の原則: エンジニアは⼀番貴重なリソース。⼤事に扱う。

Slide 11

Slide 11 text

はじめに: これからプロセスを作成する⽅向け 11 1. 「インシデント」と「重⼤インシデント」を定義する a. 最初は重⼤度レベルは気にしなくてよい 2. 対応者を動員する⽅法を決める a. ⼿動でトリガーする⽅法を⽤意 b. インシデント専⽤のWeb会議とチャットルームを準備しておく 3. インシデント対応の役割を定義 a. まずはインシデントコマンダー、次に記録係 4. ポストモーテムテンプレートの作成 5. 練習&運⽤開始

Slide 12

Slide 12 text

アンチパターン 12 1. チーム全員をインシデント対応に呼び出す 2. エスカレーションをためらう 3. インシデント対応中にプロセスについて話し合う 4. 事後調査やフォローアップを怠る 5. 複数の役割を担おうとする 6. インシデントコマンダーに深い技術知識を要求する

Slide 13

Slide 13 text

1. 検知 2. トリアージ 3. 動員 4. 協⼒/解決 5. 学習/予防 ライフサイクル全体を通して、インシデントの状況をリアルタイムで可視化 インシデントを特定 ⾃動処理 運⽤改善のための 知⾒を提供 最適な担当者に通知 迅速な解決を⽀援 あらゆるツールから イベントを受信 架電、 SMS、メール Appプッシュ通知、チャット ⾃動エスカレーション スケジュール管理 診断‧修復作業の⾃動化 チーム内外と円滑に連携 クラウド コンテナ マイクロサービス ネットワーク アプリ‧サービス セキュリティ データベース サーバー ソーシャル PagerDuty Operations Cloud インシデントをより早く‧少ないリソースで解決 / 将来のインシデントを未然に防ぐ 担当者が最適な 通知⽅法を選択 対応履歴 MTTA/MTTR 分析 担当者の負荷状況 ポストモーテム 解決のヒントを提⽰ ● 過去の類似インシデント ● 直近の構成/コード変更 ...etc. 80%-99% ノイズ削減 700+ Integrations

Slide 14

Slide 14 text

どこで何が 起こっているのか 分からない ⼤量のアラート ⼿作業による 無駄な時間 コンテクストの提⽰ (解決のためのヒント) 繰り返し発⽣する 作業を⾃動化 ノイズ削減 PagerDutyのAIOps/Automationが解決する課題 現場の担当者が、誰でも簡単に使えることが重要

Slide 15

Slide 15 text

ノイズ削減1: アラートを⾃動でグルーピングし、不要な通知を削減する Alert Grouping 複数のアラートをグループ化し、1つのイン シデント配下に集約。不要な通知を削減し 、担当者がより重要なインシデント対応に 集中できるよう⽀援する。 仕分け⽅法は、以下3つから選択可能 1. Intelligent (推奨): アラートの中⾝と時間を元に、AIが ⾃動仕分け 2. Content-Based: 管理者が仕訳ルールを⼿動で作成 3. Time-Based: 指定した時間内に受信したアラート を1つのインシデントに集約 1

Slide 16

Slide 16 text

ノイズ削減2: ⼀過性のアラートを検知し、通知を⼀定時間差し⽌める Transient Alerts (Auto-Pause Incidents) 短時間で⾃動復旧するアラートをAIで検出 し、インシデント通知を⼀時停⽌する機能 。 ⼀時停⽌されたアラート⾃動復旧しない場 合にのみ、インシデントを作成し、対応者 に通知する。 ⼀時停⽌させる時間は、サービス後毎に指 定が可能。 1

Slide 17

Slide 17 text

17 このエラーは初めてだな。 過去に同じような問題があったか、 調べてみよう。 エラーの情報はたくさん出てくるけ ど、今回の事象とは関係なさそうだ な... 最近うちのサービスでどんな変更が あったのか、調べてみよう。 AnsibleとGithubにログインして... たくさんのインシデントがほぼ同時 に発生している。 どれから手を付けるべきだろうか。 。 この事象はうちのサービスが原因な のかな。他サービスの障害に起因し ているのでは? 他サービスは正常に動いているのか な。 AIによる支援機能: 解決のヒントの提示 担当者に十分な情報がな いと、調査・解決に時間 がかかってしまう。

Slide 18

Slide 18 text

18 このエラーは初めてだな。 過去に同じような問題があったか、 調べてみよう。 エラーの情報はたくさん出てくるけ ど、今回の事象とは関係なさそうだ な... 最近うちのサービスでどんな変更が あったのか、調べてみよう。 AnsibleとGithubにログインして... この事象はうちのサービスが原因な のかな。他サービスの障害に起因し ているのでは? 他サービスは正常に動いているのか な。 AIによる支援機能: 解決のヒントの提示 たくさんのインシデントがほぼ同時 に発生している。 どれから手を付けるべきだろうか。 。 担当者に十分な情報がな いと、調査・解決に時間 がかかってしまう。 過去の類似インシデントの対応履歴 直近の構成・コード変更履歴 他サービスで発生中のインシデント情報 大元の原因と思われる インシデントを提示 担当者が調べたり問い合わせ を行わなくても、 次のActionを取るために必要 な情報が揃っている

Slide 19

Slide 19 text

Trigger Incident Workflow Priority: P1 IF “イベントペイロード に billing_service を含 む” THEN “PriorityをP1に 変更” AND “⾃動診断Jobを実⾏” Event Orchestration Automation Actions Incident Workflows Slack Channel作成, 関係者への状況連絡, 追加のResponder招集, ...etc. Incident Workflowからの Automatin Actions/Webhook実 ⾏は今後サポート予定(2023年) インシデント 起票‧通知 Runbook Automation (SaaS) Process Automation (On-Prem) PagerDuty インシデント対応⾃動化機能 全体像 Webhook Gen AI: - Status Update/Postmortem⾃動作成 - ⾃動ジョブの作成⽀援 ⾃動診断Job ⾃動復旧Job

Slide 20

Slide 20 text

Event Orchestration (Service Rules) アラートに対する条件を複数組み合わせて 指定し、その条件を満たす場合に、指定し たActionを⾃動実⾏する機能。 Action として Suppress や Suspend (指定 した時間、インシデント化を抑⽌) や、⾃動 化の機能(Automation Actions/Webhook) を実⾏させることが可能。 例: IF “イベントペイロードに billing_service を含む” THEN “PriorityをP1に変更” AND “⾃動診断Jobを実⾏” 2 トリアージの⾃動化: アラートの条件を指定して、任意のActionを実⾏

Slide 21

Slide 21 text

2 1. Jobを整備: SME ● スクリプト ● API ● コマンド実⾏ クラウド、オンプレ、VM、 コンテナ、サーバレス サポート 契約社員 AIOps SRE Dev 2. Jobの実⾏指⽰ (PagerDutyまたは API経由) 3. Jobを実⾏ 21 PagerDuty Process Automation (旧称Rundeck) Process Automation (On-Prem版) または Runbook Automation (SaaS版) では、複数の ステップや各ステップの実⾏結果によって後続 の処理を分岐させるような複雑なワークフロー のJobの作成‧実⾏が可能。 PagerDutyの他、AWSやAnsible, Terraform, ServiceNow 等とのインテグレーションが⽤意 されており、簡単にワークフローを構築できる 。 PagerDutyからJobを呼び出す場合は、 Automation Actionsを利⽤する。 4. 実⾏結果を通知 診断・修復作業の自動化

Slide 22

Slide 22 text

2 インシデント対応に伴う、PagerDuty上の作業を⾃動化 Incident Workflows PagerDuty上で⾏う⼀連のアクションを Workflowとして定義しておき、実⾏する機 能。 インシデントのPriority等の条件を指定して おき、条件を満たした場合に⾃動実⾏させ ることができる。 実⾏できるアクションの例: ●Responderの招集 ●Zoom会議の設置 ●Slack Channel作成 ●Stakeholder追加 ●Status Update送信

Slide 23

Slide 23 text

⽣成AIによる⽀援機能1: 関係者に共有すべき情報を⾃動作成 2

Slide 24

Slide 24 text

⽣成AIによる⽀援機能2: 事後検討レポートを⾃動⽣成 2

Slide 25

Slide 25 text

⽣成AIによる⽀援機能3: ⾃動修復ジョブの作成⽀援 2

Slide 26

Slide 26 text

インシデント対応における課題と解決策 26 運⽤上の課題 ビジネスへの影響 インシデント対応を効率化‧継続的に改善するための仕組みが必要 PagerDuty Operations Platform AIOps ⾃動化 コラボ レーション 可視化 専⾨知識不要で すぐに活⽤できる AI⽀援機能 現場の担当者⾃⾝ で業務を効率化 迅速な部⾨間連携 を⽀援 影響範囲‧状況の 可視化、改善のた めのデータ提供 プロセス‧体制 Ops Guides ● ⼤量のアラート ● 初動の遅れ ● 重⼤インシデントの ⾒落とし ● 運⽤負荷の増⼤ ● 組織のサイロ化 ● 解決までに時間がか かる ● 同様の問題が繰り返 し発⽣ ● サービス停⽌ ● 受発注業務の停⽌ ● 機会損失 ● コスト増 ● 従業員の離職 ● 製品開発の遅れ ● 顧客満⾜度低下 ● ブランド価値の毀損 インシデント対応 プロセスのベスト プラクティス

Slide 27

Slide 27 text

PagerDuty Resources PagerDuty 設定ガイド(⽇本語) https://qiita.com/ymotomu/items/e6d13e5284a62e3a1100 PagerDuty 株式会社公式HP (無料トライアル申込み/導⼊事例/価格) https://www.pagerduty.co.jp/ PagerDuty 公式ユーザードキュメント: https://support.pagerduty.com/lang-ja/docs Integration Guide (モニタリングツール‧コラボレーションツール等との連携⽅法) https://www.pagerduty.com/integrations/ インシデント対応プロセスのベストプラクティス (英語) https://www.pagerduty.com/ops-guides/ https://response.pagerduty.com/ (有志のユーザー様による⽇本語翻訳版) 27

Slide 28

Slide 28 text

We empower teams with the time and efficiency to build the future. Q&A

Slide 29

Slide 29 text

Appendix:

Slide 30

Slide 30 text

1. 検知 2. トリアージ 3. 動員 4. 協⼒/解決 5. 学習/予防 ライフサイクル全体を通して、インシデントの状況をリアルタイムで可視化 インシデントを特定 ⾃動処理 運⽤改善のための 知⾒を提供 最適な担当者に通知 迅速な解決を⽀援 あらゆるツールから イベントを受信 架電、 SMS、メール Appプッシュ通知、チャット ⾃動エスカレーション スケジュール管理 診断‧修復作業の⾃動化 チーム内外と円滑に連携 クラウド コンテナ マイクロサービス ネットワーク アプリ‧サービス セキュリティ データベース サーバー ソーシャル PagerDuty Operations Cloud インシデントをより早く‧少ないリソースで解決 / 将来のインシデントを未然に防ぐ 担当者が最適な 通知⽅法を選択 対応履歴 MTTA/MTTR 分析 担当者の負荷状況 ポストモーテム 解決のヒントを提⽰ ● 過去の類似インシデント ● 直近の構成/コード変更 ...etc. 80%-99% ノイズ削減 700+ Integrations

Slide 31

Slide 31 text

Lifecycle of an Incident with PagerDuty AIOps Human Response ノイズ削減 - Alert Grouping - Auto Pause - 重複排除 コンテクストの提⽰ - Past Incidents - Recent Changes - Probable Origin RESOLVED! ルールによる ⾃動処理 - Event Routing - Event Enrichment - Automation Machine Response 運⽤チーム マネージャー CEO/CIO/CTO カスタマーサービス インシデントの影響範囲‧進捗状況をリアルタイムで可視化 運⽤改善 コラボレーション⽀援 - ⾃動診断 - ⾃動復旧 あらゆるツールから イベントを受信 - 700+ インテグレー ション - Email

Slide 32

Slide 32 text

検知 30分 他社通知 ソリューション 導入後 動員 60分 診断 60分 復旧 120分 学習/予防 数日 導入前 MTTR(平均修復時間)を短縮 リソースを “未来を創る仕事”に投資 インシデント対応 ● ⾮効率な⼈による作業 ● 関係者からの問い合わ せへの対応 未来を創る仕事 ● システムのさらなる安定化 ● 新機能の開発 ● ⼈材育成 インシデント対応の⾃動化‧可視化により、⽣産性を向上

Slide 33

Slide 33 text

Proprietary & Confidential AWS Cloud PagerDuty PagerDuty on AWS 構成例 AWS Systems Manager Incident Manager Amazon CloudWatch Amazon EventBridge AWS Lambda Event Management Human Mobilization Automation 1 3 検知 トリアージ 2 動員 4 解決 Alarm Events Event-Driven Manual ⾃動診断ジョブ ⾃動修復ジョブ

Slide 34

Slide 34 text

監視センター 事例: PD導入前の構成・課題 34 ⼤量のアラート ● 様々な監視ツールから⼤量のア ラートが送られる ● 監視ツール毎にバラバラのダッ シュボード ● 監視員が⽬視でアラートを精査 するため、時間を要したり、重 要なアラートを⾒逃すケースも 解決に時間を要する ● インシデントの対応着⼿までに時間 がかかる ● ⼿順書の不備‧対応ミス ● 状況を共有する仕組みがなく、部⾨ 間連携が⾮効率 開発に注⼒できない ● インシデント対応で度々業務が中断 ● アラート設定/⼿順書変更等の調整 に時間が取られる ● 本来業務である開発に⼗分な時間が 割けない 電話通知 電話通知 ⼿順書 製品チ ーム 開発協 力会社 ビジネ ス チーム 製品チームに問い合わせな いと、状況が分からない ??? 変更には製品チーム‧開発協⼒会社 ‧監視センターで調整が必要 監視 ツー ル ⼤量の アラート

Slide 35

Slide 35 text

製品チ ーム 開発協 力会社 ビジネ ス チーム 事例: PD導入後の構成・効果 35 アラート数を約1/10に削減 ● 全てのアラートをPagerDutyで⼀ 元管理 ● AIで関連するアラートを⾃動集約 ● 通知の要否‧通知先‧通知レベ ルを制御するルールを作成 迅速にインシデントを解決 ● 通知の⾃動化により、迅速に担当者 をアサインし、対応に着⼿ ● 状況をリアルタイムで可視化し、 関連部署ともスムーズに連携 MTTA(平均確認時間): 数時間 → 3分 MTTR(平均修復時間): 24時間 → 2時間 開発にリソースを集中 ● インシデントの数が減り、対応に要 する時間も減少 ● PagerDutyのルールを製品チームで 直接管理‧修正 インシデント対応に割いていた時間を 40時間/⽉削減 ノイズ削減 ルールによる ⾃動処理 担当者毎に最適な ⼿段で⾃動通知 電話/SMS/アプリ Email/Chat 協⼒要請 情報共有 通知 影響範囲‧進捗状況をリアルタイムで可視化 監視 ツー ル

Slide 36

Slide 36 text

Monitoring & Observability DevOps & Lifecycle DataOps Security ChatOps & Collaboration Business Ops & IoT Customer Service ITOps & ITSM 700+ integrations MTTR 25%削減 インシデントを 87%削減 顧客満⾜度向上 36 あらゆるものをつなぐ PagerDuty Operations Cloud モニタリングツールから、コレボレーション‧チケット管理ツール等、700以上の外部サービスと連携可能

Slide 37

Slide 37 text

リアルタイム運⽤の成熟レベル 顧客からの問い合わせが 障害検知⼿段になってい る 障害/問題管理のプロセ スが未定義 ノウハウや経験がチーム 間で共有されていない リアクティブ( 受動的) ⾃動化された障害検知 適切な問題解決担当者を 直ちに招集出来る体制‧ プロセス アドホックでの情報共有 レスポンシブ( 即応的) 適切でタイムリーな情 報が提供可能 ⾃動化され、チーム間 同期の取れたレスポン スとアクション 定型化/⾃動化した振り 返りプロセス プロアクティブ (能動的) 機械学習での洞察に基 づく予測的な復旧、障 害予防 ⼀貫性が取れ、組織全 体に浸透したベスト‧ プラクティス ⾼度に⾃動化され、無 駄を排除したプロセス 継続的学習、改善、及 び予防 プリベンティブ (予防的) 37 サービスの可⽤性‧信頼性 エンジニアの⽣産性

Slide 38

Slide 38 text

⼀般的な導⼊ステップ 既存の運⽤プロセスに合わせて導⼊後、改善を繰り返し成熟度向上 + 横展開 38 1. Plan スコープの決定 2. Lift 既存運⽤プロセスに沿った 形でPDを導⼊ 3. Shift ベストプラクティスを参考 にしながら運⽤体制‧プロ セスを最適化 4. Accelerate ⾃動化を全⾯的に採⽤した ⾼度化 ノイズ削減 MTTA削減‧可視化 MTTR削減‧運⽤負荷低減 予防的運⽤‧継続的改善 ⼿順書の⼀部⾃動化 ● Automation Actions ● Incident Workflows チーム間連携の強化 ● Service Graph (粒度‧依存関係の整理) ● Add Responders ● Status Update コンテキストの提⽰ ● Recent Changes ● Related Incidents ● Probable Origin 通知の⾃動化 ● Escalation Policy/Schedule ノイズ削減 ● Alert Grouping/Auto Pause ● Event Orchestration インシデントの状況と影響範囲 の可視化 ● Business Services ● Visibility Console コンテキストの提⽰ ● Past Incidents (過去の類似インシデント) ⾃動診断‧⾃動修復Jobを活⽤ した⾼度な運⽤ ● Runbook Automation ● Process Automation 分析‧レポートを活⽤した継続 的改善 ● Insights Report ● Postmortem ● 導⼊効果が⾼い‧導⼊しや すいプロジェクトを選定 ● 最初に適切なプロジェクト を選定することで、運⽤の 成熟度向上と他プロジェク トへの横展開が容易になる

Slide 39

Slide 39 text

STEP 1. スコープの決定 適切なプロジェクトを選定するための参考情報 39 既存プロセスに⼤きな変更を加えることなく、 PD導⼊ですぐに解決できる課題の例: ● 監視と通知を⼈⼒で⾏っているため、担当者をアサイン するまでに時間がかかっている ● 監視を外部に委託しており、コストがふくらんでいる ● アラートの数が多く、重要なインシデントが⾒落とされ るケースがある ● 急ぎの対応が不要なアラートについても通知され、担当 者の負担になっている ● インシデントの状況や影響範囲について社内で情報が共 有されず、対応が遅れたり関係者の負担になっている ● 担当者の経験にばらつきがあり、どのように対応すべき かすぐに分からないケースがある ● MTTAやMTTR等の指標を計測する⽅法がなく、どのよう に運⽤を改善したらいいのか分からない 導⼊しやすいプロジェクトの例: ● 左記の課題について、多くのメンバーが深刻に受け⽌め ている ● 新しい技術やプラクティス(SRE/DevOps等)に興味があ るメンバーがいる ● 新しい技術や取り組みを社内外に発信することに情熱を 燃やしているメンバーがいる ● プロジェクト化した場合に、強⼒な社内スポンサーから の⽀援が期待できる

Slide 40

Slide 40 text

Forrester Wave™がPagerDutyをリーダーに選出 Process-Centric AI For IT Operations (AIOps), Q2 2023 ● “PagerDutyは通知を⾏うだけでなく、プロセ スやワークフローを⾃動化し、問題解決を加速 させます。” ● “PagerDutyのイベントノイズ削減を利⽤した リファレンス顧客は、そのEvent Intelligence 機能を「⾮常に強⼒」評価しています。” ● PagerDutyは11の評価基準で最⾼得点を獲得し ました: ○ イベントノイズ削減 ○ インシデントの検知と緩和 ○ ⾃動化と修復 ○ データの最適化 ○ 製品ロードマップ 他 The Forrester Wave™ is copyrighted by Forrester Research, Inc. Forrester and Forrester Wave™ are trademarks of Forrester Research, Inc. The Forrester Wave™ is a graphical representation of Forrester’s call on a market and is plotted using a detailed spreadsheet with exposed scores, weightings, and comments. Forrester does not endorse any vendor, product, or service depicted in the Forrester Wave™. Information is based on best available resources. Opinions reflect judgment at the time and are subject to change.