Dans une interview avec Gilles, responsable du développement chez FactorFX, nous levons le voile sur les enjeux d’un projet majeur : la refonte complète d'OCS Inventory ! Découvrez les raisons derrière cette transformation, les impacts d’un tel rework sur un logiciel comme OCS Inventory, et les prochaines étapes clés de ce projet.
Bonjour Gilles, pourrais-tu te présenter ?
Bonjour ! Je suis responsable du développement chez FactorFX, où je travaille depuis un peu plus de neuf ans maintenant. Avec mon équipe, on s'occupe de développer et d'améliorer les solutions que nous éditons, comme OCS Inventory.
Tu es chez FactorFX, et aujourd’hui, tu vas nous parler d’OCS Inventory. Peux-tu nous expliquer ce qu’est OCS Inventory ?
OCS Inventory est le logiciel phare de la société FactorFX. OCS Inventory était initialement un logiciel communautaire développé pendant presque 10 ans par la gendarmerie nationale et la communauté.
En 2015, OCS Inventory a été repris officiellement par FactorFX afin de proposer une offre de service taillée pour les professionnels tout en gardant la transparence et le partage à la communauté.
Gilles, tu viens nous présenter un gros projet en cours pour OCS Inventory. Peux-tu nous en dire plus ?
En effet, après près de 20 ans sous sa forme actuelle, OCS Inventory est en refonte complète. C'est un projet que nous mûrissons depuis plusieurs années, avec pour objectif de faire évoluer l’outil en choisissant les meilleures technologies disponibles. Ce travail de longue haleine va vraiment transformer OCS Inventory pour les années à venir.
En quoi consiste le rework d’un logiciel ?
La refonte d’un logiciel, c’est une étape importante dans la vie de celui-ci. Imaginez que c’est un peu comme lui donner une seconde jeunesse. On repasse souvent par la case départ en réécrivant le code de fond en comble, ou du moins, on revoit en profondeur ses mécanismes pour qu’il soit plus performant et adapté aux technologies actuelles. C’est l’occasion de repenser l’outil, de l’améliorer, et d’y intégrer les dernières innovations. Bref, c’est un vrai travail de rénovation qui permet de redonner un coup de frais à tout l’ensemble.
Pourquoi s’être lancé dans ce projet-là ?
Se lancer dans une refonte est un choix souvent difficile, coûteux en temps, mais nécessaire pour les logiciels qui ont beaucoup d'historique. Prenons l'exemple d'OCS Inventory : nous sommes très fiers de la stabilité de notre produit, mais les technologies sur lesquelles il repose commencent à vieillir. L'objectif est aussi de pouvoir proposer de nouvelles fonctionnalités qui, aujourd'hui, ne pourraient pas être implémentées à cause de l'ancienneté du code et de son mode de fonctionnement actuel.
Quels sont les problèmes rencontrés actuellement ?
Aujourd’hui, les trois problématiques principales sont les suivantes :
La vétusté et les limitations techniques du module permettant le traitement des inventaires. Cela nous empêche de proposer des fonctionnalités ou des intégrations fortes, avec de l’IoT par exemple.
Les standards de code actuel ont pour effet de rendre le développement fastidieux et la contribution par la communauté plus difficile.
Nous voulons fournir un outil de diagnostic pour la base de données afin de mieux s'intégrer dans les SI des entreprises et utilisateurs. Actuellement, l'outil est limité à MySQL, ce qui restreint les possibilités d'intégration.
Que va permettre le travail de rework ?
Le travail de rework va permettre de corriger les problématiques rencontrées qui sont liées à l’architecture et à la vétusté des technologiques utilisé par l’outil actuel.
Mais cela a aussi pour objectif d’améliorer certaines fonctionnalités déjà présente dans l’outil. Par exemple, nous voulons apporter une meilleure expérience de reporting et de gestion de l’inventaire que ce que l’outil permet actuellement.
Nous comptons également revoir la notion d’actif afin d’avoir une transversalité entre les typologies d’équipements (Ordinateurs, serveurs, équipements réseaux, etc..)
L’agent sera revu pour apporter des fonctionnalités de sécurités plus avancées pour répondre au contexte actuel et de proposer un système d’inventaire dynamique, un administrateur pourra modifier l’inventaire directement depuis la console d’administration.
Plus précisément, quels sont les axes principaux d’évolution de cette refonte ?
Dans un premier temps nous comptons améliorer, trois différents axes :
Améliorer le reporting de la solution et permettre une meilleure interopérabilité entre les données issues des différents types d’inventaire (Agents, réseau, SNMP et données administratives). De plus, nous comptons proposer une interface plus ergonomique et plus claire pour l’utilisateur final.
Un moteur d’inventaire complètement dynamique permettant aux administrateurs de modifier et d’ajouter des données d’inventaire directement depuis une interface web
Une interopérabilité beaucoup plus forte avec les outils tiers en proposant une application basée sur une API. En effet, le backend sera une API RESTful complète et ouverte permettant une liberté complète sur les intégrations tierces et les données de l’application.
Quelles vont être les différentes étapes de ce projet ?
La refonte du produit se déroulera en plusieurs étapes. D'abord, nous allons proposer une première maquette iso-fonctionnelle avec la version actuelle pour que la communauté et les entreprises puissent la valider et nous faire leurs retours. Nous prévoyons de lancer une version RC (release candidate) d'ici le premier trimestre 2025
Une première version stable 3.0 est prévue pour le premier semestre 2025. Les fonctionnalités actuellement disponibles sous forme de plugins seront réintégrées progressivement à partir du dernier trimestre 2025.
Ce sera pour les nouveaux utilisateurs, si je comprends bien. Que se passe-t-il pour les utilisateurs de la version actuelle ?
Afin de permettre à nos utilisateurs et clients de transiter vers la nouvelle version, nous allons proposer deux choses :
Un module de rétrocompatibilité des anciens agents. En effet, mettre à jour tous les agents de son parc peut être assez difficile et nous comptons proposer une interface permettant aux anciens agents de fonctionner sur un périmètre ISO (hors télé-déploiement) afin de proposer des passages et mise à jour d’agents plus souple et simple. Cela permettra également de garder le support des systèmes obsolètes (Legacy)
Le serveur sous sa branche 2.X sera maintenu pendant encore 3 ans après la première release stable de la version 3.0. Cela permettra aux différentes acteurs et utilisateurs de la solution d’anticiper sereinement le changement et la migration.
Pour la communauté Open source, cela va-t-il changer quelques choses dans leur contribution ?
Bien au contraire, nous savons que la documentation sur branche 2.X, permettant de contribuer et développer autour de l’outil, est assez limité. Cette refonte a donc pour but de mieux expliquer aux développeurs et aux contributeurs, les rouages même de la solution et comment utiliser ses différents mécanismes.
Cela permettra à la communauté de contribuer plus simplement et facilement, ainsi nous espérons qu’elle répondra présente pour nous aider à améliorer l’outil pendant sa phase de test et dans le futur.
Comment la communauté peut-elle participer ?
La communauté pourra s'impliquer activement dès que le code et les premières documentations d'installation seront mis en ligne. Nous sommes vraiment impatients de recevoir leurs retours, qui seront essentiels pour peaufiner le projet. Tout se passera sur GitHub, dans la section Issues, où chacun pourra partager ses idées, signaler des bugs, ou proposer des améliorations. Nous annoncerons bientôt le lien, alors restez à l'affût ! C'est une superbe occasion de contribuer directement à l'évolution de l'outil et de faire entendre votre voix dans ce projet. On compte vraiment sur vous !
Nous nous reverrons pour la prochaine étape qui arriveras dans combien de temps ?
Next step, début 2025 pour les prochaines infos et dates !
Prochaine étape sera de présenter la partie fonctionnelle de l’outil dans sa version RC, et permettre à la communauté de contribuer.
GitHub OCS Inventory 👉 https://github.com/OCSInventory-NG
Comments