Scaling Across Multiple Machines

This document will cover the reference architecture for the Nextcloud Scale Out model for a single datacenter implementation. The document will focus on the three main elements of an Nextcloud deployment:

Application layer

Database Layer

Storage Layer

At each layer the goal is to provide the ability to scale, and providing a high availability while maintaining the needed level of performance. We do recommend to use memcaching with Redis as well, see notes below.

Application Layer

For the application layer of this reference architecture we used Oracle Enterprise Linux as the front end servers to host the Nextcloud code. In this instance we made httpd a permissive domain, allowing it to operate within the SELinux environment. In this example we also used the standard directory structure placing the Nextcloud code in the Apache root directory. The following components were installed on each application server: