High Availability Setup

High Availability can be applied to Deveo after the Deveo Cluster installation has been performed, and Deveo has been bootstrapped.

Step 1: Scaling up with Load Balancer

As was mentioned in HA Deployment, an SSL load balancer is required, which will decrypt SSL connections and also balance requests across the Deveo Web servers.

The Deveo package does not include load balancer, therefore it needs to be installed separately. The following guide is recommended to setup the load balancer first if none exists.

Step 2: Mounting Shared Storage

With a load balancer, the user requests will be randomly distributed across the cluster nodes, so the data will become immediately out of sync. To fix this issue, attach the same shared storage to each Deveo Web server. If existing storage with a clustered file system doesn't exist, contact the Support team for further help.

After shared storage is available, stop Deveo, then mount the storage to /var/opt/deveo/shared. Next, bring Deveo back online:

sudo deveo-ctl stop
sudo mv /var/opt/deveo/shared /var/opt/deveo/shared.bak
# Mount storage to /var/opt/deveo/shared and sync back the data
sudo rsync -av /var/opt/deveo/shared.bak/ /var/opt/deveo/shared/
rm -rf /var/opt/deveo/shared.bak
sudo deveo-ctl start

Step 3: Synchronizing SSH Host Keys

Since the SSH host keys will differ between the cluster nodes, they need to be synchronized. Deveo configuration process can use the ssh directory on the shared storage and copy the SSH host keys to the usual /etc/ssh. This will enable every new Deveo Web server added to the cluster to have the same SSH host keys. So on the first Deveo Web server, create the directory and copy SSH host keys:

mkdir -p /var/opt/deveo/shared/ssh
cp /etc/ssh/ssh_host_* /var/opt/deveo/shared/ssh/
chown root.root /var/opt/deveo/shared/ssh/*
chmod 600 /var/opt/deveo/shared/ssh/*

Step 4: Adding More Deveo Web Servers

After steps 1 through 3 are performed, additional Deveo Web servers can be added to the cluster. Since the Deveo Configuration file is stored on a shared partition /var/opt/deveo/shared, simply install the Deveo Web package and reconfigure it, and Deveo will automatically pick up the needed configurations:

RHEL and CentOS

yum install python-devel gettext python-docutils pam-devel cronie postfix libidn libidn-devel
rpm -ivh deveo-web-X.X.X-stable.el6.x86_64.rpm

Debian and Ubuntu

apt-get install python-dev python-docutils gettext sudo libpam0g-dev postfix libidn11 libidn11-dev cron
dpkg -i deveo_web_X.X.X_amd64.deb

Step 5: Changing Hostname

At this stage everything should be up and running, and requests should be distributed across all Deveo Web servers. However, Deveo is still bootstrapped with the hostname of the first Deveo Web server installed. To fix this, go to Deveo Admin and change the hostname to the load balancer.

Updated on: 28 April 2017