NexusMods Posted November 6, 2023 Posted November 6, 2023 Hi, We would like to be able to horizontally scale Invision. Is it possible to run Invision with multiple instances? What state would need to be shared between instances to make this possible? Thanks
Marc Posted November 6, 2023 Posted November 6, 2023 Invision licenses allow for only 1 installation per license, with the exception of one test instance that must not be used for development. So in order to do this, you would require new licenses for each. In terms of your second question there, are you referring to login state?
NexusMods Posted November 6, 2023 Author Posted November 6, 2023 Hi Marc, This is one installation, a single URL. However, it would be horizontally scaled to handle load if required. Do your license terms allow for this? Yes. We're aware of the uploads and datastore directories that would need to be shared. We're not sure how the session (login) state is handled. Is there any other state that would be required. Thanks
Marc Posted November 6, 2023 Posted November 6, 2023 This is something you would really need to speak to your hosting provider on, to be honest.
NexusMods Posted November 6, 2023 Author Posted November 6, 2023 Hi Marc, Thanks for the rapid replies. We're self hosting the software ourselves but we'd like to confirm that the license terms for Invision support the use-case of horizontally scaling We've looked at the code and it seems like session state is handled in either Redis or by the Database, so it looks like technically we should be able to horizontally scale. However, we're not sure if there is any other state we would need to be aware of. Thanks
Marc Posted November 6, 2023 Posted November 6, 2023 The site is licensed to be used on 1 URL. Assuming the URL itself is not changing, and its just load balancing?
NexusMods Posted November 6, 2023 Author Posted November 6, 2023 Hi Marc, That's right it would be load balanced. Do you know if there is any other state that we need to consider? We know of: Sessions (logins) seem to be handled by Redis or the Database uploads would require shared storage datastore would require shared storage Thanks for all of your help, Theo
Randy Calvert Posted November 6, 2023 Posted November 6, 2023 If you use sticky sessions on your LB (session persistence) you don’t even need Redis. Users remain on their server unless it fails or is removed.
Recommended Posts