Top Banner
Modularity & Generational Core by Petr Šabata and Adam Šamalík The future of Fedora?
44

Fedora Modularity

Feb 14, 2017

Download

Technology

Adam Šamalík
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Fedora Modularity

Modularity & Generational Core

by Petr Šabata and Adam Šamalík

The future of Fedora?

Page 2: Fedora Modularity

Distributionsare great!

Page 3: Fedora Modularity

Why are distros great?Ship packaged softwareDependencies includedIntegrated and testedPatched for security vulnerabilities

Page 4: Fedora Modularity

Distros have a life span

Page 5: Fedora Modularity

Everything is supported forthe same time!

Page 6: Fedora Modularity

but... which is fine,

Page 7: Fedora Modularity

Applications arereleased at their

own pace.

(independent of the distribution)

Page 8: Fedora Modularity

And applications cancome in multiple

versions.

(different variants or different generations)

Page 9: Fedora Modularity

But distributionsship just a single

version of anapplication for each

release.

(mostly because of conflicting dependencies)

Page 10: Fedora Modularity

So how to choosethe right version?

Page 11: Fedora Modularity

Fast updates

& latest versions? Slowupdates

&stable

versions?

What is better?

Page 12: Fedora Modularity

That's right!

All of them!

Page 13: Fedora Modularity

But howto include multiple

versions?

Page 14: Fedora Modularity

(providing multiple versions of software in a distribution)

Option one:

Fast track + LTS

Page 15: Fedora Modularity

Option two:

SoftwareCollections

(providing multiple versions of software in a distribution)

Page 16: Fedora Modularity

Option three:

LinuxContainers

(providing multiple versions of software in a distribution)

Page 17: Fedora Modularity

Option four:

Modularity!

(providing multiple versions of software in a distribution)

Page 18: Fedora Modularity
Page 19: Fedora Modularity
Page 20: Fedora Modularity

Introducing tinysystem calledBase Runtime

Includes the kernel, glibc, and other basic tools and

libraries with proven long-term ABI stability.

Page 21: Fedora Modularity

Software runs onBase Runtimeas a Module.

Similar concept to Android or iPhone apps.

Page 22: Fedora Modularity

Modules are groupsof packages with

a purpose.

Like a database, Firefox, or a LAMP stack.

Page 23: Fedora Modularity

Anatomy of a Module

Page 24: Fedora Modularity

Modules are definedby a modulemd file.

Defining its components, an API, a build recipe,

and install profiles.

"Stop it! We want to see some code, Adam!"

Page 25: Fedora Modularity

document: modulemdversion: 1data: # An ID of the module. name: foo stream: stream-name version: 20160927144203

# What's the module about? summary: An example module description: > A module for the demonstration of the metadata format. Also, the obligatory lorem ipsum dolor sit amet goes right here.

# How can I use it? How can I change it? Can I sell it? license: module: - MIT content: - Beerware - GPLv2+

# Where does it live? references: community: http://www.example.com/ documentation: http://www.example.com/ tracker: http://www.example.com/

Page 26: Fedora Modularity

Modules are builtin the Factory 2.0

Page 27: Fedora Modularity

Modules aredelivered as various

artifacts.

Like an RPM repository, Linux Container, Flatpak,OSTree, ISO, etc.

Page 28: Fedora Modularity

Running modules

Page 29: Fedora Modularity

RPMs? Containers?

I don't care!

Page 30: Fedora Modularity

$ dnf install httpd

Page 31: Fedora Modularity

$ dnf install httpd...

$ vim /etc/httpd/configuration.file

Page 32: Fedora Modularity

$ dnf install httpd...

$ vim /etc/httpd/configuration.file...

$ vim /var/www/index.html

Page 33: Fedora Modularity

$ dnf install httpd...

$ vim /etc/httpd/configuration.file...

$ vim /var/www/index.html...

$ systemctl start httpd

Page 34: Fedora Modularity

$ dnf install httpd...

$ vim /etc/httpd/configuration.file...

$ vim /var/www/index.html...

$ systemctl start httpd

#.... few days later ....

$ dnf update

Page 35: Fedora Modularity

No changes to thecurrent userworkflow!

Page 36: Fedora Modularity

Howthat works?

Page 37: Fedora Modularity

We focus on the package

Page 38: Fedora Modularity

Don't build distroversions...

Page 39: Fedora Modularity

Build module streams!

Page 40: Fedora Modularity

Modules come inmultiple streams.

Major versions or variants of an application.

Page 41: Fedora Modularity

You choosethe right streams

before installation.

Or get an iso with pre-selected streams - similar to thecurrent situation.

Page 42: Fedora Modularity

DNF keeps yoursystem updatedwhile preserving

compatibility.

So "$ dnf update" works!

Page 43: Fedora Modularity

...so that will themodular distro!

Page 44: Fedora Modularity

https://fedoraproject.org/wiki/Modularity