Service instance migration
The procedure of moving service instance(s) across service versions is called service instance migration. The service instance migration is initiated from the Execution Instance interface.
Perform migration
Cloud execution provides a guided migration via a user interface to help with the migration procedure. It can be accessed from Execution instances → Service instances
.
Service instances can be easily filtered by using the Search
box on top of the table.
If the search yields no results, the Migrate service instances button will be disabled. |
To start migration, click on Migrate service instances that will open a dialog allowing to select the target service version.
Once the target service version is selected, clicking on Migrate button will trigger the validation and migration.
In case of validation errors concerning incompatible changes in the model structure, validation issues are reported and mapping options are offered.
Once all validation issues are resolved, migration can complete and a migration report is provided in a downloadable json
file format as well as expandable in text.
Technical details
Service instance migration allows to move service instances from one service to another. Service instances can be moved up or down the version number.
Thus migrating from service A
of version 1.0
can be moved to version 2.0
and vice versa.
Service migration will perform the following operations:
-
Locate service instances that should be migrated - either all or filtered by name, id or tags
-
Validate that migration can be performed
-
Migrate service instances by creating new instance in the target service and copy service instance context (including data)
-
Provide migration report with details about what was migrated
-
Delete service instance after successful migration from the source service
As an outcome of migration, service instance will be accessible for further execution in the target service version and removed from the source service to avoid duplicated service instances.
Removal of the service instance from source service can be optionally disabled in case service instances should remain in the source service after migration. |
Scope of migration
Service instances that should be in the scope of migration can either be all active instances or those that match given filter. The filter can target
-
name of the service instance - partial match based on
like
operator -
id of the service instance - exact match resulting in migrating just single instance
-
tags of the service instance - exact match for all tags given
Filtering of service instances reduces the number of service instances that will be migrated and allows to have more control over what is migrated.
Validation
Validation is performed before migration is attempted. Validation responsibility is to ensure that the selected service instances can be successfully migrated. Most important aspect of the migration is to move active nodes in source service into the target service. There are several important considerations:
-
model existence - models in both services must be present. When moving from one version to the another, instances can find the definition of their model (process or case).
-
node compatibility - corresponding nodes exist in the target service that can be activated upon migration. The node must match based on
-
its element id defined in the model
-
its type e.g. User Task
-
In case of validation errors, the user is asked to provide mapping into the target service.
Mapping of models and nodes
In case of validation errors, mapping of models and/or nodes must be provided. Both models and nodes can be:
-
Mapped to a corresponding element of the same type
-
Marked as no mapping required - to skip this model or node during migration
When marking model and/or node to be skipped (no mapping required) they are not migrated which results in removing the affected model or node from the target service instance.
Skipping nodes and models can result in service instance to be automatically completed if there are no other nodes or models active. It is recommended to always map models and nodes. |
Migration
Migration is performed after a successful validation. Migration is done on each service instance that is in scope. Service instance migration applies to complete service instance hierarchy meaning that if there are any sub instances they are also migrated.
Each service instance that are migrated reports its status from the following:
-
success - the service instance (and its sub instances) was successfully migrated
-
failed - the service instance (or one of its sub instances) failed during migration
-
skipped - the service instance was already found in the target service or it was marked to be skipped by a mapping
Service instance in source service is only deleted when status of the migration is returned as a success .
|
At the end of migration, a report is returned that contains the following information:
-
Number of instances in scope (excluding sub instances)
-
List of instances that were successfully migrated
-
List of instances that failed
-
List of instances that were skipped
Each instance in the report comes with detailed information
-
Instance name
-
Instance id
-
Model id
-
Model name
-
Status
-
Message
Message is only set when instance is in status failed or skipped
|