DevOps変更プロセスの加速

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:14分
  • パイプラインで変更要求を自動的に作成するために DevOps チェンジベロシティ の変更の促進機能を有効にし、変更承認フローとポリシーを使用して特定の条件下で承認を自動化します。

    注:
    変更を迅速化するには ServiceNow 、変更管理 をインストールする必要があります。

    アクティブな変更要求の詳細を表示するには、次の場所に移動します。 DevOps > オーケストレーション > パイプライン変更要求.

    変更管理プロセス

    DevOps開発パイプラインのジョブに対して変更管理が有効になっている場合、変更要求にアサイン先グループが追加された場合、変更要求が自動的に作成され、現在のステージまたはジョブの実行の承認を要求するために [評価] ステータスに設定されます。変更要求は、変更承認ポリシーで条件を設定することで自動的に承認できます。

    パイプラインステップは、変更受領書を有効にするように構成できます。変更受領書は、パイプラインを一時停止しません。変更受領書を有効にして作成された変更要求には、すべてのパイプラインデータが含まれますが、パイプラインを続行するために承認は必要なく、変更要求は実装後ステータスになります。変更の受領書を有効にせずに作成された変更要求の場合、変更要求が承認されるまでパイプラインは一時停止され、承認されるとパイプラインが再開されます。

    変更受付がオンになっていても変更要求状況の自動移行を停止する場合は、sn_devops.enable_change_receipt_state_transition プロパティを無効にする必要があります。詳細については、「DevOps チェンジベロシティ のプロパティ」を参照してください。

    自動または手動で承認されると、変更要求は [実装] ステータスに移行し、ジョブが実行されます。ジョブが実行されると、変更要求は クローズ済み ステータスに移行し、ジョブ実行が成功した場合はクローズコードが成功、ジョブ実行のエラーの場合は [不成功] になります。変更要求状況のカスタマイズについては、「 カスタム変更要求プロセス」を参照してください。

    変更要求が承認されず、キャンセル済みまたはクローズ済みステータスに移行した場合、関連する Jenkins、GitHub、または ADO ジョブは失敗としてマークされ、コンソールメッセージが表示されます。

    Jenkins の場合: [ServiceNow DevOps] ジョブの実行が承認されませんでした

    GitHub の場合: エラー:**** 変更が作成されましたが、変更は却下またはキャンセルされました

    ADO の場合: "changeState":"Closed"

    フローとポリシーを使用した変更要求の自動承認

    すべての DevOps 変更要求の変更承認プロセスを自動化できます。DevOps チェンジベロシティは、フローと DevOps データ (作業アイテム、コミット、コードカバレッジ、コードセキュリティ、リスク、テスト結果など) を使用して変更要求のステータスを更新し、変更承認ポリシーに基づいて自動的に承認します。ベースシステムでは 3 つのフローが利用可能で、(フローデザイナーで) クローン作成、カスタマイズ、およびアクティブ化できます。デフォルトでは、DevOps 変更要求の手動承認フローがアクティブ化されています。DevOps フローは、自動的に作成された変更要求、または変更受付がオフになっている変更要求にのみ適用されます。

    Flows (フロー)

    フローは、トリガー (フローを実行するタイミングを指定する) と一連の再利用可能なアクション (アクションがデータに対して一連の操作を実行する) で構成される自動化されたプロセスです。フローは、プロセスの自動化を可能にする Now Platform の機能である Flow Designer に組み込まれています。詳細については、「Flow Designer」を参照してください。

    ベースシステムで利用可能な DevOps フローの 1 つをテンプレートとして使用できます。フローのクローンを作成し、ビジネス要件に合わせてカスタマイズします。競合やエラーを回避するために、常に 1 つの DevOps フローのみがアクティブ状況になるようにします。DevOps フローは、DevOps カテゴリを含む変更要求、または devops_change プロパティが true に設定されている場合に適用されます。(自動的に作成された DevOps 変更要求では、カテゴリはデフォルトで DevOps に設定されます)。

    デフォルトでは、フローは、変更要求状況とその他のデフォルト動作に基づいてステップ実行状況を更新するように構成されています。ステップ実行ステータスに基づいて、パイプラインへのコールバックが作成されます。
    • DevOps 変更要求が承認されると、フローはステップ実行ステータスを [承認済み] に更新し、変更要求ステータスが [実装] に更新されます。その後、パイプラインが再開されます。
    • DevOps 変更要求が却下された場合、フローはステップ実行ステータスを [却下] に更新し、変更要求ステータスが [新規] に更新されます。その後、パイプラインは終了します。
    • DevOps 変更要求がキャンセルされた場合、フローはステップ実行ステータスを [ユーザーによるキャンセル] に更新し、変更要求は [キャンセル] に更新されます。その後、パイプラインはキャンセルされます。

    DevOps 変更要求手動承認フロー、DevOps 変更要求最小自動化承認フロー、または DevOps 変更要求高度な自動化承認フローでの変更の更新中にビジネスルールまたはデータポリシーによってエラーが発生した場合、対応するエラーが変更要求の作業メモに表示され、パイプラインツールのコンソールログに記録されます。

    DevOps フロー デフォルトの動作
    DevOps 変更要求の手動承認フロー

    このフローはデフォルトで有効化されています。このフローでは、DevOps 変更要求は手動承認プロセスを経る必要があり、このプロセスでは、フローは変更要求が適格なステータス (却下、実装済み、または特定の実装ステータス) に達するまで待機します。到達すると、このフローは変更要求のステータスに基づいてステップ実行のステータスを更新します。

    変更要求がタイプベースの場合、フローは変更が却下、実装、またはキャンセルされるまで待機します。変更要求がモデルベースの場合、フローは、変更が却下またはキャンセルされるか、モデルで定義された実装ステータスまたは DevOps プロパティで指定された実装ステータスのいずれかに達するまで待機します。競合やエラーを回避するために、モデルがベースシステムの DevOps 変更モデル (DevOps または DevOps 簡素化) である DevOps 変更要求に対しては、このフローはトリガーされません。DevOps 変更要求の手動承認フロー

    このフローをクローンし、カスタマイズして変更を加えることができます。他の DevOps フローが非アクティブ化されていることを確認します。

    DevOps 変更要求最小限の自動化承認フロー

    このフローは DevOps データを収集し、DevOps 変更要求最小自動化ポリシーを実行します。これにより、変更を自動却下するか、自動承認するか、手動承認のために送信するかを決定します。このフローは、タイプまたはモデルが通常に設定されている DevOps 変更要求に対してトリガーされます。

    変更要求の承認を自動化する必要が最小限で開始する場合は、このフローをアクティブ化します。DevOps 変更要求最小限の自動化承認フロー

    このフローをクローンし、カスタマイズして変更を加えることができます。他の DevOps フローが非アクティブ化されていることを確認します。

    [DevOps:最小限の自動化ポリシー決定理由を更新] アクションをこのフローに追加して、ポリシー決定をステップ実行変更コメントと変更要求作業メモに更新し、決定の理由を確認することもできます。このアクションをすべての意思決定ブロック内に追加し、必要な入力を指定できます。最小限の自動化ポリシー決定アクションを更新

    DevOps 変更要求の高度な自動化承認フロー

    このフローは DevOps データを収集し、DevOps 変更要求の高度な自動化ポリシーを実行します。これは、変更を自動却下するか、自動承認するか、手動承認のために送信するかを決定します。このフローは、タイプまたはモデルが通常に設定されている DevOps 変更要求に対してトリガーされます。

    DevOps 変更要求が承認されると、フローによって変更要求がスケジュール済みステータスに更新され、開始予定日を使用して変更要求の開始日が設定されます。変更要求の開始日に、フローは変更要求ステータスを [実装] に更新します。その後、パイプラインが再開されます。強力な変更ポリシーを使用して変更要求の承認を自動化する場合は、このフローをアクティブ化します。DevOps 変更要求の高度な自動化承認フロー

    このフローをクローンし、カスタマイズして変更を加えることができます。他の DevOps フローが非アクティブ化されていることを確認します。

    DevOps デモ変更自動化フロー デモデータがインストールされると、DevOps デモ変更自動化フローが利用可能になり、通常タイプの変更要求または通常のモデル変更要求を意思決定ポリシーに基づいて自動承認できます。 デモデータの一部として利用可能な意思決定ポリシーは次のとおりです。
    • DevOps 低リスク自動承認ポリシー。失敗したテスト数はゼロです。
    • 失敗したテスト数が 0 より大きい DevOps 高リスク手動承認ポリシー。

    DevOps デモ変更自動化フローこのフローをクローンし、カスタマイズして変更を加えることができます。他の DevOps フローが非アクティブ化されていることを確認します。

    変更承認ポリシー

    変更承認ポリシーは、変更要求に適用できる対処措置です。これは次のもので構成されています。
    • ポリシー入力:条件内で評価される変数ソース。
    • 決定:条件に基づいて変更承認定義を適用する必要があるかどうかを決定します。
    • 承認定義:適用できる承認のタイプを定義します。
    DevOps 変更要求最小自動化ポリシーと DevOps 変更要求の高度な自動化ポリシーは、デフォルトで使用できます。利用可能な 3 つの通常の変更ポリシーは次のとおりです。
    • DevOps モデル変更ポリシー
    • DevOps 変更要求最小自動化ポリシー
    • DevOps 変更要求の高度な自動化ポリシー

    変更承認ポリシーの詳細については、「 変更承認ポリシー」を参照してください。

    DevOps 自動承認フローでは、変更承認ポリシーと DevOps データ (作業アイテム、コミット、プル要求、テストサマリ、セキュリティサマリー、品質サマリーなど) を使用して、変更レコードステータスとステップ実行ステータスを承認済み、却下、またはキャンセル済みに自動的に更新します。これらのポリシーは、ビジネス要件に基づいて表示および編集することも、ディシジョンテーブルで独自のポリシーを作成することもできます。次のディシジョンテーブルを参照してください。

    DevOps 変更要求最小自動化ポリシーには、デフォルトで次の条件と基準があります。 変更要求最小自動化ポリシー条件

    DevOps 変更要求の高度な自動化ポリシーには、デフォルトで次の条件と基準があります。 変更要求の高度な自動化ポリシー条件

    DevOps 変更要求最小限の自動化ポリシーと DevOps 変更要求の高度な自動化ポリシーの 3 つの結果は (指定した条件によって異なります) 次のとおりです。
    • 自動承認:ポリシーで指定された条件が満たされた場合、変更要求は自動的に承認されます。
    • 自動却下:ポリシーで指定された 1 つ以上の条件が満たされない場合、変更要求は自動的に却下されます。
    • 手動承認:1 つ以上の条件がユーザーまたはグループによる手動承認を必要とする場合、それはポリシーで指定されています。手動承認を迅速化し、変更要求を進行させるために、ポリシーによって関連するユーザーまたはグループに通知が送信されます。

    カスタム変更要求テンプレート

    ServiceNow DevOpsステップで変更管理を有効にすると、カスタムテンプレートを選択して、変更要求の作成中にフィールドに自動的に入力することができます。変更要求の [カテゴリ ] フィールドは自動的に [ DevOps] に設定されます。
    注:
    カスタムテンプレートから [カテゴリ ] フィールドと [changeType] フィールドを構成しないでください。

    変更要求のタイプは、グローバルスコープの変更要求テーブルに対応します。

    [自動変更要求] 関連リスト

    DevOps によって自動的に作成された変更要求の場合、[カテゴリ] フィールドは自動的に [DevOps] に設定され、次の関連リストが追加されます。
    コミット
    変更要求に関連付けられたコミット。
    作業アイテム
    変更要求に関連付けられた作業アイテム。
    アーティファクトバージョン

    変更要求が承認される前に作成されたパッケージのパイプライン実行にリンクされているパッケージに関連付けられているアーティファクトバージョンのリスト。

    パイプライン実行にリンクされているパッケージがない場合、リストは空になります。

    テストサマリ ([テスト結果] 関連リストを置き換えます)

    変更要求前のアーティファクト、パッケージ、またはタスクの実行に関連付けられたパイプライン実行のテストサマリーのリスト。

    詳細については、「 テスト結果 」を参照してください。

    DevOps 変更関連リスト

    注:
    オーケストレーションツールからの実装の詳細は、変更要求フォームの [作業メモ ] フィールドに自動的に追加されます。作業メモに追加される詳細は、ステップのタスク実行ログの 5 KB に制限されています。

    カスタム変更要求プロセス

    これらの DevOps 変更プロパティ を使用して、変更要求フローをカスタマイズできます。

    • DevOps 変更要求の実装ステータス
    • DevOps 変更要求の実装後ステータス
    • DevOps 変更要求のキャンセルステータス
    • DevOps 変更要求の承認テキスト

    変更要求フローをカスタマイズするには、まず システム定義 > 選択肢リスト. たとえば、 DevOps_Implement (value - 10) です。

    次に、選択リストを システム定義 > スクリプトインクルード > ChangeRequestStateHandlerSNC.

    選択リストを作成してスクリプトインクルードに追加したら、 DevOps 変更プロパティ を新しい選択リスト値で更新できます。たとえば、 DevOps change request implement state -10 です。

    DevOps リスク条件

    コミット担当者のリスクスコアに基づいて、 DevOps リスクと影響度の計算を使用できます。

    この条件は、デフォルトでは無効になっています。

    [テスト結果] 関連リスト

    パッケージの作成後にパイプラインで実行されたテストを一覧表示します。パッケージが作成されなかった場合、リストにはアーティファクトバージョンの作成後に実行されたテストが含まれます。

    シナリオ:

    パイプラインにパッケージが作成されますが、アーティファクトバージョンは登録されません。
    • パッケージ作成ステージで変更要求が作成された場合:

      パッケージがまだパイプライン実行にリンクされていないため、テスト結果は表示されません。

    • パッケージ作成ステージの後のステージで変更要求が作成された場合:

      ビルド テストの概要には、パッケージ作成ステージの後、変更管理されたステージまでのステージに関連付けられているものが含まれます。

    アーティファクトバージョンは登録されますが、パッケージは作成されません。
    • 変更要求がアーティファクトバージョンステージで作成された場合:

      タスクの実行が完了するまでテストが関連付けられないため、テスト結果は表示されません。

    • 変更要求がアーティファクトバージョンステージの後のステージで作成された場合:

      ビルドテストサマリーには、アーティファクトバージョンステージのサマリーと、その後のステージ、変更管理ステージまでのサマリーが含まれます。

    アーティファクトバージョンとパッケージの両方がパイプラインに作成されます。
    • 変更要求がアーティファクトバージョンおよびパッケージ作成ステージの後のステージの一部である場合:

      ビルド テストの概要には、パッケージ作成ステージと、その後のステージ (変更制御されたステージまで) に関連するものが含まれます。

    • 変更要求がパッケージ作成ステージの一部であり、アーティファクトバージョンがそれより前のステージの一部として作成される場合。
      • または、変更要求が (パッケージ作成ではなく) アーティファクトバージョンステージの後、パッケージ作成ステージの前のステージで作成されます。
      • または、変更要求がパッケージ作成ステージの一部であり、アーティファクトバージョンがそれより前のステージの一部として作成されます。

      ビルドテストサマリーには、アーティファクトバージョンのステージと、その後のステージ (変更管理されたステージまで) に関連付けられたものが含まれます。

    パイプライン実行ビュー

    パイプラインアクティビティを表示するには、次の場所に移動します。 DevOps > オーケストレーション > パイプライン実行.

    DevOps パイプライン実行