Categories

Versions

Licensing

Starting from AI Hub version 10.1, Altair Unit Licensing is the default licensing mechanism for Server, Job Agents and Scoring Agents. Please see enforcing RapidMiner license if you need to still use RapidMiner licensing in your updated deployment of AI Hub.

RapidMiner AI Hub and its components like Scoring Agents and Job Agents require a valid license to be used and support the following licensing mechanisms:

  1. Altair Unit Licensing
  2. RapidMiner Licenses which can be retrieved from my.rapidminer.com

The following sections outline each mechanism separately.

From 10.1.0 to 10.1.2, environment variable for license configuration has changed. If you already have a 10.1.0 deployment, please ensure to change LICENSE_ENABLE_ALTAIR=false (RapidMiner licensing) to LICENSE_MODE=RAPIDMINER or LICENSE_ENABLE_ALTAIR=true (Altair licensing) to LICENSE_MODE=ALTAIR_UNIT.

Altair Unit Licensing

Altair Unit Licensing is enabled by default for components of AI Hub.

All AI Hub applications report usage statistics via a so called License Agents to a central component called License Proxy. The License Proxy is responsible to talk to the actual Altair License Manager and is included in the default deployment. It needs to be running all the time.

In general, the License Proxy supports:

  1. On-premise for a locally deployed Altair License Manager, e.g., the lmx-serv binary, and
  2. Altair One integration

as operation modes.

When using Altair One integration, the License Proxy has support to authenticate against it with the following authentication types:

  1. Credentials: This requires setting your Altair One credentials into the environment of the License Proxy. It will automatically request an Auth Code and with the help of the Auth Code it will obtain a static/auth token.
  2. Auth Code: With the help of an Auth Code which can be obtained from Authorized Machines tab in the Altair One user profile web page, a static/auth token is generated.
  3. Static Token: A Static/Auth Token is directly used to authenticate against the Altair License Manager.

All of the configuration and authentication process only has to be done once, information is persisted afterwards and any subsequent restarts will re-use existing authentication information properly.

For more information about the License Proxy's functionality, configuration and authentication, please refer to the below sections.

License Agent

The License Agent is a library included into each AI Hub Server component which reports information to the deployment's License Proxy instance.

License Agents send periodic heartbeats to their assigned License Proxy. The URL of the License Proxy to reach out to is determined by LICENSE_AGENT_PROXY_URL.

In case the responsible License Proxy cannot reserve any new Altair Units, the License Agent shuts down the application.

License Agents identify their host system with a machineId. Ensure that ..._LICENSE_AGENT_MACHINE_ID= is properly set for each application. This machine identifier must be the same for all applications residing on the same host and share the same CPU resources. It must be different for different hosts. The identifier is used during leveling.

See available environment variables for

License Proxy

The License Proxy is an application which manages Altair Units and communicates with an Altair Unit Manager. This Altair Unit Manager can be Altair One or a local deployed version of it.

The License Proxy provides means to manage information sent by License Agents in an AI Hub deployment by listening for heartbeats from all connected License Agents. It is a unique application within one deployment/cluster, but should be present for each cluster if there are multiple, e.g., environments for development, staging, or production.

Main functionality of the License Proxy:

  • Draws and reserves units for AI Hub components from your Altair Unit Manager (5 units per CPU, leveling applied).
  • Manages life cycle of License Agents, e.g. enforces a shut down of the underlying application if no units are available or there has been no heartbeat.
  • Checks-in drawn units only after a certain timeout, so that AI Hub applications can be restarted and updated without directly giving back all drawn units

There are two ways how the License Proxy connects to an Altair Unit Manager: on premise and via Altair One. Those different modes require setting different environment variables which are described in the sections below.

On premise

By default, the on premise mode is enabled inside the License Proxy which sets LICENSE_PROXY_MODE=on_prem. In addition, you need to provide the path to your on-premise license manager via ALTAIR_LICENSE_PATH, e.g. with ALTAIR_LICENSE_PATH=6200@network-address, where 6200 is the default port of the Altair license manager and network-address is a network address which the License Proxy needs to be able to connect to. This environment variable is required in any case except for a local Altair License Manager (which is highly unlikely in production setup).

Altair One

Please make sure that the TZ time zone environment variable is properly set inside the License Proxy’s environment configuration.

Altair One can be used to manage your units. For this, you need to set LICENSE_PROXY_MODE=altair_one and provide necessary identity information which depends on how you like to authenticate against Altair One.

The authentication process is automatically executed on first start of the License Proxy depending on the configured environment variables. Information is persisted for any subsequent restarts of the License Proxy. For this to work, the License Proxy uses file system access at LICENSE_PROXY_BASE_DIR/home (also known as environment variable LICENSE_PROXY_HOME_DIR). By default, this is located at /license-proxy/home for the docker image. This location should be sticky, e.g. with a volume or host bind.

Altair One: Authenticate via credentials

The License Proxy authenticates against Altair One via your credentials.

Please set the following environment configuration accordingly.

Property Value
LICENSE_PROXY_MODE altair_one
LICENSE_UNIT_MANAGER_AUTHENTICATION_TYPE credentials
LICENSE_UNIT_MANAGER_USER_NAME <your user name from Altair One>
LICENSE_UNIT_MANAGER_PASSWORD <your password from Altair One>

Altair One: Authenticate via auth code

The License Proxy authenticates against Altair One via your auth code.

To obtain a valid Auth Code, visit Altair One web page, click on your User Profile and then go to the Authorized Machines tab and click on the Generate button.

Please set the following environment configuration accordingly.

Property Value
LICENSE_PROXY_MODE altair_one
LICENSE_UNIT_MANAGER_AUTHENTICATION_TYPE auth_code
LICENSE_UNIT_MANAGER_AUTH_CODE <your obtained Auth Code from Altair One>

Altair One: Authenticate via static/auth token

The License Proxy authenticates against Altair One via your static/auth token.

To obtain a valid Static/Auth Token, consult Altair One documentation how to manually generate it.

Please set the following environment configuration accordingly.

Property Value
LICENSE_PROXY_MODE altair_one
LICENSE_UNIT_MANAGER_AUTHENTICATION_TYPE static_token
LICENSE_UNIT_MANAGER_TOKEN <your manually obtained static/auth token>

Environment configuration overview

Property Values Description
LICENSE_UNIT_MANAGER_AUTHENTICATION_TYPE credentials, auth_code, static_token Determines how your account is identified against Altair One, e.g. via a auth code, static token or with your username and password.
LICENSE_UNIT_MANAGER_AUTH_CODE <your auth code> Only required when authentication type is set to auth_code. Set to specific Altair One auth code for your account which you can obtain from within the Altair One web interface.
LICENSE_UNIT_MANAGER_USER_NAME <your Altair One username> Only required when authentication type is set to credentials. Set to the user name of your Altair One account.
LICENSE_UNIT_MANAGER_PASSWORD <your Altair One password> Only required when authentication type is set to credentials. Set to the password of your Altair One account.
LICENSE_UNIT_MANAGER_TOKEN <your static/auth token> Only required when authentication type is set to static_token. Set to specific Altair One token for your account. Needs to be generated manually!
LICENSE_UNIT_MANAGER_RESET_AUTH_TOKEN false When mode=altair_one: Resets any stored authentication information when already persisted in LICENSE_PROXY_HOME_DIR.

Troubleshooting

  • In case you see an error message similar to Requested version number is greater than version number in license (Version found in license is: x), please make sure to upgrade your Altair License Manager.
  • In case you see an error that a feature has not been found, please make sure that the License Proxy's TZ time zone configuration is properly set.

Validate Altair Unit Licensing succeeded

To see whether Altair Unit Licensing is enabled, you can visit AI Hub Server's web page and go to Management -> Licenses. You should see altair_unit as illustrated in the below image.

img/aihub_altair_license.png

Leveling

Altair Unit licensing key metric are used CPU resources for which the License Proxy draws Altair Units from the configured Altair License Manager which can be deployed on-premise or use Altair One.

When applications reside on the same host, then only for the maximum number of CPU resources units are drawn. This is called leveling.

Example

  • Application A reports 2 CPU and resides on host 1
  • Application B reports 1 CPU and resides on host 1
  • Application C reports 4 CPU and resides on host 2
  • Application D reports 8 CPU and resides on host 2

Because application A and B and C and D reside on the same host. Units are only drawn for their maximum per host. In total, 2 (for A and B) and 8 (for C and D) units will be drawn.

Standalone Altair license for Scoring Agents

Standalone Altair license is only supported for edge devices running with the docker engine. Neither Kubernetes nor OpenShift deployments are supported.

The Scoring Agent is the only AI Hub Server application which also supports Altair standalone license (also known as node lock license).

By default, the .dat license file needs to be made available inside the Scoring Agent's docker container at the location /scoring-agent/home/resources/licenses/altair_standalone.dat. You can either copy the .dat file into the created docker volume or manually bind the path to a host system path, e.g. with /home/user/my.dat:/scoring-agent/home/resources/licenses/altair_standalone.dat.

In addition, you need to instruct the Scoring Agent to switch its license mode with LICENSE_MODE=ALTAIR_STANDALONE.

Because standalone license files are bound to MAC addresses, you need to expose the MAC address of your license file for the Scoring Agent's docker container. This can be achieved in two ways:

  1. Set the MAC address of your license file as a docker container argument, e.g. with --mac-address XX:XX:XX:XX:XX
  2. Set the docker container's network mode to host with --network host.

When configuration has been done properly, the Scoring Agent will start serving and print that it's using Altair standalone license:

InitializerService : Initializing Altair standalone license
InitializerService : Successfully checked out feature 'RapidMinerAIHub' with version '22'
InitializerService : Starting ALJDK check
InitializerService : Initialized Altair standalone license successfully
InitializerService : Altair standalone license information: RapidMinerAIHub (expires on yyyy-mm-dd at hh:mm)

RapidMiner Licensing

RapidMiner licenses for Server, Job Agent and Scoring Agent are available in the Licenses tab of my.rapidminer.com.

To use RapidMiner licensing, you have the option to set the environment variable LICENSE_LICENSE to the actual license content by copying and pasting it from the web interface, or you can place the license contents into the proper license location which depend on the application, though the environment variable key LICENSE_LOCATION is shared.

Server

For RapidMiner Server to pick up the license, add the license via LICENSE_LICENSE or add a .lic file with the license's content into the proper directory in the attached volume residing in /aihub/home/resources/rapidminer-server/license.lic in the docker image.

For more information about the home directory and available environment variables, please look into the settings table.

Scoring Agent

Scoring Agents work with a RTS license or a RapidMiner Server license. For the Server license you need to set SCORING_AGENT_ENABLE_SERVER_LICENSE=true. In either case, you need to properly add the license via LICENSE_LICENSE or add a .lic file with the license's content into the proper directory in the attached volume residing in /scoring-agent/home/resources/rapidminer-scoring-agent/license.lic (RTS license) or /scoring-agent/home/resources/rapidminer-server/license.lic (Server license) in the docker image.

For more information and available environment variables, please look into the settings table.

Job Agent

Job Agents synchronize RapidMiner licenses automatically. You only need to set LICENSE_LOCATION or LICENSE_LICENSE when you’ve disabled resource synchronisation.

Job Agents work with the RapidMiner Server license. When a Job Agent starts, the proper license is retrieved from RapidMiner Server. If you've disabled resource synchronisation, then add the license via LICENSE_LICENSE or add a .lic file with the license's content into the proper directory in the attached volume residing in /jobagent/home/resources/rapidminer-server/license.lic in the docker image.

For more information about available environment variables, please look into the settings table.

Enforce RapidMiner Licensing

Please make sure to properly set the LICENSE_MODE environment variable for all applications, don’t leave it blank or comment it in in your deployment files Otherwise the applications fall back to Altair Unit licensing!

By default, AI Hub 10.1+ uses Altair Unit Licensing. If you like to use RapidMiner licensing instead, set LICENSE_MODE=RAPIDMINER for each deployed application. This will require valid RapidMiner licenses being available either set by LICENSE_LICENSE or LICENSE_LOCATION.