Fast and scalable ownCloud Infinite Scale
Everything Must Go
Other Options
Consequently, at least for large environments, ownCloud will expect the administrator to deploy an instance of EOS along with oCIS. The trade-off is clear: In exchange for the burden of having to maintain a separate storage system, you get the benefit of not having to worry about scalability and performance of the oCIS instance. This assumption also provides a hint about the assumed use case for oCIS and ownCloud: ownCloud's strategy with oCIS targets big data centers. For SoHo and end-user setups, EOS will, however, likely be over the top and much more complex than what the average end user is willing to maintain, let alone a lack of appropriate hardware.
Smaller setups are served by oCIS through the framework by enabling the aforementioned support for Amazon S3, Samba, and POSIX-compatible filesystems, which is possible because EOS is not hard-coded into oCIS. Reva [5] on the one hand can't provide the same feature set as EOS but will accomplish most of the needs of end users and non-EOS-sized setups. Its strategic importance if EOS, on the other hand, shows when considering that only the combination of EOS and oCIS permits the full feature set of ownCloud.
Microservice Core
The second tier of oCIS is (thanks to Go) more of a collection of microservices than a core. Each and every microservice is responsible for a single task in the background (e.g., scanning for viruses). Basically all functionality provided by oCIS is the direct result of the work of a specific microservice, like authenticating requests with OpenID Connect against an identity provider. In the end, that makes connecting existing user directories (e.g., ADFS, Azure AD, or LDAP) to ownCloud a simple task. For those who do not have an existing identity provider, ownCloud ships its own instance, effectively making ownCloud maintain its own user database.
Brand New User Interface
The third tier of oCIS is what the vendor calls Phoenix or ownCloud Web [6]. The completely rewritten user interface is based on the Vue.js JavaScript framework. Just like the oCIS core itself, Phoenix is written according to microservice principles and hence allows for better performance and scalability. The developers also used the opportunity to give the web interface a makeover; compared with the previous ownCloud versions, the oCIS web interface looks reduced and slick.
The oCIS developers did an impressive job regarding compliance with modern software design principles. The fundamental problem in building applications while following the microservice approach is usually how to make the individual components of the environment communicate with each other. APIs come to the rescue, but then every microservice component must have its own, well-defined API interface.
Luckily, a number of tools are available in the wild taking that burden off the shoulders of developers, most notably Google remote procedure calls (gRPC). The basic idea behind gRPC is to have a set of predefined APIs that allow actions in one component to be triggered from within another.
Buy this article as PDF
(incl. VAT)