What do our users want?
One group wants the latest version of foo, but the stable version of bar.
The other group wants the latest version of bar, but the old version of foo.
What have we tried?
SCL's are great in theory. But in practice they are hard for the packagers. They also make the developers have to jump through several hoops. If something was developed in an SCL enviroment, it often wouldn't translate into a non-SCL enviroment.
Containers are also great in theory. They are especially great for allowing people to run their code in the exact enviroment on different machines. But for developers, they still have to jump through many hoops to develop on SCL's. And often we restrict what version of foo and bar we have in those containers.
Tarballs and Zip files
We admit it, that's what our developers are really doing. They are pulling down what they need, from who knows where, writting their code around it, and then asking us (or you) to support it. This is very bad for security, as well as for administrators trying to duplicate the enviroment on another machine.
Modules - The simpler way
The easiest way to explain modules is they are like yum groups, done right.
Using dnf admins are able to install nodejs 6, or nodejs 9. They aren't installed over in /opt/, they are installed in their usual place in /usr/.
Are you ready to move from python36 to python37? Just change the version of the python module and dnf with change it all.
Users will only be allowed to have one version of python, or nodejs, just like normal python or nodejs. But the developers (or their code) won't have to do anything special to use them.
This presentation will go through our up and downs as we've worked on getting a new technology created to help our users.