Autoscaling and High Availability

Autoscaling Configuration

Enterprise listens to all interfaces on ports as specified above (8120 by default, optionally 8120 through 8120+number of cores) to facilitate sending all traffic from a load balancer (that terminates TLS) such as an ELB or HA Proxy server, while Pro listens to localhost only.

Remember to configure Redis on a separate host (replicated and Elasticache work well) using the HA/Redis tab of the admin dashboard.

Multi-core Startup Script

Run a single instance of Userify for each processing core on each node:

#! /bin/bash

# Userify multi-core startup script
SERVER_PATH="/opt/userify-server"
SERVER_COMMAND="$SERVERPATH/userify-server"

# adjust number of cores as appropriate
numcores=$(grep processor /proc/cpuinfo |wc -l)

cd "$SERVER_PATH"
for port in $(seq 8120 $((numcores+8119)))
do

    (while true
    do

        echo "Starting Userify on $port and sending output to syslog."
        sudo "$SERVER_COMMAND" server $port | \
            logger --priority local2.info --tag userify-server 2>&1

        # when the server exits, sleep 3 seconds before restarting
        sleep 3

    done) &

    # slow down startup between each core
    sleep 10

done
echo
echo "Be sure to add proxy_pass statements for ports shown above."

Expert configuration and installation support available at enterprise@userify.com.