If you understand the cloud, beyond your smartphone and Dropbox, then you know Nextcloud, a cloud server that does quite a bit more than simple storage. This particular server software has become quite the darling in the small- and mid-sized markets. There’s a good reason for that. Nextcloud offers a cost effective, in-house cloud solution that can be stretched well beyond storage and into the realm of groupware and so much more.
Until now, Nextcloud was pretty much relegated to those smaller markets. The developers, however, are doing something about that. Said something is Nextcloud Global Scale. According to the developers:
Nextcloud Global Scale delivers a true globally scalable solution for deployments with hundreds of millions of users, giving unprecedented control over the locality of data and delivering dramatic cost reduction.
Imagine, if you will, that you could scale a Nextcloud server from hundreds of thousands of users on a single instance to hundreds of millions, all the while gaining significant cost savings for existing large installations. Cost savings isn’t the only enticing idea behind Nextcloud Global Scale; this new platform will enable customers to split data out over multiple data centers, such that specific types of data can be retained within certain “jurisdictions” or gain serious increases in performance.
Standard Nextcloud architecture
Currently the Nextcloud architecture uses standard web application and load balancers to access shared storage, a shared database, and a shared cache. This architecture works exceptionally well up to six-figure user numbers. Reach into the nine-figure range and the standard technology doesn’t do so well. Due to bottlenecks within the hosting center uplink, database storage, and cache, the standard architecture can only grow so far. The database is particularly at issue, as it becomes hard to scale beyond a four-node Galera Cluster.
Another issue with the current architecture is storage cost. When storage grows into the petabytes, it becomes exponentially more costly. Reduction of storage cost is an imperative, if services like Nextcloud hope to scale.
Finally, global distribution is at issue with the current standard architecture. When you need to run a Nextcloud instance that is spread out over several hosting centers, the current technology fails to replicate storage in a synchronous way (to ensure that filesystem, database, and cache changes are bound together in replication transactions).
What Global Scale will do
In order to break beyond standard architecture, Nextcloud will bring to life an architecture that can:
- Scale up to nine-figure users
- Make it possible to distribute an instance across different data centers (even across continents)
- Lower hardware cost by leveraging commodity hardware
- Lower maintenance costs
- Require no significant software license costs beyond Nextcloud
- Start small and scale up over time
How Nextcloud will achieve this is to work with independent application servers, called nodes. Each node will be a tuple of two (or more) machines that share a cluster file system, database, and cache. A single node could even consist of a standard clustered Nextcloud instance. This new system will guarantee high-availability of each node. Each node can exist in different data centers (without requiring a faster interconnect between sites). Every Nextcloud user will be local to a node, so all user data will exist only on that one node, whereas data sharing will be handled via federated sharing, even with users on the same node. There will also be no centralized database, storage, or caching instances. Instead, each node will consist of:
- Global Site Selector (GSS)
- Lookup Server (LS)
One very important point about the Nextcloud nodes is that they can run on standard, off-the-shelf hardware, so there’s no need to deploy on a costlier, rack-mount server.
Why is this important?
Up until now, a Nextcloud server was limited to small and medium sized business and hundreds of thousands of users. With Nextcloud Global Scale, the technology can finally cross the barrier into enterprise scale usage. Although most enterprises aren’t nearly as concerned with cost savings as are smaller businesses, the ability to deploy a cloud that spans multiple data centers and can expand to accommodate hundreds of millions of users, while being cost-effective, will surely entice larger companies.
When is this happening?
The first bits of Nextcloud Global Scale will be introduced in the upcoming Nextcloud 12 release. When this new architecture will be available for testing or full release is unclear, but you can bet it will be rolling out, in full, with the next few iterations of Nextcloud.