Hey everyone!

I have a proposal: Let's build the Fedora 27 Server edition using Modularity! [1]

We are currently finishing Boltron [2] which is a modular server prototype. It includes several services and a version of DNF that supports modules. You can try some of it already and we will be putting together a set of demos that will explain how everything works.The main purpose of Boltron is to prove it can work, and to test the new UX of managing modules in multiple streams. But Boltron is really just a prototype - it won't get updates, I wouldn't recommend it using in production. I would like Fedora 27 Server to be the next step.

What would need to happen in Fedora to produce a real modular server:
 - Having a nice developer/packager experience - I would really like to work close with guys from Factory 2.0 to develop a nice experience for packagers creating new modules.
 - Module updates and artificial branching - the guys from Factory 2.0 are already working on it - no worries here.
 - Base system (Base Runtime/Platform) with a shared userspace - a lot of work on Base Runtime has been already done.
 - User experience - we already have an early DNF protoype. Some UX testing and polishing can result in a very nice thing.
 - Content - having a good set of modules is important, but I don't think we need to modularize the whole Fedora land for this to work. Having a nice developer/packager experience will make the content grow fast.

Modularity can provide a solution to some of user needs described in the Server PRD [3] like:
 - Value is achieved by delivering the latest capabilities fastest (DevOps Engineer/Administrator)
 - Needs a platform with API and ABI stability guarantees (Traditional Application Developer)

Also, the requirements icnclude:
 - The Server Role must be packaged in such a way that it is possible to install the complete set as a unit. <- Modules can represent such a unit.
 - The Server Role may provide a sane, usable default. <- Modules have install profiles that might help to provide such default.

What do you think?


[1] https://docs.pagure.org/modularity/
[2] https://docs.pagure.org/modularity/prototype/boltron.html
[3] https://fedoraproject.org/wiki/Server/Product_Requirements_Document


Adam Šamalík
Software Engineer
Red Hat