Running Avalon and Worker services on separate hosts
In some cases, it may be desirable to run the Worker processes (for transcoding etc) on a separate host. This document is a work in progress, please report any issues you might find.
Deployment overview
To split the Worker application to a separate host from the rest of Avalon, essentially, you want to set up two identically-configured Avalon deployments -- but some services are not installed, or are disabled, on each.
There are mixed reports about the best place to run Redis. It can be run on either the Web host or the Worker.
Connecting the two instances
The Web and Worker hosts have basically identical configurations, just with different services enabled.
At the very least, they need to point to the same Avalon DB (which must be reachable from both hosts)
Configured in config/database.yml
You *might* need to have identical Fedora configs on both hosts. It's unclear whether this is required on the Worker.
Configured in config/fedora.yml
Web Host
Install full Avalon rails app
Configure app to connect to database, solr, fedora
In `settings.yml`
comment-out ffmpeg section
Change redis section to connect to redis on worker node
Enable:
Avalon application
SOLR/Fedora (although these may be on separate hosts if desired)
Redis (unless running it on the Worker)
Configure:
Database (open to Worker host)
Redis (if running on Worker)
Stop and disable:
Sidekiq
Worker Host
Install full Avalon rails app (or just clone the Web node)
Configure app to connect to same database as the web node in `config/database.yml`
Comment-out all content in:
blacklight.yml
solr.yml
fedora.yml
Worker Host should run:
Sidekiq
Redis (unless running it on the Web host)
Stop and disable:
Avalon rails app
Avalon DB (the Worker should not be running its own db, but it does need to be able to reach the Avalon DB)
SOLR
Fedora
Mount NFS shares
should be mounted at the same paths as Web node):
dropbox
derivatives
masterfiles
supplementalfiles