Skip to main content

Deployment patterns

Each company has its own deployment pattern. The most common ones (supported by Rossum Sandboxing tool) are:

Single environment for sandbox and production

This is the simplest pattern for companies who do not have the need for separate sandbox environment.

To start using this patten, simply initialize a new project in some empty directory using the following command:

prd init

This command will create a new credentials.json file. Fill in your username and password for source (you can leave target section as is for this simple setup):

credentials.json
{
"source": {
"username": "CHANGE ME",
"password": "CHANGE ME"
},
"target": {
"username": "...",
"password": "..."
}
}

Also configure the source_api_base in prd_config.yaml file. By default, it would be:

prd_config.yaml
source_api_base: 'https://api.elis.rossum.ai/v1'
use_same_org_as_target: true

Now you can pull (and eventually commit into Git) your whole organization configuration:

prd pull

Once you commit this initial version to Git, you can update any configuration and deploy it to the same organization using the following command:

prd push

Two environments for sandbox and production

A bit more advanced setup with two environments: sandbox and production. Typically, the solution is first deployed to the sandbox organization (source) and once tested, released to production (target).

To use this pattern, follow the same steps as outlined in the Simple environment example and first init your local repository:

prd init

However, now setup both source and target organizations:

credentials.json
{
"source": {
"username": "CHANGE ME",
"password": "CHANGE ME"
},
"target": {
"username": "CHANGE ME",
"password": "CHANGE ME"
}
}

Notice that use_same_org_as_target is now set to false:

prd_config.yaml
source_api_base: 'https://api.elis.rossum.ai/v1'
target_api_base: 'https://api.elis.rossum.ai/v1'
use_same_org_as_target: false

To push local changes to the sandbox, run push command:

prd push

And to release changes to production, run release command:

prd release

The local repository should always contain both source and target organization configurations. They can both be updated by calling prd pull command. You can also run prd pull source or prd pull target to update only one.

Three environments for sandbox, UAT, and production

Finally, the most complex pattern with three environments: sandbox, UAT, and production. In this scenario, several environments are chained one after the other.

For sandbox and UAT environment configurations, see the Two environments example.

To configure the remaining production environment, it is necessary create a new Git branch and maintain there the configuration (from UAT to Production). Alternatively, for better transparency, create a new folder to store this configuration. This is necessary because prd currently doesn't support multi-target configurations out of the box.