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, programming language, 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.
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.
Revisions and Building¶
Each uploaded deployment package triggers a building process, which creates a container with the deployment code to start processing requests. For more information, click on the expansion button to see the builds of a revision, along with the status and a description of what triggered the build.
During building, the required packages for the deployment are installed, an instance that will handle the requests is deployed and the deployment is initialised. During the building process, the build status can take on the following values:
VALIDATING and eventually
If the building completes successfully, the version will be in
AVAILABLE state, which means it is ready to accept requests immediately.
However, if the building fails at any of these steps, the version will be
UNAVAILABLE. The building process might fail because of errors in the deployment file or during initialisation of the deployment class. If this happens, view the logs of the version to see more details on what went wrong. No requests can be made to an unavailable version.
It is possible to overwrite a deployment version with a new deployment package, this will trigger a new build and the history of updates will be visible in Revisions. If you upload a new deployment package to a deployment version, hereby overwriting the previous revision and triggering a new build, it could happen that the new build fails because of an error in the new deployment package. In this case the build status will be
FAILED but the version can still be
AVAILABLE as it reverts back to the older revision with a successful build.
UbiOps maintains a full history of the ZIP packages uploaded to a version, which allows for tracing back the code that was deployed at any point in time. In the WebApp, navigate to Revisions to see the history of packages. You can also download the respective deployment package from there.
You need to specify the deployment mode for each deployment version. UbiOps distinguishes two deployment modes: express, or batch. For more information, see Deployment Modes.
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.
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.
Fill in the version name and the programming language. Please note that the programming language cannot be changed after creating the version. Click on the Upload code button to upload the ZIP file for the new version. The required structure of the ZIP file can be found under Deployment package structure.
At the Deployment mode section you can specify the deployment mode of your version. This can either be batch or express. For more information see the Deployment types section
Other configuration parameters are optional, such as for example the memory allocation. These can be set in the Advanced parameters. As with deployments, you can assign labels to versions to easily filter them later on.
Finally, click on the Create button to create the new version.