Présentation, Contexte et enjeu

Au cours de mon alternance pour l’obtention de mon diplôme d'expert en ingénierie des systèmes d’information, j’ai créé une interface web pour gérer le serveur privé virtuel (VPS) qui héberge des applications destinées à offrir une interface d’analyse de donnée et un accès distant aux clients à leurs MCUSys. Le MCUSys est un automate complexe qui permet aux serriculteurs de gérer de manière automatisée leurs serres. Le serveur est un VPS qui tourne sous Debian. Les applications sont déployés avec docker. Il y a un reverse proxy pour gérer toutes les requêtes entrantes. Il y a un VPN pour gérer les accès distant aux MCUSys. L’objectif du projet est d’offrir une interface simple et intuitive pour gérer et superviser le VPS. Pour simplifier les processus de gestion, de surveillance et de maintenance du VPS, tout en assurant la sécurité et la fiabilité des applications qui y sont hébergées. L’enjeu est donc de concevoir une interface qui permette aux utilisateurs non techniques de contrôler et de mener des actions d’administration sur le VPS. L’objectif est de simplifier les tâches d’administration et de faire gagner du temps pour gérer les applications hébergées et accéder aux MCUSys pour résoudre les problèmes des clients.

Etapes et Acteurs

Pour simplifier la création des clients dans la base de données, qui nécessitait une connexion SSH au serveur suivie de l'exécution de commandes SQL, j'ai proposé à M. F. BERROCOSO de développer une interface web intuitive. Cette nouvelle interface visait à simplifier et automatiser ce processus, en le rendant accessible même à ceux qui ne possédaient pas de compétences techniques avancées. En effet, le processus manuel en place n'était pas seulement complexe, mais également chronophage et sujet à des erreurs potentielles. Chaque connexion SSH demandait une expertise spécifique, et la moindre faute dans les commandes SQL pouvait entraîner des dysfonctionnements ou des pertes de données. L'idée d'une interface web était donc de pallier ces inconvénients en offrant une solution plus conviviale et sécurisée. J'ai choisi de construire l'interface en utilisant des technologies web où j’avais déjà des connaissances. J’ai utilisé PHP pour le backend et HTML, CSS et JavaScript pour le frontend. Dès les premières étapes du développement, j'ai régulièrement présenté l'avancement du projet aux autres membres de l'équipe. Ces présentations ont servi non seulement à informer l'équipe de l'évolution du projet, mais aussi à recueillir des retours constructifs. L'enthousiasme généré par cette initiative a été un moteur de motivation supplémentaire. Les membres de l'équipe ont apporté des suggestions précieuses qui ont permis d'affiner le projet et de définir une feuille de route claire pour les développements futurs. La première version de l'interface web a été conçue pour permettre des opérations de base sur la base de données : lecture, création et modification des enregistrements clients. Cette version initiale a été testée pour s'assurer qu'elle répondait aux besoins identifiés et qu'elle fonctionnait correctement. Les tests ont révélé quelques bugs mineurs, mais aussi des opportunités d'amélioration. Les retours obtenus lors de cette phase ont été essentiels pour corriger ces problèmes et pour apporter des ajustements avant le déploiement. Après avoir résolu les problèmes identifiés, la première version de l'interface a été déployée et mise à la disposition des utilisateurs. Les premiers retours des utilisateurs ont été très positifs. Encouragé par ce succès initial, j'ai commencé à travailler sur les fonctionnalités supplémentaires pour les versions futures de l'interface. La deuxième version du projet a introduit une API permettant aux systèmes des clients (MCUsys) d'enregistrer des alertes directement dans la base de données. L'intégration de cette API a nécessité une attention particulière à la sécurité et à la gestion des permissions, afin de garantir que seules les entités autorisées puissent enregistrer des alertes. La troisième version de l'interface a ajouté la possibilité d'envoyer des emails. Cette fonctionnalité permettait aux utilisateurs de recevoir des notifications par email en fonction de certains événements ou critères définis dans le système. Par exemple, lorsqu'une nouvelle alerte était enregistrée, un email pouvait être envoyé automatiquement aux personnes concernées pour les informer de la situation. La quatrième version du projet a introduit la visualisation du statut des connexions privées virtuelles (VPN) entre le VPS (serveur privé virtuel) et les systèmes clients (MCUsys). Cette fonctionnalité permettait de voir en temps réel l'état des connexions VPN, de diagnostiquer les problèmes de connectivité et de s'assurer que les systèmes communiquaient correctement. La visualisation des statuts VPN a été particulièrement utile pour les administrateurs système, qui pouvaient désormais identifier et résoudre rapidement les problèmes de réseau sans avoir à vérifier manuellement chaque connexion. Actuellement, je travaille sur une version qui combine les fonctionnalités introduites dans les deuxième et troisième versions, c'est-à-dire l'enregistrement des alertes et l'envoi d'emails. Cette nouvelle version vise à automatiser l'envoi d'emails lorsque des alertes sont enregistrées, permettant ainsi aux utilisateurs de recevoir immédiatement des notifications critiques. L'objectif est de créer un système encore plus réactif et intégré, où les utilisateurs sont informés en temps réel des événements importants sans avoir à surveiller constamment l’interface. Tout au long de ce processus de développement, la collaboration avec l'équipe a été cruciale. Les réunions régulières et les sessions de brainstorming ont permis de recueillir des idées innovantes et d'anticiper les besoins futurs. Les retours constants ont également permis d'identifier rapidement les problèmes et de trouver des solutions efficaces. La création de cette interface web a transformé la manière dont nous gérons la base de données des clients. En passant d'un processus manuel et technique à une interface automatisée et intuitive, nous avons non seulement amélioré l'efficacité opérationnelle, mais aussi réduit les risques d'erreurs humaines. Les utilisateurs peuvent désormais se concentrer sur des tâches plus stratégiques, sachant que la gestion des clients est simplifiée et sécurisée.

En somme, le développement de cette interface web a été un projet enrichissant et formateur. Il a démontré l'importance de l'innovation et de la collaboration dans la résolution de problèmes complexes. En simplifiant le processus de création des clients, nous avons amélioré notre efficacité interne. Les différentes versions du projet, chacune apportant de nouvelles fonctionnalités et améliorations, montrent une progression continue vers une solution de plus en plus complète et intégrée. Travailler sur ce projet m'a permis de mettre en pratique mes compétences techniques et de gestion de projet, tout en contribuant à un objectif commun important pour l'entreprise.

Les lendemains du projet

Aujourd’hui l’interface web est en cours de développement et en production en version beta. Ce qui me permet d’ajouter les fonctionnalités et d’effectuer des ajustements en temps réel pour améliorer l'expérience utilisateur.

L’interface web permet aujourd’hui d’avoir en un clin oeil le statut de la connexion VPN entre le VPS et les MCUSys. Il offre un lien direct pour accéder en un clic au MCUSys. Ce qui offre un véritable gain de productivité.

La prochaine version de l’interface web permettra de gérer les conteneurs docker, le reverse proxy et de superviser les performances du VPS et des MCUSys.

Regard critiques et valeurs ajoutées

J’ai proposé de créer cette interface pour simplifier les opérations d’administration du serveur et offrir un outil de monitoring simple. Ma contribution dans le projet est considérable. J’ai proposé le projet pour résoudre un problème de création manuelle qui pouvait engendrer des erreurs. J’ai présenté le travail que j’ai réalisé aux membres de l’équipe. Le travail que j’ai réalisé à suscité un engouement positif de la part des membres de l’équipe particulièrement F. Berrocoso et X. Monset qui utilise l’interface. La création de cette interface est une expérience enrichissante car elle me permet de développer mes connaissances en administration Linux. Chacune des fonctionnalités que j’implémente me permet de comprendre les notions et concepts clés. Par exemple, pour mettre en place la supervision du statut de la connexion VPN entre le VPS et les MCUSys, je me suis documenter sur le fonctionnement de Wireguard. Cela m’a permis de comprendre les concepts de ce protocole VPN.

Conclusion

La création de cette interface web pour gérer le serveur privé virtuel (VPS) constitue une avancée significative pour notre équipe. En facilitant la gestion, la surveillance et la maintenance du VPS, nous avons non seulement simplifié des processus administratifs complexes mais aussi amélioré la fiabilité et la sécurité des applications hébergées. Le projet a démontré son utilité dès ses premières versions en simplifiant des tâches manuelles potentiellement sujettes à des erreurs, comme la création de clients dans la base de données. Les retours positifs des membres de l’équipe, en particulier M. F. Berrocoso et M. X. Monset, ont confirmé la pertinence et l’efficacité de cette solution. À travers les différentes versions de l’interface, j’ai progressivement ajouté des fonctionnalités cruciales comme l’enregistrement des alertes par le MCUSys, l’envoi d’emails automatiques en cas d’alerte, et la supervision des connexions VPN. Chaque nouvelle fonctionnalité a contribué à enrichir l’expérience utilisateur et à renforcer notre capacité à être proactif et efficace dans la détection des pannes. En travaillant sur ce projet, j’ai pu approfondir mes connaissances en administration Linux et découvrir des technologies essentielles comme Docker et Wireguard. Ces apprentissages me seront précieux pour mes futures responsabilités en tant qu’expert en ingénierie des systèmes d’information. En somme, cette interface web n’est pas seulement un outil technique, mais une solution stratégique qui transforme la manière dont nous administrons notre VPS. Elle représente une avancée vers une gestion plus intuitive et efficace, et pose les bases d’un avenir où les technologies complexes sont rendues accessibles et gérables par tous.