Skip to content

Deployment versions

Each UbiOps deployment has at least 1 or more versions. It is possible to create multiple versions of a deployment.

All versions in a deployment share the same in- and output fields, but the deployed code package, base environment, memory allocation and other settings can be different.

You can make requests to any version of a deployment at any point in time. Each deployment version will have a unique API endpoint which you can use.

Default versions

The more versions a deployment has, the harder it is to track which version is the 'latest' or 'correct' version to make a request to or to be used in a pipeline. It is possible to mark a version of a deployment as the default version of that deployment, which allows for the following:

  • Specifying a version when making a request to a deployment is not necessary. If not specified, the request will always go to the default version that is currently set.
  • If an object in a pipeline refers to the default version of a deployment, the request will go to the default version that is currently set. This also means that when you update the default version of a deployment, the pipeline will execute the code from the Default version.

There can only be one default version per deployment. If the default version is changed, it is effective immediately, meaning that any request after this moment will be directed to the new version. Note that already created but unprocessed batch requests will still be processed by the version that was the default when creating the batch request. Click on Edit in the deployment details page in the WebApp to change the default version of that deployment.

Only versions that have passed the building stage and are available can be marked default. The first version of a deployment is always marked default.

To make a request to the default version, navigate to the deployment details page in the WebApp and click on Create Request.

See Monitoring for information on how to monitor your deployment.

Referencing a default deployment version

The default version of a deployment can be used in a direct and batch request and when creating a request schedule.

Creating a new version of an existing deployment

When using the WebApp, a first version is automatically created while creating the deployment. You are able to add more deployment versions at a later time.

Create new deployment version

In the left navigation bar, click on Deployments. Select the deployment to which you want to add a new version.

Then, click on the Create version button in the versions pane at the top left. The version creation form will appear.

Give your deployment version a name and description and click on the Upload code button to upload the zipped deployment package for this version. The required structure of the ZIP file can be found under Deployment package structure.

After uploading your deployment package, you'll need to specify the Environment settings of your deployment. These settings specify the runtime environment (Python version and dependencies) as well as the hardware this deployment version needs. For the latter you will need to assign the deployment version to an instance type group. This instance type group specifies one or more instance types that the deployment version can run on.

Other configuration parameters are optional, such as for example the scaling settings. These can be set in the Advanced parameters section. As with deployments, you can assign labels to easily categorise your versions.

Finally, click on the Create button to create the new version.

Creating a version using the API

For example via the Python Client Library deployment_version_create function.

Click here for an example taken from the Deploy Mistral tutorial
# Create the version
version_template = ubiops.DeploymentVersionCreate(
    version=DEPLOYMENT_VERSION,
    environment=ENVIRONMENT_NAME,
    instance_type="16384mb_t4",
    maximum_instances=1,
    minimum_instances=0,
    maximum_idle_time=600,  # = 10 minutes
    request_retention_mode="full",
)

api.deployment_versions_create(
    project_name='project_name_example', deployment_name='deployment_name_example', data=version_template
)

Static IP addresses

UbiOps deployments get assigned random public IP addresses by default. This means that the IP address that is used to access the public internet from the deployment can be different for every request.

You can change this behaviour by enabling the Static IP flag for deployments. When this option is enabled, the deployment is guaranteed to access the internet using an IP address from a predetermined set of IP addresses (see below).

This feature is useful if you want your deployment to access an API, database or other service where access is limited to certain IP addresses.

Minimum memory allocation for static IP addresses

Static IP addresses can only be enabled on deployments that are configured with at least 512 MB of memory.

Current static IP addresses in use

The following IP addresses are currently in use on UbiOps SaaS:

  • 35.214.145.84
  • 35.214.149.156

This list can change in the future. We will provide a one-week notice for changes to allow you to update firewalls or other configuration.

At the moment only static IPv4 addresses are available, IPv6 is not supported.

Opening up a port from your deployment (Beta)

If you want to run processes in a deployment that open up a port, you need to use the port forwarding functionality to be able to access this port. In the advanced settings of a deployment version there is a section called "Port forwarding" where you can specify which deployment port should be opened up to which public port. You can also select which internet protocol to use, which can be either TCP (default) or UDP.

Port forwarding can be used to run processes like Jupyter Notebook and Streamlit directly on a UbiOps instance, or to establish an ssh connection to a running deployment for extra debugging options. Have a look at these how-to's for examples:

Please note that port forwarding only works with dedicated instance types and it cannot be used together with static IP. In the WebApp you can check which instance types in your project are compatible with portforwarding by checking Project Admin > Project Settings > Instance types.