When an application is built following a microservice architecture, it is made up of lots of services, in contrast to a monolithic architecture. With the application split up into self-contained functional units, those can be built and scaled and even developed independently from each other.
Advantages of Microservices
Microservices talk to each other through standardized interfaces. This brings some serious advantages. For one, any microservice can be written in a programming language of choice. Also, if one microservice encounters an error, it doesn’t interfere with the others. To scale a deployment according to specific needs, there can be multiple instances of one microservice for more throughput and just a few of another, and vice versa. The microservices in a deployment find each other through a registry.
We think that microservice architectures can play an important role in modernizing existing open source projects and in facilitating the start of new ones.
Microservices help compartmentalize functionality
For engineers, microservices help break up complex problems in bite-sized pieces that can be handled by dedicated teams. For administrators, they make parts of the application individually scalable and replaceable. For DevOps and developers of third-party software, building integrations becomes more granular and flexible – and language-agnostic. For contributors to open source projects, focusing on a microservice can make it easier to get started and focus on specific improvements.
While we organize the microservices that make up ownCloud Infinite Scale in a so-called Monorepo and deliver it as all-in-one prepackaged binaries for the respective platforms, those microservices can still have their separate iteration cycles and, most importantly, can be individually scaled.
Read more about how to install the ownCloud Infinite Scale Tech Preview and the security aspects our engineering team focused on. Check out our extension example ocis-hello and our all-new ownCloud Web frontend.