In VESSL, the Revision tab provides detailed information about different configurations of a model service, effectively serving as a recipe that includes the model used, the resources it needs, how it can scale, and how it’s accessed. Revisions are crucial as they help manage different setups and enable rollback to previous configurations if necessary.

Provisioned Revisions

Creating and Managing Revisions

For provisioned services, to create a new revision, navigate to the list of revisions and select “New revision”. This opens a configuration page where you can specify:

  • Container Image: The container image to use.
  • Resource Allocation: CPU, RAM, GPU specifications.
  • Start Command: Command to initiate the service within the container.
  • Port: Networking port to expose (e.g., 3000 for HTTP).
  • Autoscaling: Settings to automatically adjust the number of replicas based on demand.
    • Min: The minimum number of workers to keep running.
    • Max: The maximum number of workers to scale out.
    • Target metric: The metric to use for scaling up or down.
      • CPU: The CPU usage of the Revision.
      • Memory: The memory usage of the Revision.
      • GPU: The GPU usage of the Revision.

Deployment Specifications

  • Service Account Name: Specify a Kubernetes service account for cloud resource access control.
  • Environment Variables: Define environment variables for the container.
  • Advanced Options: Include settings like the minimum and maximum number of replicas and the metrics used for autoscaling decisions.

Actions on Revisions

Specific to provisioned services, you can perform several actions directly from the list of revisions:

  • Stop: Immediately halt the currently deployed and running revision.
  • Scale: Adjust the number of replicas for the deployed and running revision.
  • Delete: Remove the selected revision.
  • Export: Export the YAML file of the selected Revision.

Serverless Revisions

Revision Configuration

Serverless revisions are immutable configurations that specify the exact setup of a model service:

  • Resource Allocation: Clearly defines the compute resources, such as CPU and memory allocations.
  • Container Image: Specifies the Docker image used, typically a VESSL managed image.
  • Commands: Configures the command to run inside the container, including the working directory.
  • Port Configuration
    • Name and Number: Identifies the exposed port, crucial for external access to the service.

Editing Revisions

Revisions in serverless mode can be edited by clicking the “Edit” button, allowing updates to resource allocations and command configurations.