logo

Red Hat Enterprise Linux 9’s Modularity

Posted by Marbenz Antonio on January 3, 2023

What's New in Red Hat Enterprise Linux (RHEL) 9

There has been some concern about the lack of modules in Red Hat Enterprise Linux (RHEL) 9. The Beta release only included one module, and there were none in the initial release. This has led to questions about the current status and future plans for modules.

This article will explore the history of modules in Red Hat Enterprise Linux (RHEL), discuss some of the experiences and lessons learned during their adoption, and provide information about what to expect from RHEL 9.

Application streams

In RHEL 8, a new feature called application streams was introduced. These streams allow for faster updates to popular applications than was previously possible with RHEL releases. Newer versions of applications are introduced as new streams that are supported for a set period.

Some people have mistakenly assumed that modules are the same as application streams. However, modules are actually a packaging format technology and are just one of the forms that application streams can take. Other types of application streams include:

  • Traditional RPMs
  • Modules
  • Flatpaks
  • Software Collections

The packaging format for a particular application stream is chosen based on which one is the best fit for the component, the duration of support, and the upstream community’s plans.

Modules are only used when they are the best technology for the task at hand. If another format would be more beneficial, that is the one that is used.

Modules

As previously mentioned, it is often necessary to support multiple application streams for overlapping periods. With traditional RPMs, this can be difficult because the newest version will always be selected. This can cause problems if major versions of the software are not backward compatible, as updating to a new version of a database, for example, could result in an outage or other issues.

In RHEL 7, the preferred format was software collections (SCL). These were useful for installing multiple versions of software at the same time, but if you only wanted a specific version to be installed, they were not ideal.

Modules are the best option when you do not need to have multiple versions of software installed or running at the same time. By packaging specific major versions of software together as a module and modifying the package management tooling to support these modules, multiple versions can be made available simultaneously. End users can then choose which version they need while still being able to perform system updates. With modules, there is no need to use “scl enable” commands because the version is selected at installation time.

Why are there so few modules in RHEL 9?

Customers have largely been very positive about application streams, but there is always room for improvement. One improvement that has been identified is to identify full life streams (those with the same life cycle as RHEL 9) as early as possible so that customers can incorporate this information into their adoption plans earlier in the release process.

Another improvement that has been made was motivated by the desire to clearly differentiate between versions that will be supported for the full life of the RHEL release and those that will only be supported for a shorter period.

To address this need, whenever possible, a particular version is designated as the full-life version of an application for the initial release. Additionally, this version is released as a traditional RPM instead of a module. This means that users and developers who want to rely only on these full-life application streams can omit module-specific tooling and processes.

Will there ever be modules in RHEL 9?

In the future, as more major versions of application streams are identified as necessary, subsequent releases of RHEL 9 will include additional application streams with shorter periods of support. If there is an overlap or conflict between versions, modules will be used as the packaging format when it is the best fit for the application.

How does that work?

RHEL 9 will not include any default module streams. Without being enabled, module streams take precedence over traditional RPMs. By releasing a single stream as traditional RPMs and offering modular streams at a later date, users can have the best of both worlds.

When not specifically allowed otherwise, the standard RPM version will be used, improving the user experience by further simplifying the package management procedure.

Continually improving

Based on their experience with software collections, modules in RHEL 8, and customer feedback, they have improved the module user experience in RHEL 9.

 


Here at CourseMonster, we know how hard it may be to find the right time and funds for training. We provide effective training programs that enable you to select the training option that best meets the demands of your company.

For more information, please get in touch with one of our course advisers today or contact us at training@coursemonster.com

Verified by MonsterInsights