Una malla de datos es un marco arquitectónico y organizativo que trata los datos como un producto (en este documento, se denominan productos de datos). En este marco, los productos de datos los desarrollan los equipos que mejor entienden esos datos y que siguen un conjunto de estándares de gobierno de datos de toda la organización. Una vez que los productos de datos se han implementado en la malla de datos, los equipos distribuidos de una organización pueden descubrir y acceder a los datos que les interesan de forma más rápida y eficiente. Para conseguir una malla de datos que funcione correctamente, primero debes establecer los componentes de arquitectura de alto nivel y los roles de la organización que se describen 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 da por hecho que has leído y conoces los conceptos descritos en Crea una malla de datos moderna y distribuida con Google Cloud.
La serie consta de las siguientes partes:
- Arquitectura y funciones de una malla de datos (este documento)
- Diseñar una plataforma de datos de autoservicio para una malla de datos
- Crear productos de datos en una malla de datos
- Descubrir y consumir productos de datos en una malla de datos
En esta serie, la malla de datos que se describe es interna a una organización. Aunque es posible ampliar una arquitectura de malla de datos para proporcionar productos de datos a terceros, este enfoque ampliado no se trata en este documento. Ampliar una malla de datos implica tener en cuenta otros aspectos además del uso dentro de una organización.
Arquitectura
En esta serie se utilizan los siguientes términos clave para definir los componentes de la arquitectura:
- Producto de datos: un contenedor lógico o una agrupación de uno o varios recursos de datos relacionados.
- Recurso de datos: un recurso de datos es un activo físico de un sistema de almacenamiento que contiene datos estructurados o almacena una consulta que genera datos estructurados.
- Atributo de datos: un atributo de datos es un campo o un elemento de un recurso de datos.
En el siguiente diagrama se ofrece una descripción general de los componentes arquitectónicos clave de una malla de datos implementada en Google Cloud.
En el diagrama anterior se muestra lo siguiente:
- Los servicios centrales permiten crear y gestionar productos de datos, incluidas las políticas de la organización que afectan a los participantes de la malla de datos, los controles de acceso (a través de grupos de gestión de identidades y accesos) y los artefactos específicos de la infraestructura. En Crear componentes y soluciones de la plataforma se describen ejemplos de estos compromisos y reservas, así como de la infraestructura que facilita el funcionamiento de la malla de datos.
- Los servicios centrales proporcionan principalmente el catálogo de datos de todos los productos de datos de la malla de datos y el mecanismo de descubrimiento para los posibles clientes de estos productos.
- Los dominios de datos exponen subconjuntos de sus datos como productos de datos a través de interfaces de consumo de datos bien definidas. Estos productos de datos pueden ser una tabla, una vista, un archivo estructurado, un tema o un flujo. En BigQuery, sería un conjunto de datos, mientras que en Cloud Storage sería una carpeta o un contenedor. Puede haber diferentes tipos de interfaces que se pueden exponer como producto de datos. Un ejemplo de interfaz es una vista de BigQuery sobre una tabla de BigQuery. Los tipos de interfaces que se usan con más frecuencia con fines analíticos se describen en el artículo Crear productos de datos en una malla de datos.
Implementación de referencia de la malla de datos
Puedes encontrar una implementación de referencia de esta arquitectura en el repositorio data-mesh-demo
.
Las secuencias de comandos de Terraform que se usan en la implementación de referencia muestran conceptos de malla de datos y no están diseñadas para usarse en producción. Al ejecutar estas secuencias de comandos, aprenderás a hacer lo siguiente:
- Separa las definiciones de producto de los datos subyacentes.
- Crea plantillas de Data Catalog para describir interfaces de producto.
- Etiqueta las interfaces de producto con estas plantillas.
- Concede permisos a los consumidores del producto.
En el caso de las interfaces de producto, la implementación de referencia crea y usa los siguientes tipos de interfaz:
- Vistas autorizadas de tablas de BigQuery.
- Flujos de datos basados en temas de Pub/Sub.
Para obtener más información, consulta el archivo README del repositorio.
Funciones de una malla de datos
Para que una malla de datos funcione correctamente, debes definir roles claros para las personas que realicen tareas en ella. La propiedad se asigna a arquetipos de equipo o funciones. Estas funciones contienen los recorridos de usuario principales de las personas que trabajan en la malla de datos. Para describir claramente los recorridos de los usuarios, se les han asignado roles de usuario. Estos roles de usuario se pueden dividir y combinar en función de las circunstancias de cada empresa. No es necesario que asignes los roles directamente a los empleados o equipos de tu organización.
Un dominio de datos se alinea con una unidad de negocio o una función dentro de una empresa. Algunos ejemplos habituales de dominios empresariales son el departamento de hipotecas de un banco o los departamentos de clientes, distribución, finanzas o recursos humanos de una empresa. En un data mesh, hay dos funciones relacionadas con el dominio: los equipos de productores de datos y los equipos de consumidores de datos. Es importante tener en cuenta que es probable que un solo dominio de datos cumpla ambas funciones a la vez. Un equipo de dominio de datos produce productos de datos a partir de los datos que posee. El equipo también consume productos de datos para obtener información valiosa sobre la empresa y producir productos de datos derivados para otros dominios.
Además de las funciones basadas en dominios, una malla de datos también tiene un conjunto de funciones que realizan equipos centralizados de la organización. Estos equipos centrales permiten el funcionamiento de la malla de datos proporcionando supervisión, servicios y gobernanza entre dominios. Reducen la carga operativa de los dominios de datos a la hora de producir y consumir productos de datos, y facilitan las relaciones entre dominios necesarias para que funcione la malla de datos.
En este documento solo se describen las funciones que tienen un rol específico de la malla de datos. Hay otros roles que son necesarios en cualquier empresa, independientemente de la arquitectura que se utilice en la plataforma. Sin embargo, estos otros roles no se incluyen en este documento.
Las cuatro funciones principales de una malla de datos son las siguientes:
- Equipos de productores basados en dominios de datos: crean y mantienen productos de datos a lo largo de su ciclo de vida. A estos equipos se les suele denominar productores de datos.
- Equipos de consumidores basados en dominios de datos: descubra productos de datos y úselos en varias aplicaciones analíticas. Estos equipos pueden usar productos de datos para crear otros nuevos. Estos equipos suelen denominarse consumidores de datos.
- Equipo central de gobierno de datos: define y aplica políticas de gobierno de datos entre los productores de datos, lo que garantiza una alta calidad y fiabilidad de los datos para los consumidores. Este equipo suele denominarse equipo de gobierno de datos.
- Equipo central de la plataforma de infraestructura de datos de autoservicio: proporciona una plataforma de datos de autoservicio a los productores de datos. Este equipo también proporciona las herramientas para la detección centralizada de datos y la observabilidad de productos de datos que utilizan tanto los consumidores como los productores de datos. Este equipo se suele denominar equipo de plataforma de datos.
Una función adicional opcional que se puede tener en cuenta es la de un centro de excelencia (COE) para la malla de datos. El objetivo del COE es gestionar la malla de datos. El centro de excelencia también es el equipo de arbitraje designado para resolver cualquier conflicto que surja en las demás funciones. Esta función es útil para conectar las otras cuatro funciones.
Equipo de productores basado en el dominio de datos
Por lo general, los productos de datos se basan en un repositorio físico de datos (ya sea un único almacén de datos, data lake o flujo de datos, o varios). Una organización necesita roles de plataforma de datos tradicionales para crear y mantener estos repositorios físicos. Sin embargo, estos roles de plataforma de datos tradicionales no suelen ser los que crean el producto de datos.
Para crear productos de datos a partir de estos repositorios físicos, una organización necesita una combinación de profesionales de datos, como ingenieros y arquitectos de datos. En la siguiente tabla se indican todos los roles de usuario específicos de dominio que se necesitan en los equipos de productores de datos.
Rol |
Responsabilidades |
Habilidades necesarias |
Resultados deseados |
---|---|---|---|
Propietario del producto de datos |
|
Analíticas de datos Arquitectura de datos Gestión de productos |
|
Responsable técnico de producto de datos |
|
Ingeniería de datos Arquitectura de datos Ingeniería de software |
|
Asistencia para productos de datos |
|
Ingeniería de software Site Reliability Engineering (SRE) |
|
Experto en la materia (SME) del dominio de datos |
|
Analíticas de datos Arquitectura de datos |
|
Propietario de los datos |
|
|
|
Equipos de consumidores basados en dominios de datos
En una malla de datos, los usuarios de un producto de datos suelen ser usuarios de datos que no pertenecen al dominio del producto de datos. Estos consumidores de datos usan un catálogo de datos central para encontrar productos de datos que se ajusten a sus necesidades. Como es posible que más de un producto de datos satisfaga sus necesidades, los consumidores de datos pueden acabar suscribiéndose a varios productos de datos.
Si los consumidores de datos no encuentran el producto de datos que necesitan para su caso práctico, es su responsabilidad consultar directamente con el centro de excelencia de la malla de datos. Durante esa consulta, los consumidores de datos pueden plantear sus necesidades de datos y pedir asesoramiento sobre cómo satisfacerlas en uno o varios dominios.
Cuando buscan un producto de datos, los consumidores de datos buscan datos que les ayuden a conseguir varios casos prácticos, como paneles de control e informes de analíticas persistentes, informes de rendimiento individuales y otras métricas de rendimiento empresarial. Por otro lado, los consumidores de datos pueden buscar productos de datos que se puedan usar en casos prácticos de inteligencia artificial (IA) y aprendizaje automático. Para llevar a cabo estos casos prácticos, los consumidores de datos necesitan una combinación de perfiles de profesionales de datos, que son los siguientes:
Rol |
Responsabilidades |
Habilidades necesarias |
Resultados deseados |
---|---|---|---|
Analista de datos |
Busca, identifica, evalúa y se suscribe a productos de datos de un solo dominio o de varios dominios para crear una base para que funcionen los marcos de inteligencia empresarial. |
Ingeniería de analíticas Analíticas empresariales |
|
Desarrollador de aplicaciones |
Desarrolla un marco de aplicaciones para el consumo de datos en uno o varios productos de datos, ya sea dentro o fuera del dominio. |
Desarrollo de aplicaciones Ingeniería de datos |
|
Especialista en visualización de datos |
|
Análisis de requisitos Visualización de datos |
|
Científico de datos |
|
Ingeniería de aprendizaje automático Ingeniería de analíticas |
|
Equipo central de gobierno de datos
El equipo de gobierno de datos permite a los productores y consumidores de datos compartir, agregar y calcular datos de forma segura y de autoservicio, sin que la organización incurra en riesgos de cumplimiento.
Para cumplir los requisitos de cumplimiento de la organización, el equipo de gestión de datos está formado por una combinación de perfiles de profesionales de datos, que son los siguientes:
Rol |
Responsabilidades |
Habilidades necesarias |
Resultados deseados |
---|---|---|---|
Especialista en gobierno de datos |
|
Pyme del sector jurídico Pyme del sector de la seguridad Pyme del sector de la privacidad de los datos |
|
Responsable de los datos (se encuentra en cada dominio) |
|
Arquitectura de datos Gestión de datos |
|
Ingeniero de gobierno de datos |
|
Ingeniería de software |
|
Equipo central de la plataforma de infraestructura de datos de autoservicio
El equipo de la plataforma de infraestructura de datos de autoservicio, o simplemente el equipo de la plataforma de datos, se encarga de crear un conjunto de componentes de infraestructura de datos. Los equipos de dominio de datos distribuidos usan estos componentes para crear e implementar sus productos de datos. El equipo de la plataforma de datos también promueve las prácticas recomendadas e introduce herramientas y metodologías que ayudan a reducir la carga cognitiva de los equipos distribuidos al adoptar nuevas tecnologías.
La infraestructura de la plataforma debe proporcionar una integración sencilla con las herramientas de operaciones para la observabilidad global, la instrumentación y la automatización del cumplimiento. De lo contrario, la infraestructura debería facilitar dicha integración para que los equipos distribuidos puedan tener éxito.
El equipo de la plataforma de datos tiene un modelo de responsabilidad compartida que utiliza con los equipos de dominio distribuidos y el equipo de infraestructura subyacente. El modelo muestra qué responsabilidades se esperan de los consumidores de la plataforma y qué componentes de la plataforma admite el equipo de la plataforma de datos.
Como la plataforma de datos es un producto interno, no admite todos los casos prácticos. En su lugar, el equipo de la plataforma de datos lanza continuamente nuevos servicios y funciones según una hoja de ruta priorizada.
El equipo de la plataforma de datos puede tener un conjunto estándar de componentes implementados y en desarrollo. Sin embargo, los equipos de dominio de datos pueden optar por usar un conjunto de componentes diferente y único si las necesidades de un equipo no se ajustan a las que proporciona la plataforma de datos. Si los equipos de dominio de datos eligen un enfoque diferente, deben asegurarse de que cualquier infraestructura de plataforma que creen y mantengan cumpla las políticas y las medidas de protección de toda la organización en materia de seguridad y gobierno de datos. En el caso de la infraestructura de la plataforma de datos que se desarrolla fuera del equipo central de la plataforma de datos, este equipo puede optar por coinvertir o incorporar a sus propios ingenieros en los equipos de dominio. Si el equipo de la plataforma de datos decide coinvertir o incorporar ingenieros, puede depender de la importancia estratégica de la infraestructura de la plataforma del dominio de datos para la organización. Si las organizaciones participan en el desarrollo de la infraestructura por parte de los equipos de dominio de datos, pueden proporcionar la alineación y la experiencia técnica necesarias para volver a empaquetar los nuevos componentes de la infraestructura de la plataforma que se estén desarrollando para su uso futuro.
Es posible que tengas que limitar la autonomía en las primeras fases de la creación de una malla de datos si tu objetivo inicial es obtener la aprobación de las partes interesadas para ampliar la malla de datos. Sin embargo, si se limita la autonomía, se corre el riesgo de crear un cuello de botella en el equipo central de la plataforma de datos. Este cuello de botella puede impedir que la malla de datos se escale. Por lo tanto, cualquier decisión de centralización debe tomarse con cuidado. Para los productores de datos, puede ser preferible tomar decisiones técnicas a partir de un conjunto limitado de opciones disponibles que evaluar y elegir entre una lista ilimitada de opciones. Promover la autonomía de los productores de datos no equivale a crear un panorama tecnológico sin control. El objetivo es fomentar el cumplimiento y la adopción de la plataforma encontrando el equilibrio adecuado entre la libertad de elección y la estandarización.
Por último, un buen equipo de plataforma de datos es una fuente central de formación y prácticas recomendadas para el resto de la empresa. Estas son algunas de las actividades más importantes que recomendamos que lleven a cabo los equipos de la plataforma de datos central:
- Fomentar las revisiones periódicas del diseño de la arquitectura de los nuevos proyectos funcionales y proponer formas de desarrollo comunes en los distintos equipos de desarrollo.
- Compartir conocimientos y experiencias, y definir de forma colectiva las prácticas recomendadas y las directrices de arquitectura.
- Asegurarse de que los ingenieros tienen las herramientas adecuadas para validar y comprobar los errores habituales, como problemas con el código, errores y degradaciones del rendimiento.
- Organizar hackatones internos para que los equipos de desarrollo puedan expresar sus necesidades de herramientas internas.
Estos son algunos ejemplos de roles y responsabilidades del equipo central de la plataforma de datos:
Role | Responsabilidades | Habilidades necesarias |
Resultados deseados |
---|---|---|---|
Propietario del producto de la plataforma de datos |
|
Estrategia y operaciones de datos Gestión de productos Gestión de las partes interesadas |
|
Ingeniero de plataformas de datos |
|
Ingeniería de datos Ingeniería de software |
|
Ingeniero de plataformas y seguridad (un representante de los equipos centrales de TI, como los de redes y seguridad, que forma parte del equipo de la plataforma de datos) |
|
Ingeniería de infraestructuras Ingeniería de software |
|
Arquitecto empresarial |
|
Arquitectura de datos Iteración de soluciones y resolución de problemas Consenso |
|
Consideraciones adicionales sobre las mallas de datos
Hay varias opciones de arquitectura para una plataforma de datos de analíticas, cada una con diferentes requisitos previos. Para habilitar cada arquitectura de malla de datos, recomendamos que tu organización siga las prácticas recomendadas que se describen en esta sección.
Obtener financiación para la plataforma
Como se explica en la entrada del blog "Si quieres transformar, empieza por las finanzas", la plataforma nunca está terminada: siempre funciona según una hoja de ruta priorizada. Por lo tanto, la plataforma debe financiarse como un producto, no como un proyecto con un punto final fijo.
El primer adoptante de la malla de datos asume el coste. Normalmente, el coste se comparte entre la empresa que forma el primer dominio de datos para iniciar la malla de datos y el equipo de tecnología central, que suele albergar el equipo de la plataforma de datos central.
Para convencer a los equipos de Finanzas de que aprueben la financiación de la plataforma central, te recomendamos que elabores un caso práctico sobre el valor de la plataforma centralizada a lo largo del tiempo. Este valor se obtiene al volver a implementar los mismos componentes en equipos de publicación individuales.
Define la plataforma mínima viable para la malla de datos
Para ayudarte a definir la plataforma mínima viable para la malla de datos, te recomendamos que pruebes y repitas el proceso con uno o varios casos prácticos. Para tu prueba piloto, busca casos prácticos que sean necesarios y en los que haya un consumidor dispuesto a adoptar el producto de datos resultante. Los casos prácticos ya deberían tener financiación para desarrollar los productos de datos, pero debería ser necesario el aporte de los equipos técnicos.
Asegúrate de que el equipo que va a implementar la prueba piloto comprenda el modelo operativo de la malla de datos de la siguiente manera:
- La empresa (es decir, el equipo de productores de datos) es la propietaria de la cartera de pedidos, la asistencia y el mantenimiento.
- El equipo central define los patrones de autoservicio y ayuda a la empresa a crear el producto de datos, pero se lo cede para que lo gestione y lo controle cuando esté terminado.
- El objetivo principal es demostrar el modelo operativo de la empresa (los dominios producen y los dominios consumen). El objetivo secundario es demostrar el modelo operativo técnico (patrones de autoservicio desarrollados por el equipo central).
- Como los recursos del equipo de la plataforma son limitados, usa el modelo de equipos principales y de ramificación para compartir conocimientos, pero sin dejar de permitir el desarrollo de servicios y productos de plataforma especializados.
También te recomendamos que hagas lo siguiente:
- Planificar las hojas de ruta en lugar de dejar que los servicios y las funciones evolucionen de forma orgánica.
- Define las funciones mínimas viables de la plataforma, que abarcan la ingesta, el almacenamiento, el procesamiento, el análisis y el aprendizaje automático.
- Integra el gobierno de datos en cada paso, no como un flujo de trabajo independiente.
- Implementar las funciones mínimas en las áreas de gobernanza, plataforma, flujo de valor y gestión de cambios. Las funciones mínimas son aquellas que cumplen el 80% de los casos prácticos.
Planificar la coexistencia de la malla de datos con una plataforma de datos
Muchas organizaciones que quieren implementar una malla de datos probablemente ya tengan una plataforma de datos, como un lago de datos, un almacén de datos o una combinación de ambos. Antes de implementar una malla de datos, estas organizaciones deben planificar cómo puede evolucionar su plataforma de datos a medida que crece la malla de datos.
Estas organizaciones deben tener en cuenta factores como los siguientes:
- Los recursos de datos más eficaces en la malla de datos.
- Los recursos que deben permanecer en la plataforma de datos actual.
- Si los recursos tienen que migrarse o si pueden mantenerse en la plataforma actual y seguir participando en la malla de datos.
Siguientes pasos
- Para obtener más información sobre cómo diseñar y operar una topología de nube, consulta el Google Cloud framework Well-Architected.
- Para ver más arquitecturas de referencia, diagramas y prácticas recomendadas, consulta el centro de arquitectura de Cloud.