2023年3月4日

Continuous Integration

Harnessを使用したインシデント管理のためのPagerDuty通知の設定

PagerDutyインシデント管理ツールをHarnessと統合して、CI/CDパイプラインイベントを明確に把握する方法を学びます。

PagerDutyHarness_Header.pngHarnessを使用したインシデント管理のためのPagerDuty通知の設定

今日、どの組織でも、システムを安定稼働させるためにエンジニアチームが懸命に働いており、その人たちは必ず発生するインシデントに対処するためのプロセスを構築しなければなりません。最高の開発者とサイト信頼性エンジニア(SRE)がいる場合でも、これらのインシデントの管理と対処には時間と労力がかかります。ただし、どんな場合とも同じように、適切なツールと戦略があれば、インシデント管理ははるかに簡単に管理できます。全ての組織が必要とするものは、最高のインシデント管理ツールと統合された最高の継続的インテグレーションと、継続的デリバリー(CI/CD)プラットフォームの組み合わせです。

チームが常にアラートやインシデントに追い付くのに苦労していると感じているITの専門家は、インシデント管理がチームの主な摩擦点であると感じるかもしれません。この記事では、インシデント管理ツールであるPagerDutyをHarnessと統合して、CI/CD パイプラインイベントを明確に把握する方法をご紹介します

インシデント管理とは?

インシデント管理は、サービスの可用性に影響を与えるインシデントを特定し、調査し、解決するプロセスです。インシデント管理プロセスは、監視ツールからのアラートや、運用スタッフによる手動検出をトリガーとする障害やイベントで開始されます。インシデントマネージャーは、問題の深刻度、影響を受けるユーザー、解決にかかる時間に基づいて対応方法を決定する前に、顧客とビジネスへの影響を評価します。インシデント管理は、DevOpsの大事なコンポーネントです。これはインシデントに対応し、事業運営への影響を軽減するための手順を網羅するものです。

C/CDパイプラインは、ソフト開発プロセスを管理するために実行される一連のステップです。これには、自動化されたテスト、CI、デプロイが含まれます。パイプラインは、コードが開発され本番にデプロイされるまでの時間を短縮することを目的としています。CI/CDパイプラインのどこかにインシデント管理を設定することで、インシデントを監視し、すぐに通知を受けることができるため、パイプラインが完成するのです。

 

インシデント管理をする理由

インシデント管理は、組織がシステムとやサービスの可用性と信頼性とセキュリティーを維持するために重要です。インシデントを迅速に特定して解決することで、各組織はインシデントによるダウンタイムを最小限に抑えこみ、顧客のニーズと期待に応え続けることができます。インシデント管理は、問題やインシデントをタイムリーに効率的かつ費用対効果の高い方法で確実に解決するのに役立つため、DevOps戦略の成功に不可欠なものです。

インシデント管理は開発者だけでなく、セキュリティーチームがセキュリティーとコンプライアンスを強化して、セキュリティーギャップを埋めながら作業するのに役立ちます。さらに、アプリケーションやサービスのエラーやシャットダウンを監視します。インシデント管理ツールは、何かがダウンした場合に担当チームメンバーにアラートを送ります。そして、チームで決定した一連のポリシーに沿って、問題のアプリケーションやサービスを直ちに復旧します。ですからCI/CDパイプラインにはインシデント管理ツールが不可欠なのです。

 

インシデント管理戦略

成功するインシデント管理戦略には、自動化、コラボレーション、コミュニケーションツールが必要です。またインシデント管理は、サービスの中断や障害にできるだけ迅速かつ効率的に対応し、解決し、文書化することで構成されています。インシデントは、ソフトの小さな不具合から大規模なシステム停止までさまざまであり、システムの安定性と安全性を確保するためには、綿密な戦略が必要です。

インシデント管理に適切な戦略を導入することで、DevOpsチームは問題を把握し、サービスの継続性を確保できます。またDevOpsチームは、あらゆるインシデントに迅速かつ効率的に対応し、システムの安定性と安全性を維持できます。インシデント管理を導入することで、エンジニアリング組織は多額の費用を節約し、ストレスの多い状況を回避できるのです。

インシデント管理戦略を示す例として、4つの大まかな手順を次に示します。

  1. CI/CDパイプラインを監視して、発生する可能性のある問題(イシュー)を特定します。イシューが検出された場合は、アラートの生成、関連するチームメンバーへの通知が必要です。
  2. アラートを受信したら、イシューをトリアージして、その重大度と影響を判断します。イシューが深刻であると判断された場合は、適切なチームにエスカレーションし、さらなる調査と解決を依頼する必要があります。
  3. イシューをできるだけ早く解決し、成功した実装を段階的に文書化します。
  4. 全てが解決され、システムが期待通り機能するよう回復するためには、このインシデントに関するフォローアップミーティングが必要です。

これは、インシデント管理戦略の内容を示す簡単な例です。実際には、サービスレベル保証(SLA)サービスレベル目標(SLO)サービスレベル指標(SLI)エラーバジェットに基づいてアプローチを調整する必要があります
 

PagerDutyとは?

PagerDutyは、クラウドベースのITインシデント管理ツールであり、組織全体のインシデントの通知と対応の調整に役立ちます。では、PagerDutyの機能とメリットの一部をご紹介します。

  • インシデントの緊急度を判断し、それに応じてエンジニアに割り当て、適切な対処ができるよう支援します。
  • インシデントの更新をライブ通知します。
  • ユーザーがタスクを割り当て、その進捗を追跡できるようにします。
  • 特定のインシデントの通知を有効にします。

チュートリアルHarnessを使ってPagerDutyのアラートを送信する方法

このチュートリアルでは、パイプラインの実行中にインシデントが検出された場合にPagerDuty アラートを送信する方法をご紹介します。

開発者がGitHubなどのソースコントロール管理(SCM)システムにコードをコミットすると、CI/CDツールがコードをビルドし、構成ミス、バグ、または脆弱性がないかテストします。その後、コードはKubernetesなどのターゲット環境にデプロイされます。ここでは、デプロイに失敗したときに、パイプラインがPagerDutyに通知して、開発者とさらなる対策を講じる担当チームに警告するように、アラートの通知を設定します。

How to Send PagerDuty Alerts Using Harness.pngHarnessは、コードのクローニングから継続的インテグレーション、ターゲット環境へのデプロイ、責任者へのアラートまで、このセットアップ全体の中心的存在です。
 

チュートリアルの前提条件:

注:ビルトインの通知はHarnessプラットフォームの機能であるため、どのステージタイプにも適用できます。

Harnessのセットアップ

Harnessを初めて使用する場合は、無料のHarnessアカウントが必要です。

次に、Harnessアカウントにサインインし、CDモジュールを選択します。アプリをデプロイするための単純なパイプラインをセットアップします。Kubernetesクラスターを使用して、サンプルアプリをデプロイしますHarness Setup.pngGitHubリポジトリー(サンプルアプリを使います。フォークしてお使いになれます)やDelegateなど、GitHubに必要なコネクタを追加します。Harness Delegateは、アーティファクト、インフラストラクチャー、コラボレーション、検証、その他の全てのプロバイダーをHarnessに接続するために、ローカルネットワークまたはVPCで実行するサービスです。

プロジェクトとパイプラインを設定してアプリをデプロイしたら、通知を設定します。ダッシュボードの右側に、通知アイコンが表示されます。アイコンをクリックして、インシデント通知戦略を設定します。

Harness Setup 2nd Stage.png上で説明したように、PagerDuty通知を統合する方法を紹介します。

Notification.png通知を追加します。

Notification Setup.png設定画面では、通知を受け取りたいイベントを尋ねられます。シンプルに、さまざまなデプロイの通知を設定しています。つまり、アプリやサービスのデプロイが成功すると、通知が生成されます。

Pipeline Events.png次に、通知方法としてPagerDutyを選択します。

Notification Method.pngPagerDutyを通知ツールとして選択したら、次のステップでPagerDutyキーを提供する必要があります。

Notification Method 2.pngPagerDutyキーを取得するには、PagerDutyアカウントにアクセスする必要があります。

PagerDutyの設定

PagerDutyでアカウントを作成し、サービス名を指定して続行します。

Setting Up PagerDuty.png次のステップでは、インテグレーションを設定します。Allタブに移動し、Harnessを検索して、以下に示すようにHarnessを選択します。

Pager Duty Next Step.png次のステップでは、通知の受け取り方法を尋ねられます。メールアドレスを入れました。PagerDutyから送信された以下のメールの例を参照してください。

Pager Duty Email.png次に、Serviceに移動し、Service Directorをクリックして、設定されたサービスを確認します。追加したサービスが表示されるはずです。

PagerDuty Service Directory.pngManageをクリック し、View Integrationsでキーを確認します。

View Integrations.png必要なものはIntegration Keyです。コピーしてどこかに保存します。

Integration key.pngPagerDutyをHarnessに追加する

Harnessアプリに戻り、PagerDutyのキーをNotification Methodタブに追加します。

Adding PagerDuty to Harness.png接続が成功するかどうかをテストします。

Adding PagerDuty to Harness 2.png変更を保存して適用します。次に、 Harnessダッシュボードに移動し、パイプラインを実行します。

Pipeline.pngアプリのデプロイが成功すると、PagerDutyでイベント通知が表示され、メールで応答を受け取ります。

PagerDuty Respond Email.png同様に、ワークフローやイベントをカスタマイズしたり、インシデントを調べる人を割り当てたりすることも可能です。PagerDutyとの統合により、サポートやエンジニアリングチームが状況を把握し、可能な限り迅速に問題を解決できます。

インシデント管理はCI/CDにとって重要です

サービスをデプロイしたら、状況を把握し、さまざまなイベントをチームに報告する必要があります。CI/CDプラットフォームへのインシデント管理ツールの追加は、全てが期待通りに進んでいることを確認するために重要です。PagerDuty は、 Harnessと統合できる多くの通知ツールにおける1つの優れた例であり、インシデント管理を次のレベルに引き上げます。

その他Harness製品のチュートリアルについては、 Harness Developer HubをチェックするHarness CDの機能の詳細を学ぶ、もしくは今すぐ無料でお試しください


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を受け付けます。原文はこちらです

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ