Quick start

This quick start guide describes the steps to install and run Optimization Server on your laptop. It also provides downloadable code samples to run Optimization Server jobs. Finally, a worker sample is provided to start extending Optimization Server.

Running Optimization Server locally

Prerequisites

Install the following pieces of software on the computer where Optimization Server will be run:

The Docker engine needs to be logged in the Optimization Server docker registry to be able to pull images.

Credentials can be requested using the contact section.

Then, use the following shell command to log in the registry:

docker login product-dbos-prod-docker-group.decisionbrain.cloud

Starting Optimization Server

Create a folder in the computer.

Download the following archive and decompress it into this folder: dbos-deployment.zip

Open a shell, go to the created directory. To run the Optimization Server with Keycloak authentication, run the following command:

docker-compose up -d

Docker images will be pulled from the nexus docker registry, that may take a while. When Docker says containers are started, wait a few seconds until Optimization Server starts. You can access the Optimization Server web console in a web browser there: http://localhost/. The default credentials to log in are optimserver / optimserver .

You now have a Optimization Server instance running locally. To be able to run some jobs, the next section describes how to start pre-packaged Optimization Server workers.

Starting pre-packaged Optimization Server workers

Pre-packaged Optimization Server workers allow to solve optimization problems with IBM Ilog Cplex, CpOptimizer or OPL.

Use the following shell command to log in the CPLEX registry:

docker login product-dbos-cplex-prod-docker-group.decisionbrain.cloud/dbos

Open a shell, go to the directory created in the previous section, and run the following command:

docker-compose -f docker-compose-workers.yml up -d 

Running a first job

Now Optimization Server and Cplex worker are up and running, let us run a sample Cplex job. Go to the Optimization Server web console and select the job creation view, as shown on the screenshot below.

Cplex job creation

Fill in the "Model" input with the following sample model from cplex examples: UFL_25_35_1.mps Then click on the "Submit" button.

Job creation

A green banner appears on the top of the web browser, with a link to the job execution view. Click on the link.

You are redirected to the job execution view. The job status displayed on the top should be "running", then "completed" after a couple of seconds.

More information about the web console are available in the dedicated section.

Starting Optimization Server jobs from a custom client

A custom client for Optimization Server could call any of the Optimization Server APIs as defined in the dedicated section.

For example, it could create and start Optimization Server jobs for tasks exposed by pre-packaged workers.

This is what we demonstrate below.

Prerequisites

For now, only Java clients are provided. Thus, a custom client application may be written in Java 17+.

To be able to download samples, you have to log in our Nexus artifact repository. The same credentials as to log in our docker registry should be used.

The Java sample launches a two new jobs for the tasks CplexTask and OplTask that will be executed by the pre-packaged workers, which need to be started. Follow the instructions in the "Starting pre-packaged workers" section above.

Writing a custom worker

Sample custom worker

A sample custom worker can be downloaded there: dbos-hello-world-worker-4.4.0.zip

Decompress the archive and follow the instructions given in the README.md file to run this sample worker.

More documentation about writing a custom worker is available in the dedicated section.