Upgrade from 2018.1

Version:
2019.3
Last modified: April 02, 2020

Follow these instructions to upgrade from 2018.1 to 2018.3.1.

You have to run the Promote upgrade script from a machine with SSH access to your Promote cluster.

System Requirements

Make sure these ports are open between nodes in your Promote cluster:

  • 5002
  • 5400

Pre-Upgrade Checks

Make sure you walk through each of these steps before you run the 2018.1 upgrade script:

1. Update your R models to use jsonlite, instead of rjson.

The default JSON parser for R models has changed from rjson to jsonlite, which has slight parsing variations. If you think this may interfere with any of your R models, we recommend either of these options:

Redeploy test

Modify and redeploy your model to Promote.

Use the rjson package

Create an environmental variable called JSONLITE in the model. Assign to it the value FALSE. This causes the model to revert back to rjson as its default parser. Follow these steps to modify a model you've deployed:

  1. Select the model inside the Promote UI.
  2. Select Advanced.
  3. Click the blue + under Environmental Variables.
  4. Enter the name JSONLITE and the value FALSE.

2. Make sure you have the correct version of pip installed on your nodes.

In previous versions, Promote Python containers automatically installed the latest version of pip. Now you must match your Promote version with the version of pip available at that time, which was version 9.0.1. For more information, reference the pip release notes.

3. Update Promote's base image for Python to yhat/promote-python:2018.3.1.

Under the Admin tab in the Promote UI, navigate to the Advanced settings. There, input yhat/promote-python:2018.3.1 in the appropriate field to upgrade the Python base image.

Wait for the base image to upgrade. (Normally you see a status bar for the upgrade, but in some cases, you may see only a circular loading indicator. In that case, wait five minutes and then refresh the page. You should see that you successfully updated the base image.)

4. Update Promote's base image for R to yhat/promote-r:2018.3.1.

Under the Admin tab in the Promote UI, navigate to the Advanced settings. There, input yhat/promote-r:2018.3.1 in the appropriate field to upgrade the R base image.

Wait for the base image to upgrade. (Normally you see a status bar for the upgrade, but in some cases, you may see only a circular loading indicator. In that case, wait five minutes and then refresh the page. You should see that you successfully updated the base image.)

After you upgrade, prediction requests that encounter errors other than timeout errors will return 400 response codes with ERROR statuses, rather than 200 response codes.

Upgrade Instructions

Open the upgrade script with a text editor (such as vi):

Bash
  1. vi PATH/TO/upgrade_to_2018.3.1.sh

After you open the file, it should look like this:

Bash
  1. NODE_1_IP=''
  2. NODE_2_IP=''
  3. NODE_3_IP=''
  4. NODE_1_INT_IP=''
  5. NODE_2_INT_IP=''
  6. NODE_3_INT_IP=''
  7. SSH_USER=''
  8. KEY_PATH='' # Path on local machine

Within each set of single quotation marks, use vi to insert this information:

  • External IP addresses of the nodes that are already a part of your Promote cluster
  • Internal IP addresses of the nodes that are already a part of your Promote cluster
  • SSH user and key file

After you update the empty fields with needed information, the file should look like this:

Bash
  1. NODE_1_IP='NODE1_EXTERNAL_IP'
  2. NODE_2_IP='NODE2_EXTERNAL_IP'
  3. NODE_3_IP='NODE3_EXTERNAL_IP'
  4. NODE_1_INT_IP='NODE1_INTERNAL_IP'
  5. NODE_2_INT_IP='NODE2_INTERNAL_IP'
  6. NODE_3_INT_IP='NODE3_INTERNAL_IP'
  7. SSH_USER='USERNAME_FOR_SSH'
  8. KEY_PATH='PATH/TO/SSH/KEY' # Path on local machine

Now that you've provided needed information to the upgrade script, run it:

Bash
  1. sh upgrade_to_2018.3.1.sh

The script prompts you to make a few selections. Confirm that all information is correct by providing either a y or n response to each prompt:

  • Answer y to migrate Elasticsearch.
  • Answer y to clean up old Promote instances.
  • Answer y to configure Docker with the new 2018.3.1.

After you indicate your preferences by responding to those prompts, the script kicks off several upgrade actions on your nodes:

1. Your manager node performs these actions:

  • Removes stale indexes and templates from Elasticsearch 5.x
  • Stops Promote
  • Waits about 10 seconds for Promote services to shut down
  • Removes stale influxdb data

2. All nodes perform these actions:

  • Update the daemon.json file for Docker and then restart it
  • Update system logging settings to use journald and restart systemd-journald
  • Reboot
  • Replace the promote.yml compose file
  • Replace the updateImages.py file

3. Promote then restarts, which triggers a redeploy of all models.

After the script completes, wait for Promote services to build the Promote UI and verify that it is up and running. You can watch these services generate:

Bash
  1. watch -n .3 docker service ls

Check the Promote UI to verify that it is running and that all your models successfully redeploy.

Troubleshoot

If a model fails to redeploy, select the Redeploy button in the UI to trigger a manual redeploy. Find the Redeploy button under the Advanced settings for your model. If a manual redeploy fails to resolve the problem, contact Alteryx Support.

Was This Helpful?

Running into problems or issues with your Alteryx product? Visit the Alteryx Community or contact support.