DevOps変更プロセスの加速
パイプラインでの自動変更要求作成のために 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 フローは、自動的に作成された変更要求、または変更受付がオフになっている変更要求にのみ適用されます。
フロー
フローは、トリガー (フローを実行するタイミングを指定) と一連の再利用可能なアクション (アクションがデータに対して一連の操作を実行する) で構成される自動化されたプロセスです。フローは、プロセスの自動化を可能にする ServiceNow AI Platform 機能であるフローデザイナーに組み込まれています。詳細については、「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 デモ変更自動化フローが使用可能になります。デモデータの一部として利用可能な意思決定ポリシーは次のとおりです。
|
フロー、サブフロー、およびアクションをより効果的に使用するためのガイドラインについては、「 General guidelines for Workflow Studio flows, subflows, and actions」を参照してください。
変更承認ポリシー
- ポリシー入力:条件内で評価される変数ソース。
- 決定:条件に基づいて変更承認定義を適用する必要があるかどうかを決定します。
- 承認定義:適用できる承認のタイプを定義します。
- DevOps モデル変更ポリシー
- DevOps 変更要求の最小限の自動化ポリシー
- DevOps 変更要求の高度な自動化ポリシー
変更承認ポリシーの詳細については、「 変更承認ポリシー」を参照してください。
DevOps 自動承認フローは、変更承認ポリシーと DevOps データ (作業アイテム、コミット、プル要求、テストサマリー、セキュリティサマリー、品質サマリーなど) を使用して、変更レコードのステータスとステップ実行ステータスを承認済み、却下、またはキャンセルに自動的に更新します。ビジネス要件に基づいてこれらのポリシーを表示および編集することも、ディシジョンテーブルで独自のポリシーを作成することもできます。次のディシジョンテーブルを参照してください。
DevOps 変更要求最小自動化ポリシーには、デフォルトで次の条件とクライテリアがあります。
DevOps 変更要求の高度な自動化ポリシーには、デフォルトで次の条件と基準があります。
- 自動承認:ポリシーで指定された条件が満たされると、変更要求が自動的に承認されます。
- 自動却下:ポリシーで指定された 1 つ以上の条件が満たされない場合、変更要求は自動的に却下されます。
- 手動承認:ポリシーで指定されたユーザーまたはグループによる手動承認が必要な条件が 1 つ以上ある場合。手動での承認を迅速化して変更要求を進めるために、ポリシーによって関連するユーザーまたはグループに通知が送信されます。
変更管理ワークフロースタジオアクションで変更承認ポリシーを適用して、変更要求の承認プロセスを制御できます。詳細については、「[変更承認ポリシーの適用 (Apply Change Approval Policy)] フローアクションの使用」を参照してください。
変更承認作業メモ
変更要求がフローと変更承認ポリシーに基づいて更新されると、変更要求に関連付けられた作業メモが次のいずれかのハードコードされたメッセージに更新されます。
- 変更承認ポリシーが見つかりません。変更要求が却下されました (%s)。
- %s は非アクティブです。変更要求が却下されました (%s)。
- 一致する意思決定はありません。%s がスキップされました (%s)。
- 一致した意思決定から承認が生成されませんでした。%s がスキップされました (%s)。
- 変更要求は %s (%s) によって却下されました。
- 変更要求は %s (%s) によって承認されました。
if (APPROVED.equals(state))
38 message = String.format(APPROVED_MSG, policyName, actionLabel);デフォルトの変更ハンドラーサブフロー
- 要求者
- 理由
- 実装計画
- バックアウトプラン
- テスト計画
- 簡単な説明
- 説明
- 開始日
- 終了日
- リスク影響度の分析
デフォルトの変更ハンドラーサブフローは、変更要求レコードの作成時にテンプレートを使用して入力されたフィールド値をオーバーライドします。
必要に応じて、このフローの代わりにカスタムサブフローを記述することができます。 [sn_devops.change_request_handler_subflow] DevOps プロパティ.
カスタム変更要求テンプレート
変更要求のタイプは、グローバルスコープの変更要求テーブルに対応しています。
自動変更要求関連リスト
- コミット
- 変更要求に関連付けられたコミット。
- 作業アイテム
- 変更要求に関連付けられた作業アイテム。
- アーティファクトバージョン
変更要求が承認される前に作成されたパッケージのパイプライン実行にリンクされたパッケージに関連付けられたアーティファクトバージョンのリスト。
パイプライン実行にリンクされているパッケージがない場合、リストは空です。
- テストサマリー (テスト結果関連リストを置き換えます)
変更要求前のアーティファクト、パッケージ、またはタスクの実行に関連付けられたパイプライン実行のテストサマリーのリスト。
詳細については、「 テスト結果 」を参照してください。
- ソフトウェア数量サマリー
- 変更要求前のアーティファクト、パッケージ、またはタスクの実行に関連付けられたパイプライン実行のソフトウェア品質サマリーのリスト。
- セキュリティのサマリー
- 変更要求前のアーティファクト、パッケージ、またはタスクの実行に関連付けられたパイプライン実行のセキュリティサマリーのリスト。注:リンクされたパッケージを使用したパイプライン実行に関連付けられた変更レコードのセキュリティスキャン結果も [セキュリティサマリー] タブに表示されます。
カスタムの変更要求プロセス
これらの DevOps 変更プロパティは 、変更要求フローをカスタマイズするために使用できます。
- DevOps 変更要求の実装ステータス
- DevOps 変更要求の実装後ステータス
- DevOps 変更要求のキャンセルステータス
- DevOps 変更要求の承認テキスト
変更要求フローをカスタマイズするには、最初に . たとえば、 DevOps_Implement (value - 10) です。
次に、選択リストを .
選択リストを作成してスクリプトインクルードに追加すると、 DevOps 変更プロパティを 新しい選択リスト値で更新できます。DevOps change request implement state たとえば、-10 などです。
DevOps リスク条件
コミット担当者のリスクスコアに基づいて、 DevOps リスクと影響度の計算を使用できます。
この条件は、デフォルトでは無効になっています。
[テスト結果] 関連リスト
パッケージが作成された後にパイプラインで実行されたテストを一覧表示します。パッケージが作成されていない場合、リストにはアーティファクトバージョンの作成後に実行されたテストが含まれます。
シナリオ:
- パイプラインにパッケージが作成されますが、アーティファクトバージョンは登録されません。
- 変更要求がパッケージ作成ステージで作成された場合:
パッケージがパイプライン実行にまだリンクされていないため、テスト結果は表示されません。
- 変更要求がパッケージ作成ステージの後のステージで作成された場合:
ビルドテストサマリーには、パッケージ作成ステージの後から変更制御ステージまでのステージに関連付けられたものが含まれます。
- 変更要求がパッケージ作成ステージで作成された場合:
- アーティファクトバージョンは登録されますが、パッケージは作成されません。
- 変更要求がアーティファクトバージョンステージで作成された場合:
タスクの実行が完了するまでテストが関連付けられていないため、テスト結果は表示されません。
- 変更要求がアーティファクトバージョンステージの後のステージで作成された場合:
ビルドテストサマリーには、アーティファクトバージョンステージのものと、その後のステージ、変更制御されたステージまでが含まれます。
- 変更要求がアーティファクトバージョンステージで作成された場合:
- アーティファクトバージョンとパッケージの両方がパイプラインに作成されます。
- 変更要求がアーティファクトバージョンおよびパッケージ作成ステージの後のステージの一部である場合:
ビルドテストサマリーには、パッケージ作成ステージに関連付けられたものと、その後の変更制御ステージまでのステージが含まれます。
- 変更要求がパッケージ作成ステージの一部であり、アーティファクトバージョンがそれ以前のステージの一部として作成される場合。
- または、アーティファクトバージョンステージの後、パッケージ作成ステージの前に、(パッケージ作成ではなく)ステージで変更要求が作成されます。
- または、変更要求がパッケージ作成ステージの一部であり、アーティファクトバージョンがそれ以前のステージの一部として作成されている場合:
ビルドテストサマリーには、アーティファクトバージョンステージに関連付けられたものと、その後のステージ、変更制御ステージまでが含まれます。
- 変更要求がアーティファクトバージョンおよびパッケージ作成ステージの後のステージの一部である場合:
[パイプライン実行] ビュー
に移動すると、パイプラインアクティビティを表示できます .