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?
Thanks! Adam
[1] https://docs.pagure.org/modularity/ [2] https://docs.pagure.org/modularity/prototype/boltron.html [3] https://fedoraproject.org/wiki/Server/Product_Requirements_Document
On Thu, Jun 15, 2017 at 07:34:09PM +0200, Adam Samalik wrote:
I have a proposal: Let's build the Fedora 27 Server edition using Modularity! [1]
I am in favor of this. When I asked for Fedora Server stories earlier, the vast majority of replies were from people using Fedora in a server context (including cloud and Atomic), but not Fedora Server _as such_. Therefore, I think we have some room to play with innovations which may be disruptive, because people who are currently seriously using Fedora in this way will still have options to avoid disruption.
On Thu, Jun 15, 2017 at 1:47 PM, Matthew Miller mattdm@fedoraproject.org wrote:
On Thu, Jun 15, 2017 at 07:34:09PM +0200, Adam Samalik wrote:
I have a proposal: Let's build the Fedora 27 Server edition using Modularity! [1]
I am in favor of this. When I asked for Fedora Server stories earlier, the vast majority of replies were from people using Fedora in a server context (including cloud and Atomic), but not Fedora Server _as such_. Therefore, I think we have some room to play with innovations which may be disruptive, because people who are currently seriously using Fedora in this way will still have options to avoid disruption.
I use Fedora Server on an Intel NUC, but I'm ready for disruption. In particular I'm curious how the upgrade process would work or if there'd need to be a "flag day" release that requires a clean install. Since the installer permits such open ended layouts, it sorta burdens any upgrade process into supporting them all, if even with an early test that proscribes the unsupported majority.
On Thu, Jun 15, 2017 at 06:30:33PM -0600, Chris Murphy wrote:
I use Fedora Server on an Intel NUC, but I'm ready for disruption. In
Yeah, sorry, I didn't mean to imply that this segment doesn't also exist. :) Thanks.
particular I'm curious how the upgrade process would work or if there'd need to be a "flag day" release that requires a clean install. Since the installer permits such open ended layouts, it sorta burdens any upgrade process into supporting them all, if even with an early test that proscribes the unsupported majority.
So, I'm pretty sure there's no upgrade path to Boltron, but I think there *should* be one to an official Fedora Server with Modularity.
Modularity will still be 'optional' for those who simply want the traditional 'latest and greatest' packages that are the norm for Fedora? Simply dont install modulemd and the dnf plugin?
On Fri, Jun 16, 2017 at 12:30:22PM -0000, David Haltinner wrote:
Modularity will still be 'optional' for those who simply want the traditional 'latest and greatest' packages that are the norm for Fedora? Simply dont install modulemd and the dnf plugin?
Yeah; we'll make that the default for Fedora Server (with a capital S) but you'll still be able to use the Everything netinstall (or other spins) to build up whatever you like.
I expect that even in the "modularity is wildly successful and we use it everywhere" scenario that I'm hoping for, there will still be some way to opt for a "latest of everything please" stream.
Take a look at the docker-based Boltron demo https://docs.pagure.org/modularity/prototype/boltron.html if you haven't yet — most of the modules actually follow the f26 stream; I think today only nodejs has both that and a version-based stream. Adam can surely provide more details. :)
On Fri, 16 Jun 2017 at 16:12, Matthew Miller mattdm@fedoraproject.org wrote:
On Fri, Jun 16, 2017 at 12:30:22PM -0000, David Haltinner wrote:
Modularity will still be 'optional' for those who simply want the traditional 'latest and greatest' packages that are the norm for Fedora? Simply dont install modulemd and the dnf plugin?
Yeah; we'll make that the default for Fedora Server (with a capital S) but you'll still be able to use the Everything netinstall (or other spins) to build up whatever you like.
I expect that even in the "modularity is wildly successful and we use it everywhere" scenario that I'm hoping for, there will still be some way to opt for a "latest of everything please" stream.
Take a look at the docker-based Boltron demo https://docs.pagure.org/modularity/prototype/boltron.html if you haven't yet — most of the modules actually follow the f26 stream; I think today only nodejs has both that and a version-based stream. Adam can surely provide more details. :)
While DNF will treat modules as first class citizens, it will also be able to hide modules from the users. You still need to be able to install individual packages from a module for example (like Python libraries* module). And I'm sure we'll be able to do an 'everything else' module that will include F27 content.
Also, almost all the modules will be built out of f27 packages. Adding other versions will be possible, but not necessary.
*I call Python modules libraries, because 'module' is kind of overloaded... :-)
-- Matthew Miller mattdm@fedoraproject.org Fedora Project Leader _______________________________________________ server mailing list -- server@lists.fedoraproject.org To unsubscribe send an email to server-leave@lists.fedoraproject.org
I have written a blog post talking about the initial design process: http://blog.samalik.com/modular-f27-server-edition-initial-design/
On Sun, Jun 18, 2017 at 5:00 PM, Adam Samalik asamalik@redhat.com wrote:
On Fri, 16 Jun 2017 at 16:12, Matthew Miller mattdm@fedoraproject.org wrote:
On Fri, Jun 16, 2017 at 12:30:22PM -0000, David Haltinner wrote:
Modularity will still be 'optional' for those who simply want the traditional 'latest and greatest' packages that are the norm for Fedora? Simply dont install modulemd and the dnf plugin?
Yeah; we'll make that the default for Fedora Server (with a capital S) but you'll still be able to use the Everything netinstall (or other spins) to build up whatever you like.
I expect that even in the "modularity is wildly successful and we use it everywhere" scenario that I'm hoping for, there will still be some way to opt for a "latest of everything please" stream.
Take a look at the docker-based Boltron demo https://docs.pagure.org/modularity/prototype/boltron.html if you haven't yet — most of the modules actually follow the f26 stream; I think today only nodejs has both that and a version-based stream. Adam can surely provide more details. :)
While DNF will treat modules as first class citizens, it will also be able to hide modules from the users. You still need to be able to install individual packages from a module for example (like Python libraries* module). And I'm sure we'll be able to do an 'everything else' module that will include F27 content.
Also, almost all the modules will be built out of f27 packages. Adding other versions will be possible, but not necessary.
*I call Python modules libraries, because 'module' is kind of overloaded... :-)
-- Matthew Miller mattdm@fedoraproject.org Fedora Project Leader _______________________________________________ server mailing list -- server@lists.fedoraproject.org To unsubscribe send an email to server-leave@lists.fedoraproject.org
--
Adam Šamalík
Software Engineer Red Hat
server@lists.fedoraproject.org