• # Distribution centralisée

    Posté par . En réponse à la dépêche L'installation et la distribution de paquets Python (2/4). Évalué à 5. Dernière modification le 22 janvier 2024 à 17:52.

    Au boulot, on maintient notre propre distribution Python. Elle contient tous les paquets utilisés couramment par les différentes équipent. En développement, elle déployée dans le répertoire utilisateur, en production, dans un répertoire système. Déployer une application devient très facile, c’est juste le code et les données. Il y a 1-2 nouvelles versions de la distribution par an, avec tous les paquets sont mis à jour et de temps en temps des nouveaux paquets.

    Les avantages:

    • ça règle de manière très fiable le problème du déploiement (nous avons fait de mauvaises expériences avec PyInstaller, cx_Freeze & co)
    • les installeurs des applications sont très légers: moins de place dans le système CI, très rapide à télécharger et (dés)installer
    • plusieurs applications peuvent utiliser le même environment -> gain de temps et d’espace
    • il est relativement facile de mélanger du code de différentes équipes
    • ça permet de centraliser la gestion des problèmes et conflits inévitables avec PIP et autres problèmes de build
    • ça standardise les paquets utilisés par les différentes équipes, + d’effets de synergie
    • ça aide/force les développeurs à garder leur environment à jour (par exemple, s’ils veulent un nouveau paquet, il faut prendre la toute dernière distribution)

    Les inconvénients;

    • il faut une personne ou équipe qui s’en occupe
    • c’est galère pour les développeurs qui veulent un nouveau paquet ou une nouvelle version (ils ne peuvent pas le faire eux-mêmes)
    • ce n’est pas standard
    • l’utilisateur final doit installer deux choses: l’application et la distribution (et la bonne version...)
    • la distribution est relativement grosse, plus grosse que nécessaire pour chaque application prise individuellement (à vu de nez, 3-4 fois)
    • c’est une solution limitée à une organisation "fermée"