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