DevOps change models
Summarize
Summary of DevOps Change Models
DevOps Change Velocity allows for the adoption of flexible change models that better align with modern development practices. Customers are encouraged to utilize the Change Management - Change Models feature for optimally managing change requests, moving away from traditional ITIL-based processes.
Show less
Key Features
- Fit-for-purpose Change Models: Options include the DevOps and DevOps Simplified models, which can be customized for specific use cases.
- Type Compatibility: The type compatibility property determines how change requests are created, allowing either model-based or type-based creation depending on the setting.
- State Transition Flows: Defined flows for each state within the change models automate the change approval process based on set conditions.
- Record Presets: Automatically configure change details during the creation of change requests based on preset values.
Key Outcomes
By implementing these change models, ServiceNow customers can expect improved flexibility in managing change requests, leading to faster and more efficient workflows. The automation of approvals and customizable policies enhances the ability to meet specific organizational needs while minimizing delays in the change process.
DevOps Change Velocity enables you to use fit-for-purpose change models that allow better flexibility in defining change models or processes to reflect modern development practices.
DevOps Change model overview
Use fit-for-purpose change models with a suite of succinct flows and flow actions built in Flow Designer for specific use cases. Instead of using the legacy ITIL-based change processes that are predefined in change workflows (Normal, Standard, and Emergency), you can selectively transition to a wide range of models that are optimized for specific use cases. Change models can be created with states and rules that determine the transitions between the states. For information on change models, see Change models.
You can use any of the base system change models including the DevOps or DevOps Simplified change models. To create a change request based on models, you can either configure the Model field in the Step form in ServiceNow, or pass the model sys_id or name in the change step from your orchestration pipeline.
Base system DevOps change models
Two change models, called DevOps and DevOps Simplified are included in the base system and are active by default for you to create a model based change request.
- Type compatibility flag
-
The type compatibility com.snc.change_management.change_model.type_compatibility property is used to determine what kind of change requests (type- or model-based) will be created. Navigate to System Properties > All Properties to set the value for this property. The default value of this property is False. This property enables change type compatibility for change models. When set to true, the change request can be created either as a type-based workflow or change models. When set to false, change request will be created only using change model.
The change request will be created based on the configuration combination as defined in the following tables when the property is set to true or false.
Table 1. When the type compatibility property is set to True Change attribute configured in the pipeline step in ServiceNow Change attribute passed in the pipeline Change attribute considered in change request creation Change model: <any selected change model> Neither model nor change type is passed. Model-based change request will be created Change model: <any selected change model> Type is passed. For example, Normal { "attributes": { "type": "normal" } }Type-based change request will be created Change model: <any selected change model> for example, Model 1. Different model is passed. For example, Model 2.{ "attributes": { "chg_model": { "name": "Model 2" } } }Change will be created based on Model 2 Change model: Not specified
Change type: <any selected change type>
Neither model nor change type is passed Type-based change request will be created Change type: <any selected change type> Model is passed. { "attributes": { "chg_model": { "name": "DevOps" } } }Model-based change request will be created Change type: <any selected change type>. For example, Normal Different type is passed. For example, Emergency.{ "attributes": { "type": "emergency" } }Change request will be created based on Emergency type. Table 2. When the type compatibility property is set to False Change attribute configured in the pipeline step in ServiceNow Change attribute passed in the pipeline Change attribute considered in change request creation Change model: <any selected change model> Neither model nor change type is passed Model-based change request will be created Change model: <any selected change model> Type is passed. For example, Normal { "attributes": { "type": "normal" } }Error Change request can’t be created because the type compatibility flag is disabled. Enable the type compatibility flag in system properties or configure the change model in the step record in ServiceNow or enter the appropriate change model sys id or name in the pipeline.
For information on resolving this error, see Common errors in DevOps Change Velocity.
Change model: <any selected change model> for example, Model 1. Different model is passed. For example, Model 2.{ "attributes": { "chg_model": { "name": "Model 2" } } }Change will be created based on Model 2 Change model: Not specified
Change type: <any selected change type>
Neither model nor change type is passed. Error Change request can’t be created because either the change type or change model isn’t configured for the pipeline.
For information on resolving this error, see Common errors in DevOps Change Velocity.
Change type: <any selected change type> Model is passed. { "attributes": { "chg_model": { "name": "DevOps" } } }Model-based change request will be created Change type: <any selected change type>. For example, Normal Different type is passed. For example, Emergency.{ "attributes": { "type": "emergency" } }Error Change request cannot be created because the type compatibility flag is disabled. Enable the type compatibility flag in system properties or configure the change model in the step record in ServiceNow or enter the appropriate change model sys id or name in the pipeline.
For information on resolving this error, see Common errors in DevOps Change Velocity.
- Configuration of DevOps models
-
The base system change models have the Implementation states field value as Implement, and the Record preset field is selected as Type=Normal by default. The model states available for the DevOps change model are New, Assess, Authorize, Scheduled, Implement, Review, Closed, and Canceled. And the model states available for the DevOps Simplified change model are New, Authorize, Scheduled, Implement, Review, Closed, and Canceled. Depending on your requirements, you can modify the change models and configure the states and transitions for your specific use case.
Figure 1. DevOps Change Model Figure 2. DevOps Simplified Change Model If you want to create your own model instead of using the base system DevOps models, see the instructions in the Create a Change model section.
You can use record presets to configure change details for your change model. Whenever a change is created, these values will be automatically set on the change. You can set a record preset for any change field that exists in the change request.
The following logic is considered for pre-filing the change details when creating a change request.- If you have configured change details in the record preset, then you can’t override this value by passing change details from the pipeline.
- If change details aren’t configured in the record preset, then the values passed from the pipeline is considered for pre-filing the details in the change request.
- If change details are neither configured in the record preset nor passed from the pipeline, then the values configured in the Step form in ServiceNow are considered.
Change details configured in record preset in ServiceNow Change details configured in Step form in ServiceNow Change details passed in the pipeline Change details pre-filled when change is created Assignment group: DevOps Report Assignment group: Not specified Assignment group: Not specified Assignment group will be pre-filled from the record preset in the change request Assignment group: Not configured Assignment group: Not specified Assignment group: DevOps Report Assignment group will be pre-filled from the pipeline in the change request Assignment group: Not configured Assignment group: DevOps Report Assignment group: Not specified Assignment group will be pre-filled from the Step form in the change request
DevOps Change model
The DevOps change model contains flows in the base system for state transition and change approvals. Each state in the DevOps model has its own flows and each flow will get triggered when the required conditions are met. Change approval (auto or manual) is based on the DevOps Model Change Policy. By default, the base system DevOps Model Change Policy only has the manual approval decision activated. When you are ready for more approval automation, you can modify the policy. The following flows explain the state transition and change approval behavior.- Change - DevOps - New: When the change request is created in the New state, this flow gets triggered. If it has an Assignment Group, then this flow updates the change state to Assess.
- Change - DevOps - Assess: When the change request is in the Assess state, this flow gets triggered. There are two key actions in this flow - DevOps Gather Change Policy Data and Apply Change Approval Policy, which are used to
retrieve the DevOps data associated with the change request and check whether the change request must be auto approved, auto rejected, or sent for manual approval. The change approval (auto or manual) happens as part of this flow
in the Apply Change Approval Policy action based on the DevOps Model Change Policy. If the change is approved (auto or manual), it moves to the Authorize state. If the change is rejected, an email notification is sent to the user
who requested the change and the change is moved back to the New state.
- Change - DevOps - Authorize: When the change request is in the Authorize state, this flow gets triggered. In the base system, you will notice that there are two key actions - DevOps Gather Change Policy Data and Apply Change
Approval Policy, which are used to retrieve the DevOps data associated with the change request and check whether the change request must be auto approved, auto rejected, or sent for manual approval. The conditions in the DevOps
Model Change Policy in the Apply Change Approval Policy action won't be met. So the change approval (auto or manual) in this flow will be skipped. This flow will only move the change request state to Scheduled that triggers the
Change - DevOps - Schedule flow. Note:If your change process requires another approval, you can refer to this flow and customize the DevOps Model Change Policy according to your requirements.
- Change - DevOps - Schedule: When the change request is in the Scheduled state, this flow gets triggered. When the planned start date is reached, the change is moved to the Implement state.
- Change - DevOps - Implement: When the change request is in the Implement state, this flow gets triggered.
- is_change_with_partial_data
- regression_tests_failed
- code_security
- code_coverage
- total_num_of_commits
- tests_passing_percent
- load_tests_failed
- num_of_open_incidents
- num_of_outages_in_last_7_days
- num_of_current_outages
- integration_tests_failed
- commits_without_work_item
- change_request
- risk
- Auto approval: If the conditions specified in the policy are met, the change request is automatically approved.
- Auto reject: If one or more of the conditions specified in the policy are not met, the change request is automatically rejected.
- Manual approval: If one or more conditions need manual approval by a user or group, that is specified in the policy. Notifications are sent by the policy to the relevant users or groups to expedite the manual approval and
progress the change request.Note:By default, the base system DevOps Model Change Policy only has the manual approval decision activated.
DevOps Simplified model
- Change - DevOps Simplified - New: When the change request is created in the New state, this flow gets triggered. If it has an Assignment Group, then this flow updates the change state to Assess.
- Change - DevOps Simplified - Authorize: When the change request is in the Authorize state, this flow gets triggered. There are two key actions in this flow - DevOps Gather Change Policy Data and Apply Change Approval Policy,
which are used to retrieve the DevOps data associated with the change request and check whether the change request must be auto approved, auto rejected, or sent for manual approval. The change approval (auto or manual) happens
as part of this flow in the Apply Change Approval Policy action based on the DevOps Simplified Model Change Policy. If the change is approved (auto or manual), it moves to the Schedule state. If the change is rejected, an email
notification is sent to the user who requested the change and the change is moved back to the New
state. Note:If your change process requires another approval, you can refer to this flow and customize the DevOps Simplified Model Change Policy according to your requirements.
- Change - DevOps Simplified- Schedule: When the change request is in the Scheduled state, this flow gets triggered. When the planned start date is reached, the change is moved to the Implement state.
- Change - DevOps Simplified - Implement: When the change request is in the Implement state, this flow gets triggered.
- is_change_with_partial_data
- regression_tests_failed
- code_security
- code_coverage
- total_num_of_commits
- tests_passing_percent
- load_tests_failed
- num_of_open_incidents
- num_of_outages_in_last_7_days
- num_of_current_outages
- integration_tests_failed
- commits_without_work_item
- change_request
- risk
- Auto approval: If the conditions specified in the policy are met, the change request is automatically approved.
- Auto reject: If one or more of the conditions specified in the policy are not met, the change request is automatically rejected.
- Manual approval: If one or more conditions need manual approval by a user or group, that is specified in the policy. Notifications are sent by the policy to the relevant users or groups to expedite the manual approval and
progress the change request.Note:By default, the base system DevOps Simplified Model Change Policy only has the manual approval decision activated.
Callback to resume the pipeline
- The implementation states is used to send a callback to the third-party orchestration tool. If only one implementation state is present in the change model, then an absolute comparison is made. When the change created by a
change model reaches the implementation state that is set, a call back is sent to the third-party orchestration tool.Note:In change models, the Implementation states field can have one or more states. You can define the implementation states for each change model. For more information, see State model and transitions.
- If multiple implementation states are present in the change model, a call back is sent to the third-party orchestration tool in the state where implementation state is reached first.
- If there’s no implementation state set on the change model, then the model states are checked for the Implement state. If the Implement state is present, then that is considered for call back to the third-party orchestration tool. If there’s no implement state in the model states as well, then the value present in the sn_devops.change_request.implement_state property is considered. The value of the system property is -1 by default, which is the implement state.
After upgrade
- The Change model field will be displayed in the Step form. This won’t impact your existing type-based change creation process as the type compatibility property (com.snc.change_management.change_model.type_compatibility) is true.
- If you want to have a model-based change request, set the type compatibility property to false. The Change model field in the Step form will be required. For information on configuration combination based on the property, see the table When the type compatibility property is set to False.
| New or upgrade instance | Type compatibility flag | Model or Type | State transition flows | Auto change approval flows | Callback to 3rd party |
|---|---|---|---|---|---|
| zboot (new or existing zbooted) | false | DevOps model |
|
In the base system, change approval (auto or manual) happens through the Change request - DevOps - Assess flow. If you want another level of approval, you can refer to the Change request - DevOps - Authorize flow and customize the DevOps Model Change Policy accordingly. | See the Note in the Callback section. |
| Upgrade | false | DevOps model |
|
In the base system, change approval (auto or manual) happens through the Change request - DevOps - Assess flow. If you want another level of approval, you can refer to the Change request - DevOps - Authorize flow and customize the DevOps Model Change Policy accordingly. | See the Note in the Callback section. |
| zboot (new or existing zbooted) | false | DevOps Simplified model |
|
In the base system, change approval (auto or manual) happens through the Change request - DevOps - Authorize flow. If you want another level of approval, you can customize the DevOps Simplified Model Change Policy accordingly. | See the Note in the Callback section. |
| Upgrade | false | DevOps Simplified model |
|
In the base system, change approval (auto or manual) happens through the Change request - DevOps - Authorize flow. If you want another level of approval, you can customize the DevOps Simplified Model Change Policy accordingly. | See the Note in the Callback section. |
| Upgrade | true | Type | Current behavior is continued | DevOps Change Request Manual Approval, or DevOps Change Request Minimal Automation Approval, or DevOps Change Request Advanced Automation Approval flows (whichever flow is active) | Change Control Callback flows |