22
www.hupstream.com Anne Nicolas [email protected]

Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

Embed Size (px)

Citation preview

Page 1: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

www.hupstream.com

Anne [email protected]

Page 2: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

Industrialisation Gnu/Linux : du code au package logiciel

Page 3: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

Quelle expérience en matière de :

Distribution Linux

Gestionnaire de version

Packaging

# 1 Tour de table

Page 4: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 2 Une chaîne de production complète

Page 5: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

Du code à son installation en passant par le packaging :

reproductible à n'importe quel moment

maintenable dans le temps car le contenu est parfaitement connu

traçable quel que soit le moment : d'où ça vient, qui l'a modifié, qui a reverté...

sécurisé : le contenu est généré dans un environnement connu et reproductible

# 2 Une chaîne de production complète

Page 6: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 3 git : pourquoi ?

Page 7: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 3 git : pourquoi ?rapide (opérations locales)

design simple

support optimal de la gestion des branches multiples

système complètement distribué (backups data)

sécurisation des données (checksum systématique)

staging de données

système capable de gérer de gros projets en matière de données et de rapidité

Page 8: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 3 git : l’exemple de kernel.org

Page 9: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 3 git : l’exemple de kernel.org

Page 10: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : ce qu’on en pense souvent...

Page 11: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : ce qu’on en pense souvent

Réservé aux packagers des distributions Linux

Pénible et sans intérêt

Une bonne occasion de multiplier les bugs

Une perte de temps

Le meilleur moyen de devoir se plonger dans les « subtilités » des distributions

Page 12: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : ce qui rend fou un packager

Page 13: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : ce qui rend fou un packagerdes librairies et autres dépendances embarquées dans les tarballs et qui se terminent en conflit

des librairies harcodées sur une architecture

des problèmes de licenses, différentes selon les composants

des binaires embarqués (plate-forme, sécurité, bugs)

des dépendances téléchargées lors de l'installation (pas de connaissance exhaustive du contenu, conflits)

hardcodage des spécificités des distributions : initiscripts, chemins...

Page 14: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : pourtant ça pourrait être ça...

Page 15: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : ce que ça apporte réellement

integration parfaite dans une distribution Linux

facilité d’utilisation pour l'utilisateur final : gestion des dépendances , installation, mise à jour, suppressionfacilitation de la diffusion du logiciel

traçabilité des versions et des fichiers installés sur un système

faciliter la recompilation du logiciel (moyennant les évolutions des outils comme autotools)

Page 16: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : qui est concerné ?

les développeurs qui contribuent à fournir un code facilitant le packaging

les entreprises qui utilisent un socle Linux pour leur infrastructure interne et qui modifient certains composants ou les personnalisent

les entreprises qui éditent une solution basée sur un OS Linux

Page 17: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : les politiques de packaging

non elles n’ont pas été écrites pour satisfaire un besoin sadique des packagers officiels des distributions !

elles sont le garant de la cohérence d’une distribution à un moment donné et dans le temps

Page 18: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : qualité et outils

vérification de la concordance des packages aux politiques (ex : rpmlint, lintian)

vérification de la signature des tarballs sources et des packages

vérification de la cohérence des dépots de packages

vérification de la qualité des changelogs

Page 19: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : faciliter la vie des administrateurs système

La situation idéale : passe le moins de temps possible sur l’installation, la mise à jour et la configuration des serveurs

packaging + centralisation de la configuration

Page 20: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : faciliter la vie des administrateurs système

limite les dépendances requises (pas de dépendances de build)

gère les dépendances automatiquement

facilite les mises à jour, investissement moindre une fois le premier package réalisé

gestion de patches traçable

conserve un historique des modifications

connaissance détaillée des logiciels installés et de leurs versions

Page 21: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

# 4 Packaging : conseil pour les développeurs

fournir un script d’installation qui sera utilisé lors du build du package

Fournir la possibilité overrider la destination d'installation du logiciel sous peine de patch systématique

Vérifier l’existence des librairies et/ou dépendances embarquées

Porter une attention particulière à la réalisation du tarball de sources et à son versioning

Page 22: Open Recipes - Pouquoi le packaging est important pour l'intégration logicielle

@hupstreamhupstream.com #hupstream (freenode)