Centre de Calcul de l’Institut National de Physique Nucléaire et de
24 Slides2.13 MB
Centre de Calcul de l’Institut National de Physique Nucléaire et de Physique des Particules La CMDB au CC-IN2P3 Journées Informatiques 2016 – Le Lioran Sylvain Reynaud
Plan CMDB Définition Application au CC-IN2P3 Retour d'expérience sur Développements effectués et
CMDB : définition de Wikipédia application au CC-IN2P3 CMDB Configuration Management DataBase C'est une base de données unifiant les composants d'un système informatique @CC : le système considéré est le centre de calcul de l'IN2P3 Elle permet de comprendre l'organisation entre ceux-ci OUI @CC : plus de 20 000 relations mises-à-jour automatiquement et de modifier leur configuration NON @CC : la configuration est modifiée par les experts avec leurs outils Un composant fondamental d'une architecture ITIL
CMDB : définition de Wikipédia application au CC-IN2P3 La CMDB contient des informations sur les principaux composants du système d'information matériel : routeurs, switch, racks, machines physiques/virtuelles logiciel : instances de service, composants constituant l'instance humains : utilisateurs, experts de services les relations importantes entre eux par exemple, pour une instance de service : quelles machines le font tourner ? quels utilisateurs l'utilisent ? quels autres services en dépendent ?
Le modèle de données de la CMDB du CC Nœud classe d'objets Flèche impact
Les données de la CMDB du CC : les services Pour chaque service, au minimum : Dépendance sur le matériel Fourni par l'infrastructure (smurf-db, puppet-db, DNS ) Dépendance (macroscopiques) sur d'autres services 164 relations maintenues manuellement pour l'astreinte Pour certains services, interroger/analyser les informations de configuration pour en extraire Relations avec les groupes d'utilisateurs ( niveau criticité) Relations entre les composants ( redondance) Relations avec les autres services ( niveau criticité) Services ayant ce niveau d'intégration aujourd'hui dCache, XRootD, GPFS, databases, Load Bal., (Grid Engine, OpenStack)
Le modèle de données de la CMDB du CC Nœud classe d'objets Flèche impact
Le modèle de données de la CMDB du CC Nœud classe d'objets Flèche impact
Retour d'expérience sur Interfaces pas adaptées CMDB import postgr es
dashboard dashboard Impact Impact analysis analysis Retour d'expérience sur REST REST CMDB import CMDB REST UI . it é m i l p o te tr ê u q e de r e g a g La n postgr es
dashboard dashboard Impact Impact analysis analysis Retour d'expérience sur REST REST Jointures trop complexes CMDB import CMDB UI . nt e m e n on postgr es ti L c Q n S fo util e l ur e l'o s ce ne d n a d nter n e i p é D
dashboard dashboard Impact Impact analysis analysis Retour d'expérience sur REST REST CMDB import Problèmes: Performance Fiabilité Débogage postgr es CMDB UI .
dashboard dashboard Impact Impact analysis analysis Retour d'expérience sur REST REST CMDB import postgr es cache CMDB UI .
Retour d'expérience sur Mais quand même quelques points forts Open Source SGBDR avec Gestion de l'historique Plus ou moins transparent Gestion de l'héritage Permet la spécialisation d'une classe (e.g. matériel, service) Outil dédié aux CMDB, probablement adapté en cas de Modèle simple Saisie manuelle
. Base de données NoSQL Orientée graphe Open source Mais ne gère pas l'historique Langage Cypher : presque du ASCII art ! (n:Server)-- (:Configuration {type:"GridEngine"}) Server Config GridEngine (hv:Server)-- (:Configuration)-- (vm:Server)-[*3]- (:ServiceElement) Server Config Server Service
Interface REST dashboard dashboard Impact Impact analysis analysis Interfaces utilisateur développées REST REST Pour exporter les données vers d'autres outils (e.g. décisionnel) Pour permettre le développement d'autres outils Analyse d'impact (J. Moutarde) voir screenshot Impact en fonction de la redondance et de la criticité calculée Causes possibles communes à plusieurs pannes simultanées Dashboard (J. Moutarde) voir screenshot Choix des widgets et de leur disposition dans la page (layout) Choix des requêtes Choix du rendu Edition de rapports (à développer )
Interfaces utilisateur développées Analyse d'impact
Interfaces utilisateur développées Analyse d'impact
Interfaces utilisateur développées Dashboard
Implémentation des interfaces utilisateur Outil d'analyse d'impact Développé en JavaScript Quelle bibliothèque utiliser pour représenter le sous-graphe ? Cytoscape : interactif, mais algorithmes de layout trop basiques Graphviz : bons algorithmes de layout, mais par d'interaction SOLUTION : combiner ces bibliothèques Graphviz pour le calcul de la disposition des nœuds (layout) Cytoscape pour l'affichage et l'interaction avec le graphe Dashboard Basé sur angular-dashboard-framework (adf) et par conséquent sur le framework AngularJS de Google Développement de widgets réutilisables, indépendants du projet
Implémentation de l'import des données Entièrement développé par assemblage de composants logiciels réutilisables pour les protocoles et technologies pour les formats de données (en entrée et en sortie) pour les mécanisme de cache pour la sécurité de templates (règles de transformation du flux de données) grâce au framework Lavoisier http://software.in2p3.fr/lavoisier/ voir la présentation au JI-2014 (C. L'Orphelin)
Principales difficultés rencontrées Définition du modèle : compromis entre Simplicité Compatibilité avec l'ensemble des services du CC-IN2P3 Compatibilité avec l'analyse d'impact (graphe acyclique orienté) Hétérogénéité des technologies/formats employées D'où la nécessité d'utiliser un framework comme Lavoisier Quelle décision en cas d'incohérence détectée? Annuler la mise à jour pour garder la cohérence ? Continuer la mise à jour pour avoir des données fraiches ? Quel niveau de tolérance ?
Perspectives Concernant l'outil d'import des données Améliorer la gestion des incohérences détectées (notifier ?) Remplacer CMDBBuild par une BD (pour l'historique)? Concernant l'intégration des services Suivre l'évolution des services déjà intégrés Nouvelles informations disponibles (e.g. redondance) Informations disponibles autrement (e.g. changement de techno.) Continuer d'intégrer d'autres services Concernant les interfaces Analyse d'impact : affiner le calcul de la criticité Dashboard : à terminer Edition de rapports : à développer (basé sur jasper reports)
Merci