Diseña una plataforma de datos de autoservicio para una malla de datos

Last reviewed 2022-10-06 UTC

En una malla de datos, una plataforma de datos de autoservicio permite a los usuarios generar valor a partir de los datos porque les permite compilar, compartir y usar productos de datos de forma autónoma. Para aprovechar al máximo estos beneficios, te recomendamos que tu plataforma de datos de autoservicio proporcione las capacidades descritas en este documento.

Este documento forma parte de una serie en la que se describe cómo implementar una malla de datos en Google Cloud. Se supone que leíste y estás familiarizado con los conceptos descritos en Compila una malla de datos moderna y distribuida con Google Cloud y Arquitectura y funciones en una malla de datos

La serie tiene las siguientes partes:

Por lo general, los equipos de la plataforma de datos crean plataformas de datos centrales de autoservicio, como se describe en este documento. Este equipo compila las soluciones y los componentes que los equipos de dominios (productores de datos y consumidores de datos) pueden usar para crear y consumir productos de datos. Los equipos de dominios representan partes funcionales de una malla de datos. Mediante la compilación de estos componentes, el equipo de la plataforma de datos permite una experiencia de desarrollo sin problemas y reduce la complejidad de compilar, implementar y mantener productos de datos interoperables y seguros.

En última instancia, el equipo de la plataforma de datos debe permitir que los equipos de dominio se muevan más rápido. Ayudan a aumentar la eficiencia de los equipos de dominio y proporcionan a esos equipos un conjunto limitado de herramientas que abordan sus necesidades. Cuando se proporcionan estas herramientas, el equipo de la plataforma de datos evita que el equipo de dominio tenga que compilar y obtener estas herramientas. Las opciones de herramientas deben personalizarse según las diferentes necesidades y no forzar una forma inflexible de trabajar en los equipos de dominios de datos.

El equipo de la plataforma de datos no debe enfocarse en compilar soluciones personalizadas para los organizadores de canalización de datos o en los sistemas de integración continua y de implementación continua (CI/CD). Las soluciones como los sistemas de CI/CD están disponibles como servicios en la nube administrados, por ejemplo, Cloud Build. Usar los servicios de nube administrados puede reducir las sobrecargas operativas para el equipo de la plataforma de datos y permitirles enfocarse en las necesidades específicas de los equipos de dominios de datos como los usuarios de la plataforma. Con una sobrecarga operativa menor, el equipo de la plataforma de datos puede enfocarse más en abordar las necesidades específicas de los equipos del dominio de datos.

Arquitectura

En el diagrama siguiente, se ilustran los componentes de la arquitectura de una plataforma de datos de autoservicio. En el diagrama, también se muestra cómo estos componentes pueden admitir equipos a medida que desarrollan y consumen productos de datos en toda la malla de datos.

Componentes de la plataforma de datos de autoservicio, como se describe en el siguiente texto.

Como se muestra en el diagrama anterior, la plataforma de datos de autoservicio proporciona lo siguiente:

  • Soluciones de plataforma: Estas soluciones constan de componentes acoplables para aprovisionar proyectos y recursos de Google Cloud, que los usuarios seleccionan y organizan en diferentes combinaciones a fin de cumplir con sus requisitos específicos. En lugar de interactuar directamente con los componentes, los usuarios de la plataforma pueden interactuar con las soluciones de la plataforma para ayudarlos a lograr un objetivo específico. Los equipos de dominios de datos deben diseñar soluciones de plataforma para resolver problemas y áreas de inconvenientes comunes que causan demoras en el desarrollo y el consumo de productos de datos. Por ejemplo, los equipos de dominios de datos que se integran en la malla de datos pueden usar una plantilla de infraestructura como código (IaC). Usar las plantillas de IaC les permite crear con rapidez un conjunto de proyectos de Google Cloud con permisos estándar de Identity and Access Management (IAM), herramientas de redes, políticas de seguridad y APIs de Google Cloud relevantes habilitadas para el desarrollo de productos de datos. Recomendamos que cada solución esté acompañada de documentación, como orientación sobre cómo comenzar y muestras de código. Las soluciones de la plataforma de datos y sus componentes deben ser seguras y cumplir con las configuraciones predeterminadas.

  • Servicios comunes: Estos servicios proporcionan visibilidad, administración, uso compartido y observabilidad del producto de datos. Estos servicios facilitan la confianza de los consumidores de datos en los productos de datos y son una forma eficaz para que los productores de datos alerten a los consumidores de datos sobre los problemas con sus productos de datos.

Las soluciones de plataforma de datos y los servicios comunes pueden incluir lo siguiente:

  • Plantillas de IaC para configurar entornos de trabajo de desarrollo de productos de datos fundamentales, que incluyen lo siguiente:
    • IAM
    • Registro y supervisión
    • Herramientas de redes
    • Barreras de seguridad y cumplimiento
    • Etiquetado de recursos para la atribución de facturación
    • Almacenamiento, transformación y publicación de productos de datos
    • Registro de productos de datos, catalogación y etiquetado de metadatos
  • Plantillas IaC que siguen las barreras de seguridad organizacionales y las prácticas recomendadas que se pueden usar para implementar recursos de Google Cloud en lugares de trabajo de desarrollo de productos de datos existentes.
  • Plantillas de canalización de datos y aplicaciones que se pueden usar para iniciar proyectos nuevos o se usan como referencia para proyectos existentes. Algunos ejemplos de estas plantillas son los siguientes:
    • Uso de bibliotecas y frameworks comunes
    • Integración con herramientas de registro, supervisión y observabilidad de la plataforma
    • Herramientas de compilación y prueba
    • Administración de configuración
    • Canalizaciones de empaquetado y de CI/CD para la implementación
    • Autenticación, implementación y administración de credenciales
  • Servicios comunes para proporcionar observabilidad y administración de los productos de datos, que pueden incluir los siguientes:
    • Verificaciones de tiempo de actividad para mostrar el estado general de los productos de datos.
    • Métricas personalizadas para brindar indicadores útiles sobre los productos de datos.
    • Asistencia operativa del equipo central para que los equipos de consumidores de datos reciban alertas sobre los cambios en los productos de datos que usan.
    • Cuadros de evaluación de productos para mostrar el rendimiento de los productos de datos.
    • Un catálogo de metadatos para descubrir productos de datos.
    • Un conjunto de políticas de procesamiento definido de forma central que se puede aplicar de manera global en la malla de datos.
    • Un mercado de datos para facilitar el uso compartido de datos entre los equipos de dominio.

En Crea componentes y soluciones de plataforma mediante plantillas de IaC, se analizan las ventajas de las plantillas de IaC para exponer y, luego, implementar productos de datos. En Proporciona servicios comunes, se analiza por qué es útil proporcionar a los equipos de dominios componentes de infraestructura comunes que compiló y administra el equipo de plataforma de datos.

Crea componentes y soluciones de plataforma con plantillas de IaC

El objetivo de los equipos de plataforma de datos es configurar plataformas de datos de autoservicio para obtener más valor de los datos. Para compilar estas plataformas, crean y proporcionan equipos de dominio con plantillas de infraestructura aprobadas, seguras y de autoservicio. Los equipos de dominio usan estas plantillas para implementar sus entornos de desarrollo y consumo de datos. Las plantillas de IaC ayudan a los equipos de la plataforma de datos a lograr ese objetivo y habilitar el escalamiento. Usar plantillas de IaC aprobadas y confiables simplifica el proceso de implementación de recursos para los equipos de dominio, ya que permite que esos equipos reutilicen las canalizaciones de CI/CD existentes. Este enfoque permite que los equipos de dominios comiencen a trabajar con rapidez y sean productivos dentro de la malla de datos.

Las plantillas de IaC se pueden crear con una herramienta de IaC. Aunque existen varias herramientas de IaC, incluidas Cloud Config Connector, Pulumi, Chef yAnsible, en este documento, se proporcionan ejemplos de Terraform basadas en IaC. Terraform es una herramienta de IaC de código abierto que permite al equipo de la plataforma de datos crear de forma eficiente componentes y soluciones integrables de la plataforma para recursos de Google Cloud. Con Terraform, el equipo de la plataforma de datos escribe el código que especifica el estado final deseado y permite que la herramienta descubra cómo lograr ese estado. Este enfoque declarativo permite que el equipo de la plataforma de datos trate los recursos de infraestructura como artefactos inmutables para la implementación en todos los entornos. También ayuda a reducir el riesgo de incoherencias que surjan entre los recursos implementados y el código declarado en el control de origen (denominado desvío de configuración). El desvío de configuración causado por cambios ad-hoc y manuales en la infraestructura dificulta la implementación segura y repetible de los componentes de IaC en entornos de producción.

Las plantillas de IaC comunes para los componentes de la plataforma compuestas incluyen el uso de módulos de Terraform a fin de implementar recursos como un conjunto de datos de BigQuery, un bucket de Cloud Storage o una base de datos de Cloud SQL. Los módulos de Terraform se pueden combinar en soluciones de extremo a extremo para implementar proyectos completos de Google Cloud, incluidos los recursos relevantes implementados utilizando los módulos componibles. Puedes encontrar módulos de Terraform de ejemplo en los planos de Terraform para Google Cloud.

De forma predeterminada, cada módulo de Terraform debe satisfacer las barreras de seguridad y las políticas de cumplimiento que usa tu organización. Estas barreras de seguridad y políticas también se pueden expresar como código y automatizarse mediante las herramientas de verificación de cumplimiento automatizadas, como la herramienta de validación de políticas de Google Cloud.

Tu organización debe probar de forma continua los módulos de Terraform proporcionados por la plataforma mediante las mismas barreras de cumplimiento automatizadas que usa para promover los cambios en la producción.

A fin de que los componentes y las soluciones de IaC sean detectables y consumibles para los equipos de dominios que tienen una experiencia mínima con Terraform, te recomendamos usar servicios como el catálogo de servicios. Los usuarios que tienen requisitos de personalización significativos deben crear sus propias soluciones de implementación a partir de las mismas plantillas de Terraform acoplables que usan las soluciones existentes.

Cuando usas Terraform, te sugerimos que sigas las prácticas recomendadas de Google Cloud, como se describe en Prácticas recomendadas para usar Terraform.

A fin de ilustrar cómo se puede usar Terraform para crear componentes de plataforma, en las siguientes secciones se analizan ejemplos de cómo se puede usar Terraform a fin de exponer interfaces de consumo y para consumir un producto de datos.

Expón una interfaz de consumo

Una interfaz de consumo para un producto de datos es un conjunto de garantías sobre la calidad de los datos y los parámetros operativos que proporciona el equipo de dominio de datos a fin de permitir que otros equipos descubran y usen sus productos de datos. Cada interfaz de consumo también incluye un modelo de asistencia y la documentación del producto. Un producto de datos puede tener diferentes tipos de interfaces de consumo, como APIs o transmisiones, como se describe en Compila productos de datos en una malla de datos. La interfaz de consumo más común puede ser un conjunto de datos autorizado, una vista autorizada o una función autorizada. Esta interfaz expone una tabla virtual de solo lectura, que se expresa como una consulta en la malla de datos. La interfaz no otorga permisos de lector para acceder directamente a los datos subyacentes.

Google proporciona un módulo de Terraform de ejemplo para crear vistas autorizadas sin otorgar a los equipos permisos a los conjuntos de datos autorizados subyacentes. El siguiente código de este módulo de Terraform otorga estos permisos de IAM en la vista autorizada de dataset_id:

module "add_authorization" {
  source = "terraform-google-modules/bigquery/google//modules/authorization"
  version = "~> 4.1"

  dataset_id = module.dataset.bigquery_dataset.dataset_id
  project_id = module.dataset.bigquery_dataset.project

  roles = [
    {
      role           = "roles/bigquery.dataEditor"
      group_by_email = "ops@mycompany.com"
    }
  ]

  authorized_views = [
    {
      project_id = "view_project"
      dataset_id = "view_dataset"
      table_id   = "view_id"
    }
  ]
  authorized_datasets = [
    {
      project_id = "auth_dataset_project"
      dataset_id = "auth_dataset"
    }
  ]
}

Si necesitas otorgar a los usuarios acceso a varias vistas, otorgar acceso a cada vista autorizada puede llevar mucho tiempo y ser más difícil de mantener. En lugar de crear varias vistas autorizadas, puedes usar un conjunto de datos autorizado para autorizar de forma automática cualquier vista creada en el conjunto de datos autorizado.

Consume un producto de datos

En la mayoría de los casos de uso de estadísticas, la aplicación en la que se usan los datos determina los patrones de consumo. El uso principal de un entorno de consumo proporcionado de forma central es para la exploración de datos antes de que se usen en la aplicación de consumo. Como se explica en Descubre y consume productos en una malla de datos, SQL es el método más usado para consultar productos de datos. Por este motivo, la plataforma de datos debe proporcionar a los consumidores de datos una aplicación de SQL para explorar los datos.

Según el caso de uso de estadísticas, es posible que puedas usar Terraform a fin de implementar el entorno de consumo para los consumidores de datos. Por ejemplo, la ciencia de datos es un caso de uso común para los consumidores de datos. Puedes usar Terraform para implementar notebooks de Vertex AI administrados por el usuario a fin de usarlos como un entorno de desarrollo de ciencia de datos. Desde los notebooks de ciencia de datos, los consumidores de datos pueden usar sus credenciales para acceder a la malla de datos a fin de explorar datos a los que tienen acceso y desarrollar modelos de AA en función de estos datos.

Si deseas obtener información para usar Terraform a fin de implementar y ayudar a proteger un entorno de notebook en Google Cloud, consulta Protege datos confidenciales en los notebooks administrados por el usuario de Vertex AI Workbench.

Proporciona servicios comunes

Además de los componentes y las soluciones de IaC de autoservicio, el equipo de la plataforma de datos también puede tomar la propiedad de la compilación y la operación de servicios comunes de plataforma compartida que usan varios equipos de dominios de datos. Los ejemplos habituales de servicios de plataforma compartida incluyen software de terceros autoalojados, como herramientas de visualización de inteligencia empresarial o un clúster de Kafka. En Google Cloud, el equipo de la plataforma de datos puede elegir administrar recursos como los receptores de Dataplex y Cloud Logging en nombre de los equipos de dominio de datos. La administración de recursos para los equipos de dominios de datos permite que el equipo de la plataforma de datos facilite la auditoría y la administración centralizadas de políticas en toda la organización.

En las siguientes secciones, se muestra cómo usar Dataplex para la administración y administración central dentro de una malla de datos en Google Cloud, y la implementación de funciones de observabilidad de los datos en una malla de datos.

Dataplex para la administración de datos

Dataplex proporciona una plataforma de administración de datos que te ayuda a compilar dominios de datos independientes dentro de una malla de datos que abarca la organización. Dataplex te permite mantener controles centrales para administrar y supervisar los datos en todos los dominios.

Con Dataplex, una organización puede organizar de forma lógica sus datos (fuentes de datos compatibles) y artefactos relacionados, como código, notebooks y registros, en un Dataplex lake que representa un dominio de datos. En el siguiente diagrama, un dominio de ventas usa Dataplex para organizar sus elementos, incluidas las métricas y los registros de calidad de los datos, en zonas de Dataplex.

Elementos organizados por Dataplex.

Como se muestra en el diagrama anterior, Dataplex se puede usar para administrar datos de dominio en los siguientes elementos:

  • Dataplex permite que los equipos de dominios de datos administren de forma coherente sus recursos de datos en un grupo lógico llamado lake de Dataplex. El equipo de dominio de datos puede organizar sus recursos de Dataplex dentro del mismo lake de dataplex sin mover físicamente los datos ni almacenarlos en un solo sistema de almacenamiento. Los elementos de Dataplex pueden hacer referencia a buckets de Google Cloud Storage y conjuntos de datos de BigQuery almacenados en varios proyectos de Google Cloud que no sean el proyecto de Cloud que contiene el dataplex. Los elementos de Dataplex pueden ser estructurados o no estructurados, o pueden almacenarse en un data lake o almacén de datos analíticos. En el diagrama, hay data lakes para el dominio de ventas, el dominio de la cadena de suministro y el dominio del producto.
  • Las zonas de Dataplex permiten que el equipo de dominio de datos organice aún más los elementos de datos en subgrupos más pequeños dentro del mismo lake de Dataplex y agregue estructuras que capturen aspectos clave del subgrupo. Por ejemplo, las zonas de Dataplex se pueden usar para agrupar recursos de datos asociados en un producto de datos. Agrupar recursos de datos en una sola zona de Dataplex permite a los equipos de dominios de datos administrar políticas de acceso y políticas de administración de datos de manera coherente en toda la zona como un solo producto de datos. En el diagrama, se incluyen zonas de datos para ventas tradicionales, ventas en línea, almacenes de cadena de suministro y productos.

Las zonas y los lakes de Dataplex permiten que una organización unifique datos distribuidos y los organice en función del contexto empresarial. Esta disposición forma la base para actividades como la administración de metadatos, la configuración de políticas de administración y la supervisión de la calidad de los datos. Estas actividades permiten que la organización administre sus datos distribuidos a gran escala, como en una malla de datos.

Observabilidad de los datos

Cada dominio de datos debe implementar sus propios mecanismos de supervisión y alertas, idealmente mediante un enfoque estandarizado. Cada dominio puede aplicar las prácticas de supervisión descritas en Conceptos de la supervisión de servicios y realizar los ajustes necesarios en los dominios de datos. La observabilidad es un tema extenso y está fuera del alcance de este documento. En esta sección, solo se abordan los patrones útiles en las implementaciones de malla de datos.

En el caso de los productos con varios consumidores de datos, proporcionar información oportuna a cada consumidor sobre el estado del producto puede convertirse en una carga operativa. Las soluciones básicas, como las distribuciones de correo electrónico administradas de forma manual, suelen ser propensas a errores. Pueden ser útiles para notificar a los consumidores sobre las interrupciones planificadas, los próximos lanzamientos de productos y las bajas, pero no proporcionan conocimiento operativo en tiempo real.

Los servicios centrales pueden desempeñar un rol importante en la supervisión del estado y la calidad de los productos en la malla de datos. Aunque no es un requisito para una implementación exitosa de la malla de datos, la implementación de funciones de observabilidad puede mejorar la satisfacción de los consumidores y los productores de datos, y reducir los costos operativos y de asistencia generales. En el siguiente diagrama, se muestra una arquitectura de observabilidad de la malla de datos basada en Cloud Monitoring.

Observabilidad de la malla de datos.

En las siguientes secciones, se describen los componentes que se muestran en el diagrama, que son los siguientes:

Verificaciones de tiempo de actividad

Los productos de datos pueden crear aplicaciones personalizadas simples que implementen verificaciones de tiempo de actividad. Estas verificaciones pueden servir como indicadores de alto nivel del estado general del producto. Por ejemplo, si el equipo de productos de datos descubre una disminución repentina en la calidad de los datos de su producto, el equipo puede marcar ese producto como en mal estado. Las verificaciones de tiempo de actividad que son casi en tiempo real son muy importantes para los consumidores de datos que tienen productos derivados que dependen de la disponibilidad constante de los datos en el producto de datos ascendente. Los productores de datos deben compilar sus verificaciones de tiempo de actividad para incluir las dependencias ascendentes, de modo que proporcionen una imagen precisa del estado de su producto a los consumidores de datos.

Los consumidores de datos pueden incluir verificaciones de tiempo de actividad de producto en su procesamiento. Por ejemplo, un trabajo de Composer que genera un informe basado en los datos proporcionados por un producto de datos puede validar, como primer paso, si el producto se encuentra en el estado “en ejecución”. Recomendamos que tu aplicación de verificación de tiempo de actividad muestre una carga útil estructurada en el cuerpo del mensaje de su respuesta HTTP. Esta carga útil estructurada debe indicar si hay un problema, la causa raíz del problema en formato legible y, si es posible, el tiempo estimado para restablecer el servicio. Esta carga útil estructurada también puede proporcionar información más detallada sobre el estado del producto. Por ejemplo, puede contener la información de estado para cada una de las vistas en el conjunto de datos autorizado expuesto como un producto.

Métricas personalizadas

Los productos de datos pueden tener varias métricas personalizadas para medir su utilidad. Los equipos de productores de datos pueden publicar estas métricas personalizadas en sus proyectos de Google Cloud designados por el dominio. Para crear una experiencia de supervisión unificada en todos los productos de datos, se puede otorgar acceso a un proyecto de supervisión de la malla de datos central a esos proyectos específicos de dominio.

Cada tipo de interfaz de consumo de productos de datos tiene métricas diferentes para medir su utilidad. Las métricas también pueden ser específicas del dominio de la empresa. Por ejemplo, las métricas de las tablas de BigQuery expuestas a través de las vistas o a través de la API de Storage Read pueden ser las siguientes:

  • El número de filas.
  • Actualidad de los datos (expresada como la cantidad de segundos antes del tiempo de medición).
  • El nivel de calidad de los datos.
  • Los datos disponibles. Esta métrica puede indicar que los datos están disponibles para consultas. Una alternativa es usar las verificaciones de tiempo de actividad que se mencionaron antes en este documento.

Estas métricas se pueden ver como indicadores de nivel de servicio (SLI) para un producto en particular.

Para las transmisiones de datos (implementadas como temas de Pub/Sub), esta lista pueden ser las métricas de Pub/Sub estándar, que están disponibles a través de temas.

Asistencia operativa prestada por el equipo central de plataforma de datos

El equipo central de la plataforma de datos puede exponer paneles personalizados para mostrar diferentes niveles de detalles a los consumidores de datos. Un panel de estado simple que enumera los productos en la malla de datos y el estado del tiempo de actividad de esos productos puede ayudar a responder varias solicitudes de usuario final.

El equipo central también puede actuar como un centro de distribución de notificaciones para notificar a los consumidores de datos sobre varios eventos de los productos de datos que usan. Por lo general, este concentrador se crea mediante la creación de políticas de alertas. Centralizar esta función puede reducir el trabajo que debe realizar cada equipo de productores de datos. Crear estas políticas no requiere conocer los dominios de datos y debería ayudar a evitar cuellos de botella en el consumo de datos.

Un estado final ideal para la supervisión de la malla de datos es que la plantilla de etiqueta del producto de datos exponga los SLI y objetivos de nivel de servicio (SLO) que el producto admite cuando este está disponible. Luego, el equipo central puede implementar automáticamente las alertas correspondientes mediante la supervisión del servicio con la API de Monitoring.

Cuadros de evaluación de productos

Como parte del acuerdo de administración central, las cuatro funciones en una malla de datos pueden definir los criterios para crear cuadros de evaluación para los productos de datos. Estos cuadros de evaluación pueden convertirse en una medida objetiva del rendimiento de los productos de datos.

Muchas de las variables usadas para calcular los cuadros de evaluación son el porcentaje de tiempo que los productos de datos cumplen con su SLO. Los criterios útiles pueden ser el porcentaje de tiempo de actividad, las puntuaciones de calidad promedio de los datos y el porcentaje de productos con actualidad de datos que no están por debajo de un umbral. Para calcular estas métricas de forma automática con el lenguaje de consulta de Monitoring (MQL), las métricas personalizadas y los resultados de las verificaciones de tiempo de actividad del proyecto de supervisión central deberían ser suficientes.

¿Qué sigue?

  • Más información sobre BigQuery
  • Lee acerca de Dataplex.
  • Para obtener más información sobre las arquitecturas de referencia, los diagramas y las prácticas recomendadas, explora Cloud Architecture Center.