Nous effectuons un refactoring d'architecture. Nous sommes une société SaaS donc tous les déploiements sont à nos propres serveurs autogérés. Le modèle actuel regroupe tous nos binaires avec les bibliothèques tierces que nous utilisons pour les oreilles, les guerres, les goudrons, etc. Ces paquets incluent toutes les bibliothèques dont ils dépendent. Lorsqu'ils sont déployés, ils sont explosés manuellement (non corrigés) ou récupérés par le conteneur cible pour lequel ils ont été construits. Comme les bibliothèques ne changent pas beaucoup, nous nous demandons si c'est une meilleure idée de déployer les bibliothèques auparavant, dans le cadre de la configuration de l'environnement, et de les mettre à jour si nécessaire. Nous ne nous penchons pas d'une façon ou d'une autre, et je cherche seulement des commentaires.devrions-nous emballer nos bibliothèques tierces avec nos composants?
2
A
Répondre
4
Il est généralement préférable d'emballer les bibliothèques avec les oreilles, les guerres, etc. Certaines raisons sont les suivantes:
- Il fait gagner du temps lors de la configuration d'une nouvelle machine de serveur. Si vous ne compressez pas vos dépendances avec votre système déployable, cela peut prendre beaucoup de temps pour obtenir toutes les bibliothèques correctes sur un nouveau serveur cible.
- Vous pouvez déployer différents fichiers .war à un serveur d'applications qui dépendent de différentes versions de la même bibliothèque
- Mise à niveau d'une bibliothèque est simple si vous emballez vos dépendances avec votre déployable (redéployer simplement). Si vos bibliothèques sont séparées, vous disposez d'étapes supplémentaires pour déployer une nouvelle bibliothèque (et un autre endroit où les choses peuvent mal tourner).
- Vous pouvez être sûr qu'un .war déployé sur un environnement de test se comportera de la même manière dans un environnement prod si vous incluez des dépendances. Des différences subtiles dans les environnements de test/prod avec des bibliothèques et des versions centralisées posent souvent des problèmes.
- Votre liste de dépendances est vraiment explicite. Vous pouvez par exemple faire une vérification de licence open source. Si vous ne conditionnez pas les dépendances avec votre paquet, vous ne savez jamais ...