2023年3月4日
Continuous Integration
PagerDutyインシデント管理ツールをHarnessと統合して、CI/CDパイプラインイベントを明確に把握する方法を学びます。
Harnessを使用したインシデント管理のためのPagerDuty通知の設定
今日、どの組織でも、システムを安定稼働させるためにエンジニアチームが懸命に働いており、その人たちは必ず発生するインシデントに対処するためのプロセスを構築しなければなりません。最高の開発者とサイト信頼性エンジニア(SRE)がいる場合でも、これらのインシデントの管理と対処には時間と労力がかかります。ただし、どんな場合とも同じように、適切なツールと戦略があれば、インシデント管理ははるかに簡単に管理できます。全ての組織が必要とするものは、最高のインシデント管理ツールと統合された最高の継続的インテグレーションと、継続的デリバリー(CI/CD)プラットフォームの組み合わせです。
チームが常にアラートやインシデントに追い付くのに苦労していると感じているITの専門家は、インシデント管理がチームの主な摩擦点であると感じるかもしれません。この記事では、インシデント管理ツールであるPagerDutyをHarnessと統合して、CI/CD パイプラインイベントを明確に把握する方法をご紹介します。
インシデント管理は、サービスの可用性に影響を与えるインシデントを特定し、調査し、解決するプロセスです。インシデント管理プロセスは、監視ツールからのアラートや、運用スタッフによる手動検出をトリガーとする障害やイベントで開始されます。インシデントマネージャーは、問題の深刻度、影響を受けるユーザー、解決にかかる時間に基づいて対応方法を決定する前に、顧客とビジネス への影響を評価します。インシデント管理は、DevOpsの大事なコンポーネントです。これはインシデントに対応し、事業運営への影響を軽減するための手順を網羅するものです。
C/CDパイプラインは、ソフト開発プロセスを管理するために実行される一連のステップです。これには、自動化されたテスト、CI、デプロイが含まれます。パイプラインは、コードが開発され本番にデプロイされるまでの時間を短縮することを目的としています。CI/CDパイプラインのどこかにインシデント管理を設定することで、インシデントを監視し、すぐに通知を受けることができるため、パイプラインが完成するのです。
インシデント管理は、組織がシステムとやサービスの可用性と信頼性とセキュリティーを維持するために重要です。インシデントを迅速に特定して解決することで、各組織はインシデントによるダウンタイムを最小限に抑えこみ、顧客のニーズと期待に応え続けることができます。インシデント管理は、問題やインシデントをタイムリーに効率的かつ費用対効果の高い方法で確実に解決するのに役立つため、DevOps戦略の成功に不可欠なものです。
インシデント管理は開発者だけでなく、セキュリティーチームがセキュリティーとコンプライアンスを強化して、セキュリティーギャップを埋めながら作業するのに役立ちます。さらに、アプリケーションやサービスのエラーやシャットダウンを監視します。インシデント管理ツールは、何かがダウンした場合に担当チームメンバーにアラートを送ります。そして、チームで決定した一連のポリシーに沿って、問題のアプリケーションやサービスを直ちに復旧します。ですからCI/CDパイプラインにはインシデント管理ツールが不可欠なのです。
成功するインシデント管理戦略には、自動化、コラボレーション、コミュニケーションツールが必要です。またインシデント管理は、サービスの中断や障害にできるだけ迅速かつ効率的に対応し、解決し、文書化する ことで構成されています。インシデントは、ソフトの小さな不具合から大規模なシステム停止までさまざまであり、システムの安定性と安全性を確保するためには、綿密な戦略が必要です。
インシデント管理に適切な戦略を導入することで、DevOpsチームは問題を把握し、サービスの継続性を確保できます。またDevOpsチームは、あらゆるインシデントに迅速かつ効率的に対応し、システムの安定性と安全性を維持できます。インシデント管理を導入することで、エンジニアリング組織は多額の費用を節約し、ストレスの多い状況を回避できるのです。
インシデント管理戦略を示す例として、4つの大まかな手順を次に示します。
これは、インシデント管理戦略の内容を示す簡単な例です。実際には、サービスレベル保証(SLA)、サービスレベル目標(SLO)、サービスレベル指標(SLI)、エラーバジェットに基づいてアプローチを調整する必要があります。
PagerDutyは、クラウドベースのITインシデント管理ツールであり、組織全体のインシデントの通知と対応の調整に役立ちます。では、PagerDutyの機能とメリットの一部をご紹介します。
このチュートリアルでは、パイプラインの実行中にインシデントが検出された場合にPagerDuty アラートを送信する方法をご紹介します。
開発者がGitHubなどのソースコントロール管理(SCM)システムにコードをコミットすると、CI/CDツールがコードをビルドし、構成ミス、バグ、または脆弱性がないかテストします。その後、コードはKubernetesなどのターゲット環境 にデプロイされます。ここでは、デプロイに失敗したときに、パイプラインがPagerDutyに通知して、開発者とさらなる対策を講じる担当チームに警告するように、アラートの通知を設定します。
Harnessは、コードのクローニングから継続的インテグレーション、ターゲット環境へのデプロイ、責任者へのアラートまで、このセットアップ全体の中心的存在です。
注:ビルトインの通知はHarnessプラットフォームの機能であるため、どのステージタイプにも適用できます。
Harnessを初めて使用する場合は、無料のHarnessアカウントが必要です。
次に、Harnessアカウントにサインインし、CDモジュールを選択します。アプリをデプロイするための単純なパイプラインをセットアップします。Kubernetesクラスターを使用して、サンプルアプリをデプロイします。
GitHubリポジトリー(サンプルアプリを使います。フォークしてお使いになれます)やDelegateなど、GitHubに必要なコネクタを追加します。Harness Delegateは、アーティファクト、インフラストラクチャー、コラボレーション、検証、その他の全てのプロバイダーをHarnessに接続するために、ローカルネットワークまたはVPCで実行するサービスです。
プロジェクトとパイプラインを設定してアプリをデプロイしたら、通知を設定します。ダッシュボードの右側に、通知アイコンが表示されます。アイコンをクリックして、インシデント通知戦略を設定します。
上で説明したように、PagerDuty通知を統合する方法を紹介します。
通知を追加します。
設定画面では、通知を受け取りたいイベントを尋ねられます。シンプルに、さまざまなデプロイの通知を設定しています。つまり、アプリやサービスのデプロイが成功すると、通知が生成されます。
次に、通知方法としてPagerDutyを選択します。
PagerDutyを通知ツールとして選択したら、次のステップでPagerDutyキーを提供する必要があります。
PagerDutyキーを取得するには、PagerDutyアカウントにアクセスする必要があります。
PagerDutyでアカウントを作成し、サービス名を指定して続行します。
次のステップでは、インテグレーションを設定します。Allタブに移動し、Harnessを検索して、以下に示すようにHarnessを選択します。
次のステップでは、通知の受け取り方法を尋ねられます。メールアドレスを入れました。PagerDutyから送信された以下のメールの例を参照してください。
次に、Serviceに移動し、Service Directorをクリックして、設定されたサービスを確認します。追加したサービスが表示されるはずです。
Manageをクリック し、View Integrationsでキーを確認します。
必要なものはIntegration Keyです。コピーしてどこかに保存します。
PagerDutyをHarnessに追加するHarnessアプリに戻り、PagerDutyのキーをNotification Methodタブに追加します。
接続が成功するかどうかをテストします。
変更を保存して適用します。次に、 Harnessダッシュボードに移動し、パイプラインを実行します。
アプリのデプロイが成功すると、PagerDutyでイベント通知が表示され、メールで応答を受け取ります。
同様に、ワークフローやイベントをカスタマイズしたり、インシデントを調べる人を割り当てたりすることも可能です。PagerDutyとの統合により、サポートやエンジニアリングチームが状況を把握し、可能な限り迅速に問題を解決できます。
サービスをデプロイしたら、状況を把握し、さまざまなイベントをチームに報告する必要があります。CI/CDプラットフォームへのインシデント管理ツールの追加は、全てが期待通りに進んでいることを確認するために重要です。PagerDuty は、 Harnessと統合できる多くの通知ツールにおける1つの優れた例であり、インシデント管理を次のレベルに引き上げます。
その他Harness製品のチュートリアルについては、 Harness Developer Hubをチェックする、Harness CDの機能の詳細を学ぶ、もしくは今すぐ無料でお試しください。
この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を受け付けます。原文はこちらです。