Directrices para el diseño de activos y elementos de configuración | Inventario, CMDB y EAM

Directrices para el diseño de activos y elementos de configuración

Una base sólida para iniciativas de inventario, CMDB y EAM.

En pocas palabrasSolicitar demostraciónIniciar prueba gratuita
 
Fabian Klose, Roman Bauer y Matthias Scholze - 24 de julio de 2020
Versio.io es una solución de software que guarda datos de aplicaciones y fuentes de datos de terceros como activos o elementos de configuración. Los datos originales de terceros necesitan optimización para facilitar su posterior procesamiento, mejorando la legibilidad, la relevancia y la automatización.
Al crear importadores de datos, nuestro equipo de Versio.io ha aprendido valiosas lecciones sobre la optimización de datos que hemos traducido en directrices de diseño para usted. En Versio.io utilizamos el objeto JSON como formato de datos interno. Todas las recomendaciones de diseño se basan en la optimización de los objetos JSON para los activos individuales y los CI correspondientes.
 

Reglas generales de diseño

 

§1 Normalización de valores de atributos

§1 Normalización de valores de atributos
X

§1 Normalización de valores de atributos

Los valores de los atributos deben guardarse en un formato de unidad base estandarizado para facilitar su lectura y mejorar el posprocesamiento. En este caso, también puede resultar útil indicar la unidad base en el nombre del atributo. La interfaz de usuario de Versio.io ofrece una función de embellecimiento para convertir las unidades base a un formato legible para los humanos.

Todos los atributos con valores en unidades básicas deben convertirse a estas unidades.

  • Datos de tiempo: convertir a tiempo universal coordinado (UTC) en milisegundos.
  • Volumen de datos: convertir a bytes
  • Distancia: convertir a milímetros o metros (dependiendo del caso de uso)
  • Peso: convertir a gramos o kilogramos (dependiendo del caso de uso)

El siguiente ejemplo muestra cómo transformar el objeto JSON del formato original de la fuente de datos a un formato de datos optimizado para Versio.io:
# Data format of the original data source
	{
		"myDate": "Fri, 08-11-19, 3:47 PM",
		"myVolume": "4 GB",
		"myDistance": "42,195 km"
	}
# Optimized data format for Versio.io
	{
		"myDateUtc":  1573224441820,
		"myVolumeBytes": 4294967296,
		"myDistanceMeter": 42195
	}
 

§2 Enriquecer y dividir los valores de los atributos

§2 Enriquecer y dividir los valores de los atributos
X

§2 Enriquecer y dividir los valores de los atributos

Los atributos únicos con más de una información deben dividirse en varios atributos. Cada valor de atributo debe contener exactamente una pieza de información.

La evaluación de datos es más fácil cuando cada dato se asigna a un atributo. Esto resulta útil para el análisis de inventario y la definición de reglas de verificación en gobernanza y cumplimiento normativo.

Los importadores también pueden enriquecer los datos añadiendo atributos que son obvios según otros atributos.

El siguiente ejemplo muestra cómo se puede enriquecer y optimizar el objeto JSON de la fuente de datos original para Versio.io:
# Data format of the original data source
	{
    	"osInfo": "Ubuntu 18.04.06 OS-Kernel 4.5.4"
	}
# Optimized data format for Versio.io
	{
		"osType": "Linux", // enrichment
		"osName": "Ubuntu",
		"osVersion": "18.04.06",
		"kernelVersion": "4.5.3"
	}
 

§3 Definir un atributo de nombre para mostrar

§3 Definir un atributo de nombre para mostrar
X

§3 Definir un atributo de nombre para mostrar

En Versio.io puede seleccionar el nombre que se muestra de un activo o elemento de configuración. Se muestra como el título de una única instancia y en cualquier referencia o listado especificado en la interfaz web. Esto facilita al usuario la comprensión de qué instancia se trata.

A veces, no hay ningún atributo adecuado en la fuente de datos original para el nombre que se va a mostrar. En este caso, resulta útil añadir un nuevo atributo en el importador, en el que se crea un nombre corto significativo a partir de varios otros atributos.

El siguiente ejemplo muestra cómo se puede optimizar el objeto JSON de la fuente de datos original para Versio.io:
# Data format of the original data source
	{
		"firstName": "John",
		"lastName": "Doe"
	}
# Optimized data format for Versio.io
	{
		"displayName": "John Doe",
		"firstName": "John",
		"lastName": "Doe"
	}
 

§4 Enmascarar valores de atributos relevantes para la seguridad o de gran volumen.

§4 Enmascarar valores de atributos relevantes para la seguridad o de gran volumen.
X

§4 Enmascarar valores de atributos relevantes para la seguridad o de gran volumen.

Los valores de atributos relevantes para la seguridad (por ejemplo, contraseñas, tokens) deben enmascararse mediante su conversión a valores hash al importarlos a Versio.io. Esto impide que se vean los valores relevantes para la seguridad y evita su uso indebido. Sin embargo, la conversión al valor hash sigue permitiendo reconocer el cambio del valor.

Utilizamos el mismo procedimiento para almacenar en Versio.io los valores de atributos que son ilegibles para los seres humanos y que tienen un gran volumen. Esto reduce el volumen de datos que se deben almacenar y facilita su visualización en la interfaz de usuario.

El siguiente ejemplo muestra cómo se puede optimizar el objeto JSON de la fuente de datos original para 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
	}
# Optimized data format for Versio.io
	{
		"passwordHash": "952729c61cab7e01e4b5f5ba7b95830d2075f74b",
		"rawNumericListHash": "77c6211491dd37154e42004266f7a6c6b12b4e48"
	}
 

§5 Eliminar atributos inadecuados

Hay atributos que generan cambios en Versio.io basándose en valores de atributos que cambian continuamente. Si estos cambios son irrelevantes o si desea evitar un gran número de cambios, estos atributos deben eliminarse o ajustarse en consecuencia.
Además, hay atributos que no aportan ninguna información relevante. Estos deben eliminarse.
El siguiente ejemplo muestra cómo se puede optimizar el objeto JSON de la fuente de datos original para 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"
	}
# Optimized data format for Versio.io
	{
		"dynamicMeasureLevel": "ok", # level defined by treshold
		"otherAttribute": "myValue"
	}
 

§6 Dividir y combinar instancias de datos

§6 Dividir y combinar instancias de datos
X

§6 Dividir y combinar instancias de datos

Al importar datos, las instancias de una fuente de datos se pueden dividir y combinar para estructurar o condensar la información en Versio.io de forma más significativa.

La palabra «dividir» se refiere a la división de un activo o elemento de configuración en varias instancias. Por ejemplo, puede dividir la información sobre un esquema de base de datos en una instancia de base de datos y sus instancias de tabla.

La palabra «combinar» es lo contrario. Al importar, se crea una instancia en Versio.io donde los atributos se basan en varias instancias de diferentes fuentes de datos. Por ejemplo, puede crear un host en el que los valores de los atributos de diferentes productos de supervisión se combinan en un elemento de configuración.

La figura de la derecha muestra un ejemplo de un esquema de base de datos que se ha separado en la base de datos y las tablas asociadas en Versio.io. Esta estructura más detallada facilita el reconocimiento y el procesamiento de los detalles.

El siguiente ejemplo muestra cómo se puede optimizar el objeto JSON de la fuente de datos original para Versio.io:
# Data instances from different data sources
	#  Dynatrace
	{
		"host": "prod-qdocker",
		"cpuCores": 4,
		....
	}
	# Check_MK
	{
		"host": "prod-qdocker",
		"maxRAM": "4 GB",
		....
	}
	
# Optimized data instance for Versio.io
	{
		"host": "prod-qdocker",
		"cpuCores": 4,
		"maxRAM": "4 GB",
		....
	}
 

§7 Evitar objetos JSON en matrices

Esta política se basa en una razón puramente técnica. Las funciones de comparación de objetos JSON no pueden distinguir si los objetos dentro de las matrices han cambiado o solo su orden dentro de la matriz. Dado que detectar cambios es la esencia de versio.io, esto debe evitarse en la medida de lo posible.
En la mayoría de los casos, es posible realizar fácilmente una transformación correspondiente de la matriz y los objetos JSON contenidos, lo que garantiza una detección limpia de los cambios.
El siguiente ejemplo muestra cómo se puede optimizar el objeto JSON de la fuente de datos original para Versio.io:
# Data format of the original data source
	{
		"managementZones": [
			{
			"id": "6a98d7bc-abb9-44f8-ae6a-73e68e71812a",
			"name": "MyName-1",
			"description": "MyDescription-1"
			}
		]	
	}
# Optimized data format for Versio.io
	{
		"managementZones": {
			"6a98d7bc-abb9-44f8-ae6a-73e68e71812a": {
				"name": "MyName-1",
				"description": "MyDescription-1"
			}
		}	
	}
 

§8 Ampliar los activos y la infraestructura crítica para incluir las relaciones entre ellos y crear una topología.

§8 Ampliar los activos y la infraestructura crítica para incluir las relaciones entre ellos y crear una topología.
X

§8 Ampliar los activos y la infraestructura crítica para incluir las relaciones entre ellos y crear una topología.

El mapeo de las relaciones entre activos o elementos de configuración durante el proceso de importación en Versio.io aumenta considerablemente la calidad de la información y las posibilidades de procesamiento posterior.

Recomendamos encarecidamente que cada vez que importe datos, compruebe en qué medida pueden estar relacionados con los datos existentes en Versio.io.

Se ha demostrado que es una buena práctica ampliar el objeto de datos JSON original de la siguiente forma (véase también el ejemplo siguiente):

  • «relación»: crea un atributo raíz independiente dentro de un objeto JSON para almacenar todas las relaciones.
  • '<nombre-entidad>': crea un atributo con el nombre de la entidad y colócalo bajo 'relación'.
  • ['<instance-id>']: crea todas las relaciones en forma de ID en una matriz del atributo de entidad correspondiente.

El siguiente ejemplo muestra cómo se puede optimizar el objeto JSON de la fuente de datos original para Versio.io:
# Data format of the original data source
	{
		"myAttribute": "myValue"
	}
		
# Optimized 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.