Datadog Software Catalog proporciona una visión consolidada de tus servicios, combinando metadatos de propiedad, perspectivas de rendimiento, análisis de seguridad, asignación de costes y mucho más. Disponer de este eje centralizado permite a tus equipos de desarrollo detectar y gestionar componentes críticos en tus entornos de tiempo de ejecución.
Esta página te guiará a través de Empezando con Software Catalog en Datadog.
Software Catalog detecta automáticamente servicios según telemetrías de rendimiento de aplicaciones como APM, USM y RUM. La integración con APM permite a Datadog detectar rutinariamente nuevos servicios con la misma frecuencia con la que se recopilan tus trazas. Con USM, el Datadog Agent se conecta a tus hosts compatibles con eBPF. USM detecta automáticamente los servicios que se ejecutan en esta infraestructura y las etiquetas utilizando el etiquetado de servicios unificado.
Servicios definidos por el usuario
Si no utilizas estos productos, puedes declarar manualmente servicios como entradas en el registro service.definition.yaml. Las definiciones en este archivo incluyen todos los metadatos que el catálogo utiliza para archivar tus servicios. Pueden crearse y actualizarse mediante programación utilizando una API interna o con un servicio de gestión de configuración como Terraform. Debes incluir este archivo en tu control de versiones y actualizarlo cada vez que se añadan nuevos recursos a tu entorno.
El siguiente ejemplo representa un servicio de shopping-cart desde una aplicación de comercio electrónico. Incluye metadatos importantes sobre el servicio, tales como el equipo propietario, los lenguajes utilizados, el enlace al runbook y el repositorio de código.
También puedes utilizar cualquier fuente de conocimiento existente que mantenga tu organización, como tablas de Configuration Management Database (CMDB) (a través de la integración de ServiceNow de Datadog) y hojas de cálculo, para rellenar tu Software Catalog. Datadog también tiene una integración con Backstage que te permite importar cualquier dato o servicio registrado aquí en Datadog directamente.
Por último, también puedes crear entradas desde las etiquetas de service en otros productos de Datadog como Monitorización de infraestructura y Gestión de logs.
Gestión de metadatos en el Software Catalog
Después de crear estas entradas iniciales en tu Software Catalog, es importante mantener el catálogo actualizado de forma coherente para que siga siendo eficaz. Los archivos de definición de servicio deben existir en el control de versiones de tu equipo para facilitar la referencia de nuevos despliegues y otros cambios en los servicios en los que pueda ser necesaria una actualización.
También puedes automatizar la gestión de los metadatos de tus servicios configurando una acción de GitHub. Esto también te permitirá asegurarte de que los equipos estén declarando servicios de una manera acorde a tus estándares, como exigir que todos tus servicios de producción tengan enlaces de runbook válidos.
Si tu organización dispone de un registro de propiedad existente, incluidos sistemas internos como Backstage o una hoja de cálculo, un equipo central puede programar actualizaciones de los archivos de definición de servicio mediante llamadas de API.
Conecta la telemetría desde todo tu stack de Monitorización.
Conecta los datos de Monitorización del resto de tu plataforma de observabilidad para mejorar la utilidad de tu catálogo.
Con el etiquetado de servicios unificado, puedes utilizar la etiqueta service para hacer referencias cruzadas a entidades de Software Catalog en todos los productos de Datadog. Estas etiquetas pueden ayudar a complementar tus entidades de servicio con metadatos, métricas y otras fuentes de contexto, como Infrastructure Monitoring, RUM, Log Management, Entrega de software y Seguridad.
La telemetría del rendimiento de la aplicación de Universal Service Monitoring y APM también proporcionan un mapeo de dependencias listo para usar para tu ecosistema de sistemas, de modo que puedes ver cómo interactúan los componentes entre sí en todos tus entornos de tiempo de ejecución.
Enriquecer tu Software Catalog
Cuando la información sobre los servicios se rellene en el catálogo, puedes complementar tus definiciones de servicio con más contexto para que resulten más útiles. Para ello, puedes añadir metadatos clave de servicio a tus archivos de service.definition.yaml, por ejemplo:
Equipo
Ingeniero de guardia
Canal de contacto
Enlaces de documentación
Última versión implementada
Repositorios de código
Enlaces de runbook
Dependencias de biblioteca y sus versiones
Dashboards relevantes
Software Catalog utiliza esquemas de definición de servicio para almacenar y mostrar estos metadatos sobre tus servicios. Los esquemas incorporan reglas de validación para garantizar que sólo se aceptan valores válidos. Actualmente existen cuatro esquemas compatibles: v2, v2.1, v2.2 y v3.
Uso de los cuadros de mando de Software Catalog
Los cuadros de mando de servicios te ayudan a codificar las mejores prácticas de tu organización como reglas que pueden ser evaluadas. Al implementar cuadros de mandos en tu catálogo, tus equipos podrán evaluar la calidad de los servicios desde muchos puntos de vista, por ejemplo:
Cobertura de la monitorización
Preparación para producción
Protocolo de seguridad
Adopción de las últimas herramientas internas
Checks de integración
Los cuadros de mando de Datadog incluyen 10 reglas predefinidas que abarcan prácticas de observabilidad, etiquetado de propiedades y puntos de control de preparación para producción. También puedes definir tus propias reglas personalizadas. Por ejemplo, puedes crear un cuadro de mando que contenga un conjunto de reglas que se correspondan con los pasos de tu proceso de revisión de seguridad, de modo que puedas auditar rápidamente si cada uno de tus servicios cumple los requisitos. Estas reglas podrían incluir checks relacionados con el análisis de CVE, configuración de RBAC u otros parámetros de seguridad.
Para añadir reglas personalizadas a tu dashboard de controles de mando:
Haz clic en Create Rule (Crear regla) en la página de Scorecards (Cuadros de mando).
Especifica el nombre de la regla, el cuadro de mando al que pertenece, una descripción de la regla y el equipo propietario.
Envía un resultado de pass, fail o skip para cada tupla {rule, service} que estés evaluando al endpoint API de Scorecards/scorecard/outcomes/batch.
Consulta un resumen de los resultados en el dashboard de controles de mando.