Fast and scalable ownCloud Infinite Scale
Everything Must Go
The ownCloud Infinite Scale (oCIS)enterprise file-sharing and syncing software stack is a fast and scalable yet complete rewrite of the classic ownCloud. The current version of oCIS is the technology preview 1.8.0 (as of July 2021). Go, Vue.js, and a modular approach replace the outdated PHP, database, and POSIX filesystem the older versions needed. In internal documents, ownCloud promises up to 10 times better performance than ownCloud 10.6.0 published in December 2020 and, so far, the last PHP-based ownCloud variant.
Some History
A shooting star in 2010, ownCloud hasn't make it into the news that much recently, other than with its fork Nextcloud [1]. Whoever thinks that might be attributed to Nextcloud's media success and big community misses the point, though. Over the years, the two companies that once were one have developed in completely different directions. Nextcloud focused on its community and web front end, a web app store with many community apps targeting the growing market of web desktops like Microsoft 365, whereas ownCloud quietly improved the back end and dealt with enterprise needs of (not just) their customers by refactoring the software and making it faster and more robust.
In hindsight, it almost looks like shared work, but it never was. After all, some of these different expectations inside management were why the company broke up in 2016 – but that is another story. Today both companies claim to be very successful with their approaches, and jokes have it that both are convinced they are light years ahead of their competitor.
PHP vs. Performance
Now in mid 2021, a big change is about to come. ownCloud is diverging from the common path and presents a complete rework of the back end. Over the years, the ownCloud developers had to realize the limits of the PHP architecture, especially in large setups with the need for massive scalability (e.g., CERN). Version 1 of oCIS [2] is the result of years of work: a complete rewrite of the software, a new back end in Go, a front end in Vue.js, and other changes (e.g., removing the need for a database).
When ownCloud was founded, PHP seemed to be the natural choice because Ruby, Go, Vue.js, and reactive design were not around then. PHP dates back to 1995, and even the fifth major release, PHP 5, was eight years old when ownCloud finally left stealth mode. Developers have invested a lot of work to adapt the dinosaur to modern software principles and to improve its performance, as have admins. The basic design and architecture of PHP, however, has remained the same throughout the years, which effectively means that a number of almost mandatory modern day software principles are not honored.
Scalability Without PHP and POSIX
A further ownCloud requirement was the need for a separate database in the background, a web server hosting PHP content, and a filesystem for storage. To be more precise, ownCloud has been centered around the idea of having a POSIX-compatible filesystem to store data uploaded by users, different versions of these files and the trash files, as well as configuration files and logs. By default, all files belonging to users can be found in a path like /var/www
or /srv/www
on the ownCloud instance – a web server's document root.
Admins who have ever called an ownCloud or Nextcloud their own know that ownCloud setups grow massively in size. Today, most of them even begin at much bigger sizes than ownCloud was originally planned to serve. One of the largest ownCloud users today, an Australian university is storing the data of more than 100,000 users.
oCIS is the company's attempt to break free of all the barriers and limitations of the PHP past. The paradigm shift goes deep: The last years have been spent fixing and adapting the existing codebase to squeeze a bit more speed out of the system. All suffering admins, users, and developers may now see a light at the end of the tunnel: oCIS does not recycle any code from ownCloud; it's a complete rewrite.
Buy this article as PDF
(incl. VAT)