We're currently running SilverStripe CMS on one host and we'd like to shift it to a load-balanced set of servers.
What needs to happen in order to make this work?
Clearly, we'll need all 5 servers to talk to one database server. Also, I'm assuming all downloadable files such as images will be going to an uploads folder that will need to be regularly synchronized (with rsync, I presume) or alternatively, hosted on a common server (potentially Amazon S3, using S3FS).
I'm making these plans now but I have no familiarity with Silverstripe. Is there other potential issues I should be investigating? For example, the presence of Memcached or something else?
s there other potential issues I should be investigating? For example, the presence of Memcached or something else?
SilverStripe has a cache for classnames and file lookups. You can either store the cache on a common fileshare or have a cache on each machine. If you have one on each machine then you need to make sure that when you do a deploy the cache is removed on each machine / recached.
I'd recommend using a common fileshare for the assets rather than rsync make it easier.
Yes, though you can override the temp folder location by defining TEMP_FOLDER. It will default to /tmp/ or ./silverstripe-cache if not defined. The cache includes file paths so you may not want to share between servers if they are structured ever so differently (like a random hash folder)