Directives de conception pour les actifs et les éléments d'infrastructure dans la CMDB | Versio.io

Directives relatives à la conception des éléments d'actif et de configuration

Une base solide pour les initiatives en matière d'inventaire, de CMDB et d'EAM

En brefRequest une démoCommencez un essai gratuit
 
Fabian Klose, Roman Bauer et Matthias Scholze - 24 juillet 2020
Versio.io est une solution logicielle qui enregistre les données provenant d'applications et de sources de données tierces sous forme d'actifs ou d'éléments de configuration. Les données tierces d'origine doivent être optimisées afin de faciliter leur traitement ultérieur, en améliorant leur lisibilité, leur pertinence et leur automatisation.
En développant des outils d'importation de données, notre équipe Versio.io a tiré de précieux enseignements sur l'optimisation des données, que nous avons traduits en recommandations de conception à votre intention. Chez Versio.io, nous utilisons l'objet JSON comme format de données interne. Toutes les recommandations de conception visent à optimiser les objets JSON en fonction des ressources individuelles et des éléments de l'identité visuelle.
 

Règles générales de conception

 

§1 Normalisation des valeurs d'attribut

§1 Normalisation des valeurs d'attribut
X

§1 Normalisation des valeurs d'attribut

Les valeurs des attributs doivent être enregistrées dans un format standardisé d'unité de base afin de faciliter la lisibilité et d'optimiser le traitement ultérieur. À cet égard, il peut également être utile d'indiquer l'unité de base dans le nom de l'attribut. L'interface utilisateur de Versio.io propose une fonction de mise en forme permettant de reconvertir les unités de base dans un format lisible par l'utilisateur.

Tous les attributs avec des valeurs unitaires de base doivent être convertis dans ces unités.

  • Données temporelles : conversion en temps universel coordonné (UTC) en millisecondes
  • Volume de données : convertir en octets
  • Distance : convertir en millimètres ou en mètres (selon le cas d'utilisation)
  • Poids : convertir en grammes ou en kilogrammes (selon le cas d'utilisation)

L'exemple suivant montre comment transformer l'objet JSON issu du format source d'origine en un format de données optimisé pour Versio.io :
# Data format of the original data source
	{
		"myDate": "Fri, 08-11-19, 3:47 PM",
		"myVolume": "4 GB",
		"myDistance": "42,195 km"
	}
# Optimised data format for Versio.io
	{
		"myDateUtc":  1573224441820,
		"myVolumeBytes": 4294967296,
		"myDistanceMeter": 42195
	}
 

§2 Enrichir et fractionner les valeurs d'attribut

§2 Enrichir et fractionner les valeurs d'attribut
X

§2 Enrichir et fractionner les valeurs d'attribut

Les attributs contenant plusieurs éléments d'information doivent être scindés en plusieurs attributs. Chaque valeur d'attribut doit contenir exactement un élément d'information.

L'évaluation des données est plus facile lorsque chaque information correspond à un attribut. Cela est utile pour l'analyse des stocks et la définition des règles de vérification dans la gouvernance et la conformité.

Les importateurs peuvent également enrichir les données en ajoutant des attributs pouvant être dérivés d'autres attributs.

L'exemple suivant montre comment l'objet JSON issu de la source de données d'origine peut être enrichi et optimisé pour Versio.io :
# Data format of the original data source
	{
    	"osInfo": "Ubuntu 18.04.06 OS-Kernel 4.5.4"
	}
# Optimised data format for Versio.io
	{
		"osType": "Linux", // enrichment
		"osName": "Ubuntu",
		"osVersion": "18.04.06",
		"kernelVersion": "4.5.3"
	}
 

§3 Définir un attribut de nom d'affichage

§3 Définir un attribut de nom d'affichage
X

§3 Définir un attribut de nom d'affichage

Dans Versio.io, vous pouvez sélectionner le nom affiché d'un élément d'actif ou de configuration. Il s'affiche comme titre d'une instance unique et dans toute référence ou liste spécifiée dans l'interface Web. Cela permet à l'utilisateur de comprendre plus facilement de quelle instance il s'agit.

Il arrive parfois qu'aucun attribut de la source de données d'origine ne convienne pour le nom d'affichage. Dans ce cas, il est utile d'ajouter un nouvel attribut dans l'importateur, dans lequel un nom court significatif est créé à partir de plusieurs autres attributs.

L'exemple suivant montre comment l'objet JSON provenant de la source de données d'origine peut être optimisé pour Versio.io :
# Data format of the original data source
	{
		"firstName": "John",
		"lastName": "Doe"
	}
# Optimised data format for Versio.io
	{
		"displayName": "John Doe",
		"firstName": "John",
		"lastName": "Doe"
	}
 

§4 Masquer les valeurs d'attributs sensibles sur le plan de la sécurité ou à volume élevé

§4 Masquer les valeurs d'attributs sensibles sur le plan de la sécurité ou à volume élevé
X

§4 Masquer les valeurs d'attributs sensibles sur le plan de la sécurité ou à volume élevé

Les valeurs d'attributs sensibles sur le plan de la sécurité (par exemple, les mots de passe, les jetons) doivent être masquées par conversion en valeurs de hachage lors de leur importation dans Versio.io. Cela empêche la consultation de ces valeurs sensibles et prévient toute utilisation abusive. Toutefois, la conversion en valeur de hachage permet tout de même de détecter toute modification de la valeur.

Nous utilisons la même procédure pour stocker dans Versio.io les valeurs d'attributs illisibles par l'homme et volumineuses. Cela réduit le volume de données à stocker et facilite leur affichage dans l'interface utilisateur.

L'exemple suivant montre comment l'objet JSON provenant de la source de données d'origine peut être optimisé pour Versio.io :
# Data format of the original data source
	{
		"password": "MySecretPassword",
		"rawNumericList": [10,45,23,67,98, ...] # a really long series of values that are not readable by humans
	}
# Optimised data format for Versio.io
	{
		"passwordHash": "952729c61cab7e01e4b5f5ba7b95830d2075f74b",
		"rawNumericListHash": "77c6211491dd37154e42004266f7a6c6b12b4e48"
	}
 

§5 Supprimer les attributs inappropriés

Certains attributs génèrent des modifications dans Versio.io en fonction de valeurs qui changent continuellement. Si ces modifications ne sont pas pertinentes ou si vous souhaitez éviter un nombre élevé de modifications, ces attributs doivent être supprimés ou ajustés en conséquence.
De plus, certains attributs ne fournissent aucune information pertinente. Ceux-ci doivent être supprimés.
L'exemple suivant montre comment l'objet JSON provenant de la source de données d'origine peut être optimisé pour Versio.io :
# Data format of the original data source
	{
		"actualTime": "Fri, 08-11-19, 3:47 PM", # changed continuously
		"dynamicMeasure": 10,  # changed continuously
		"constantAttribute": "CONSTANT-VALUE" # constant for every instance and change
		"otherAttribute": "myValue"
	}
# Optimised data format for Versio.io
	{
		"dynamicMeasureLevel": "ok", # level defined by threshold
		"otherAttribute": "myValue"
	}
 

§6 Diviser et combiner des instances de données

§6 Diviser et combiner des instances de données
X

§6 Diviser et combiner des instances de données

Lors de l'importation de données, les instances provenant d'une source de données peuvent être divisées et combinées afin de structurer ou de condenser les informations dans Versio.io de manière plus significative.

Le mot « diviser » fait référence à la division d'un élément d'actif ou de configuration en plusieurs instances. Par exemple, vous pouvez diviser les informations relatives à un schéma de base de données en une instance de base de données et ses instances de table.

Le mot « combiner » signifie le contraire. Lors de l'importation, vous créez une instance dans Versio.io où les attributs sont basés sur plusieurs instances provenant de différentes sources de données. Par exemple, vous pouvez créer un hôte dans lequel les valeurs d'attributs provenant de différents produits de surveillance sont combinées en un seul élément de configuration.

La figure de droite montre un exemple de schéma de base de données qui a été séparé en base de données et tables associées dans Versio.io. Cette structure plus fine facilite la reconnaissance et le traitement des détails.

L'exemple suivant montre comment l'objet JSON provenant de la source de données d'origine peut être optimisé pour Versio.io :
# Data instances from different data sources
	#  Dynatrace
	{
		"host": "prod-qdocker",
		"cpuCores": 4,
		....
	}
	# Checkmk
	{
		"host": "prod-qdocker",
		"maxRAM": "4 GB",
		....
	}
	
# Optimised data instance for Versio.io
	{
		"host": "prod-qdocker",
		"cpuCores": 4,
		"maxRAM": "4 GB",
		....
	}
 

§7 Évitez les objets JSON dans les tableaux

Cette politique repose sur une raison purement technique. Les fonctions de comparaison des objets JSON ne permettent pas de distinguer si ce sont les objets contenus dans les tableaux qui ont changé ou si seul leur ordre au sein du tableau a été modifié. La détection des modifications étant au cœur de Versio.io, il convient d’éviter cette situation dans la mesure du possible.
Une transformation correspondante du tableau et des objets JSON contenus est dans la plupart des cas facilement possible et garantit une détection claire des modifications.
L'exemple suivant montre comment l'objet JSON provenant de la source de données d'origine peut être optimisé pour Versio.io :
# Data format of the original data source
	{
		"managementZones": [
			{
			"id": "6a98d7bc-abb9-44f8-ae6a-73e68e71812a",
			"name": "MyName-1",
			"description": "MyDescription-1"
			}
		]	
	}
# Optimised data format for Versio.io
	{
		"managementZones": {
			"6a98d7bc-abb9-44f8-ae6a-73e68e71812a": {
				"name": "MyName-1",
				"description": "MyDescription-1"
			}
		}	
	}
 

§8 Étendre les actifs et les CI pour inclure les relations entre eux et créer une topologie

§8 Étendre les actifs et les CI pour inclure les relations entre eux et créer une topologie
X

§8 Étendre les actifs et les CI pour inclure les relations entre eux et créer une topologie

La cartographie des relations entre les actifs ou les éléments de configuration pendant le processus d'importation dans Versio.io augmente considérablement la qualité des informations et les possibilités de traitement en aval.

Nous vous recommandons vivement, chaque fois que vous importez des données, de vérifier dans quelle mesure elles peuvent être liées aux données existantes dans Versio.io.

Il s'est avéré utile d'étendre l'objet de données JSON d'origine sous la forme suivante (voir également l'exemple ci-dessous) :

  • « relation » : crée un attribut racine distinct dans un objet JSON pour stocker toutes les relations.
  • « <nom-entité> » : créez un attribut avec le nom de l'entité et placez-le sous « relation ».
  • ['<instance-id>']: crée toutes les relations sous forme d'ID dans un tableau de l'attribut d'entité correspondant.

L'exemple suivant montre comment l'objet JSON provenant de la source de données d'origine peut être optimisé pour Versio.io :
# Data format of the original data source
	{
		"myAttribute": "myValue"
	}
		
# Optimised data instance for Versio.io
	{
		"myAttribute": "myValue",
		"relation": {
			"host": ["HOST-EFF871BC6C2DAA1E", "HOST-BC6C2DAA1EFEF871"]
		}
	}

 

We use cookies to ensure that we give you the best experience on our website. Read privacy policies for more information.