Supervision des environnements Pictrel

  • Présentation
  • Ma contribution
  • Captures d'écran
Dans le cadre de mon stage en fin de Cycle Bachelor chez CSC pour le compte d’ERDF, j’ai réalisé, entre autres, un outil de supervision des environnements de l’application Pictrel : Pictrel Dashboard.

L’idée était de faire une page web interne, qui afficherait en temps réel l’état des différents environnements de travail de l’application Pictrel et des composants de leurs différents domaines, ainsi que de pouvoir démarrer/arrêter ces derniers, en quelques clics.

Pictrel DashBoard a été développé dans les langages PHP et JavaScript, et il représente encore aujourd’hui, l’unique outil de supervision des environnements du projet Pictrel. Un écran a été mis en place dans l’open space de l’équipe projet, avec Pictrel Dashboard affiché en permanence dessus.

L’idée de cet outil de supervision, m’est venu suite à la réalisation au début de ma mission d’un script de gestion des environnements Pictrel. Développé en shell script, ce dernier permettait de démarrer/arrêter l’ensemble des environnements et les composants de leurs différents domaines de l’application Pictrel.

Avant de commencer la réalisation de cet outil, j’ai réalisé plusieurs maquettes que j’ai présenté à mon maître de stage ainsi qu’à mon directeur de projet. Au total, 9 versions différentes de la maquette ont été réalisées, avant d’avoir le résultat final de la page. La maquette devait respecter une contrainte précise : chaque personne de l’open space doit pouvoir voir l’état global des environnements de travail, en jetant un coup d’œil au loin vers l’écran, depuis son poste de travail.

La première version de l’outil de supervision, était une page web statique réalisée avec les langages HTML5 et CSS3. Cette première version permettait de valider définitivement l’aspect esthétique et ergonomique représentée auparavant sur la maquette.

Dans un second temps, l’utilisation du langage JavaScript m’a permis d’avoir un affichage adapté selon la situation. En effet, si tous les environnements de travail étaient actifs (tous les composants de leurs domaines étaient démarrés), l’affichage était adapté pour n’y afficher que les environnements sur toute la page. En revanche, si une anomalie était détectée dans un environnement, un tableau récapitulatif de l’environnement était affiché en bas de la page. L’affichage était limité à 4 tableaux, au bout du 5ème, un défilement automatique horizontal était mis en place.

Enfin, grâce à la suite du développement à l’aide du langage PHP, l’outil permettait de visualiser l’état en temps réel des environnements, domaines et composants. Un code couleur avait été mis en place, qui permettait de distinguer l’état de l’environnement à distance (vert pour un environnement actif, orange pour partiellement actif et rouge pour inactif). Afin d’éviter de rafraîchir la page constamment, un tableau JSON était créé contenant l’état réel des différents environnements. Ce tableau était mis à jour toutes les minutes et de façon automatique via la technologie AJAX, qui appelait selon un temps régulier, un script PHP pour tester les liens web des composants, puis mettait à jour le tableau JSON.

Une fois l’outil de supervision finalisé, ce dernier a pris une autre dimension, celui de l’outil d’administration des environnements Pictrel. En effet, l’idée était que les fonctionnels en cas de besoin, puissent arrêter/démarrer une instance pour un besoin à un instant t sur le projet, en l’absence de l’administrateur systèmes. Pour réaliser cette dernière partie sur cet outil, j’ai premièrement développé une fenêtre d’administration qui apparaîtrait au clic du composant. Ensuite, j’ai configuré cette fenêtre pour qu’elle dépose au moment du clic sur une action définie (démarrer, arrêter, redémarrer) un fichier sur le serveur. Le fichier qui était créé contenait la commande de l’action demandée, sous une forme lisible par mon script de gestion des environnements que j’avais réalisé au début de mon stage. Dès l’apparition d’un tel fichier sur le serveur web dans un répertoire défini, il était automatiquement détecté via la commande native « inotify » de linux, puis envoyé sur le serveur hébergeant l’environnement à administrer (le nom du serveur était également présent dans le fichier déposé). Le serveur cible recevant le fichier via sftp, exécuté directement la commande reçue avec mon script de gestion des environnements, après l’avoir préalablement détecté via un daemon tournant régulièrement.

 

Compétences développées

Administration de systèmes LinuxDéveloppement & ScriptingAutonomiePersévéranceAdaptabilitéCuriositéForce de proposition

Retour aux réalisations