Menu

Hespérides, le premier logiciel OpenSource de Voyages-sncf.com

Profile hesp%c3%a9rides

Rédigé par Nicolas Boury et Emeric Martineau - Techno - #open source #VSCT #githubRédigé par Nicolas Boury et Emeric Martineau

PARTAGES

voyages-sncf_header_hespereides.png

Plusieurs développeurs des équipes VSCT de Nantes et Paris ont conçu et réalisé un logiciel d’aide à la gestion de configuration des applications. Face à l’intérêt grandissant de l’interne et des partenaires extérieurs pour cet outil, nous avons décidé d'open sourcer le code frontend et backend pour le mettre à la disposition d’un maximum de contributeurs.

Dans beaucoup de structures atteignant une taille critique, la gestion des configurations des applications n'est pas simple. Du fichier Word à lire, en passant par des RPM à installer ou même encore des fichiers Excel, aucune solution pratique n'existe vraiment. Souvent les petites structures utilisent Git et c'est déjà une très bonne chose. Toutefois, dans une organisation où de nombreux collaborateurs avec des profils très variés doivent interagir, la chose devient plus difficile.


Chez Voyages-sncf.com, du développeur à l'exploitant, en passant par le support client, chaque collaborateur doit pouvoir accéder à la configuration des différents environnements (de l'intégration à la production). Afin d'améliorer sa qualité de service et augmenter son agilité, Voyages-Sncf.com a lancé une refonte de son industrialisation de développement/déploiement, en réduisant le Time to Market et en déployant une vision DevOps, avec une démarche d’automatisation massive des processus de déploiement engagée en 2014. 


C’est dans ce cadre que Hespérides, le premier projet de logiciel open source de VSC Technologies a vu le jour en 2014, lors d’un hackathon interne, pour répondre à une forte demande autour de la gestion des données de configuration des applications. C’est un outil d’aide à l’automatisation des déploiements, mis à disposition en open source, et destiné à générer du contenu peu importe son format, à partir d’un ensemble de templates versionnés dans un contexte/environnement donné.
 

 

 

 

 


Pourquoi nous l’appelons Hespérides ?  Parce que la gestion des configurations applicatives est à elle toute seule une épopée chez VSCT, et qu’après plusieurs tentatives, nous avons voulu repartir de zéro sur un outil qui deviendrait en quelque sorte le paradis des configurations. Dans la mythologie grecque, le jardin des Hespérides représente le paradis, d'où le nom choisi pour notre solution de gestion des configurations applicatives :) !

 

Les principes d'Hespérides

Hespérides est basé sur quelques principes de bases :

      -  l'application enregistre les données sur le modèle event-store,

      -  il y a une séparation entre modèle (un template de fichier) et les données (la valorisation dans le template de données),

      -  API First : tout ce que vous pouvez faire avec l'IHM vous pouvez le faire via l'API,

      -  l'application est décorrélée des formats de fichier (seul obligation avoir des fichiers type texte).

 

Comme indiqué, tout se fait par l'API, de la création d'un module, de la modification d'une propriété à la récupération des fichiers valorisés. Cela permet une certaine facilité de mise en œuvre via des requêtes wget ou curl pour redescendre sur les serveurs les fichiers de configuration.

 

Hespérides utilise :

      -  Redis pour enregistrer ses données,

      -  ElasticSearch pour indexer les données,

      -  Dropwizard pour la partie backend,

      -  Angular 1.4 et Material Design pour la partie IHM.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Feedback après 3 ans d’utilisation d’Hespérides

Depuis sa création, Hespérides est passé entre les mains de la Feature Team « Avengers » (qui s’occupe de la mise en place de nouveaux outils d’industrialisation) puis d'une petite communauté formée pour 50% d’internes/50% de personnes extérieures, pour arriver aujourd'hui à permettre le déploiement de plus d'une centaine d'applications, correspondant à plus d'un millier de plateformes.

 

Dan Magier, développeur chez notre prestataire Arolla, a fait partie de nos premiers testeurs externes il y a quelques mois et il a « été agréablement surpris par la solution développée. Plus que des properties, vous pouvez gérer simplement en fonction de votre environnement, n'importe quel type de fichier que vous souhaitez valuer (page html, properties, etc ...). Grâce à Hespérides, j’ai pu ainsi facilement mettre en place des routines pour créer mes templates valués, versionnés ou non, sans faire quoi que ce soit à la main si ce n'est la mise en place. ».

Après 3 ans d’utilisation en interne, Hespérides est maintenant utilisé sur près de 95% des projets chez VSCT. Nous constatons que l’outil a apporté aux équipes :

      -  un gain de temps (appels REST) au niveau build continu et au niveau déploiement

      -  une robustesse (releasing des configurations applicatives pour éviter les modifications inopinées)

      -  une gestion d’historique (facilité de redéploiement à partir d’une ancienne version ; savoir qui a fait quoi et quand etc …)

 

Face à la demande grandissante de contributeurs, nous avons décidé d’opensourcer le code frontend et backend pour le mettre à la disposition d’un maximum de contributeurs. 

   

Sources et documentation
Vous êtes un partenaire de VSCT et vous souhaitez contribuer au projet ? Les sources sont disponibles sur GitHub : 

Backend : https://github.com/voyages-sncf-technologies/hesperides

IHM : https://github.com/voyages-sncf-technologies/hesperides-gui

 

La documentation est accessible : https://cdn.rawgit.com/voyages-sncf-technologies/hesperides-gui/master/docs/index.html

Il faut noter qu'un impressionnant travail de qualité a été fait sur la documentation par les équipes.

 

 

 

 

Mettre en œuvre Hespérides chez vous ?

Et si vous souhaitez mettre en œuvre Hespérides dans votre entreprise, n'hésitez pas à nous contacter ! Nous serons ravis de vous présenter l’outil et voir avec vous la faisabilité du déploiement.

 

Hespérides est notre premier logiciel disponible en OpenSource. Après plusieurs années d’utilisation de l’OpenSource, il nous paraissait important d’apporter aussi notre contribution. Et ce n’est qu’un début ! Toujours dans une démarche DevOps, les équipes travaillent à l’élaboration d’autres composants de supervision, qui seront progressivement opensourcés. A suivre :) !