Data Mesh: Self-Service Data Infrastructure

Como hemos conversado en otros artículos una arquitectura Data Mesh se basa en 4 principios para conseguir escalar las estrategias de datos de las organizaciones, en este artículo explicaremos qué es Self Service Data Infraestructure y cómo puede ayudar a tu organización.
Primero, Self Service Data Infraestructure no es una sola herramienta. Es un conjunto de herramientas que permiten a los usuarios generar la infraestructura que requieran sin depender constantemente de IT.
Esto con el objetivo de reducir la carga operativa de los proyectos de datos y enfocarse en generar valor a partir de éstos.
Antes de comenzar a explicar qué es self service data infrastructure debemos recordar el artículo escrito la semana anterior “Domain Driven Data Ownership” donde comentamos que la arquitectura de datos de la organización debe estar dividida en dominios de negocios con el objeto que éstos sean autónomos en su gestión y operación de datos.
¿Qué es self-service data infrastructure?
La infraestructura de datos de autoservicio se basa en que cada dominio de negocio sea capaz de generar la infraestructura que requiere y poder construir sus productos de datos de manera autónoma y ágil sin depender constantemente de IT.
Posiblemente tengas la siguiente duda, si el dominio no tiene el personal y queremos no depender constantemente de IT.
Entonces, ¿Quién genera la infraestructura?
La respuesta es que el equipo de IT debe generar una plataforma de infraestructura bajo demanda que se base en templates y bloques modulares que se encargan de reducir la complejidad de crear la infraestructura que los usuarios de negocios necesitan.
Al leer esto, te preguntarás, bueno y si simplemente contrató un ingeniero de infraestructura y hacemos el trabajo más rápido?
Puede sonar tentador si perteneces a un equipo de negocio y posiblemente completes el trabajo que necesitas, pero vas a dañar considerablemente el rendimiento de los otros dominios de negocios, en consecuencia a que tu infraestructura no va a estar alineada a los estándares de gobierno de datos.
Por lo tanto, tus productos de datos no podrán pasar a producción o peor aún, serán inestables e incontenibles en ambientes “no productivos”.
Si bien el camino más apropiado es que sean generados por el equipo de IT, éste debe cambiar de mentalidad.
Ya que debe recordar que el usuario final es el negocio, no un ingeniero TI, por lo tanto, la plataforma debe ser rápida, intuitiva y simple.
Con que luchamos cuando tenemos una infraestructura centralizada
En la actualidad es común ver que las soluciones tecnológicas se han construido asumiendo que serán utilizadas por un sólo equipo experto o con conocimiento en el tema, la mayoría de las veces no se piensa en los usuarios de negocio, por lo tanto, carecen de abstracciones que reduzcan la complejidad.
Esto se debía en gran parte a que no existía una forma de generar infraestructuras flexibles y replicables.
Ahora con el uso intensivo de la nube, dejó de ser una limitación, como consecuencia a que los usuarios pueden tener acceso a una infraestructura en minutos y con lineamientos que promuevan el trabajo seguro.
Uno de los mayores desafíos al centralizar la infraestructura se encuentra en que los dominios de negocios se ven obligados a trabajar con las piezas de software que les proporciona IT.
El cual en algunos casos no es totalmente del agrado de los negocios porque no les permite cumplir con el trabajo que requieren.
Por ejemplo, imaginemos que tenemos una base de datos analítica administrada por IT.
Actualmente está siendo utilizada por el equipo de atención al cliente y por el equipo de ventas.
Ambos equipos tienen tareas que son fundamentales para la operación del negocio, atención al cliente está buscando respuestas para resolver problemáticas que tienen los clientes. Mientras que ventas está buscando datos de clientes para incrementar los ingresos a través de programas de fidelización.
Un problema que podríamos tener es que el equipo de ventas ejecuta una consulta que deja bloqueada la base de datos y el equipo de atención al cliente no puede continuar con su labor, provocando reclamos de los clientes y dañando la imagen corporativa de la organización.
En este tipo de casos, siempre se suele culpar al equipo de IT por no tener 100% disponible los sistemas, pero la verdad es que el equipo de IT no es responsable de conocer a priori la flexibilidad que necesitan las áreas de negocio.
Una forma de solucionarlo es que el equipo de IT trabaje constantemente con los equipos de negocios para ajustar la escalabilidad.
Lamentablemente esta alternativa no es escalable para cumplir con las capacidades de cómputo que necesitan los dominios, dado que a medida que las organizaciones requieren más recursos, necesitaremos más personal. Y el personal especializado escasea.
Y cuando nos quedemos sin el personal suficiente, volverán los reclamos de los usuarios de negocios.
Por otro lado, si estos conflictos son recurrentes en el transcurso del tiempo. Los equipos de negocios tomarán la iniciativa, contratarán personal IT y los van a incluir en sus equipos.
Generando lo que es conocido como “Shadow TI”.
Esto significa que tendrán un equipo IT interino que se base en lineamientos propios y no estará alineado con el equipo de IT global, generando acumulación de deuda técnica y en el corto plazo tendrán muchos problemas derivados de ella.
En conclusión, cuando los dominios comienzan a construir su propia infraestructura sin tener un lineamiento global para satisfacer sus necesidades en un modelo descentralizado, no solo es un riesgo de gobernanza de recursos, sino que tu organización perderá los beneficios entregados por las economías de escala.
Self-service infrastructure in the Data Mesh
En un Data Mesh, la infraestructura bajo demanda proporciona capacidades a los usuarios de negocio para que puedan cumplir su trabajo de una forma más autónoma y eficiente.
En consecuencia, su principal preocupación será enfocarse en el desarrollo de productos de datos en vez de administrar su infraestructura.
Si bien vemos beneficios, también hay complicaciones.
Por ejemplo, los equipos de negocio deberán interactuar con los equipos de IT para ir mejorando las capacidades de la plataforma, dado que a medida pase el tiempo los requerimientos cambiarán, se requerirán nuevas tecnologías e incluso puede cambiar la forma como trabajan los equipos.
Esto quiere decir que debe haber al menos una persona técnica en los dominios de negocios para traducir las necesidades que tienen a los equipos de IT.
Esto es una nueva razón para decidir que el equipo de IT debe ser el responsable de administrar y anexar capacidades a la plataforma de infraestructura con el objetivo de distribuir de forma equitativa las nuevas capacidades a los dominios de negocio.
En resumen, el objetivo de la plataforma de infraestructura autoservicio en un Data Mesh es proporcionar capacidades en forma de módulos que permitan gestionar la infraestructura de forma centralizada y que los dominios de negocio puedan resolver sus necesidades comerciales de forma más autónoma y eficiente.
Entre algunos de los recursos y herramientas que pueden componer una plataforma de infraestructura de datos se encuentran:
- Observabilidad de datos: monitoreo, registro, alertas
- Generación de recursos para almacenamiento de datos
- Generación de recursos para integración de datos
- Generación de herramientas de procesamiento y paso a producción
- Catálogo de datos y linaje
El enfoque de infraestructuras bajo demanda tiene la ventaja de evitar la duplicación de trabajo entre dominios de negocios; estandarizando las tareas repetitivas para conseguir economías de escala.
¿Cómo se ve en la práctica?
La plataforma de infraestructura de datos es necesaria para los ingenieros de datos, dado que les permite focalizarse en construir productos de datos en vez de gestionar su infraestructura.
Por otro lado, el equipo de IT a medida que genere un gran número de capacidades de infraestructura, se reducirá la demanda que reciben de los equipos de negocio.
Por último, se consiguen economías de escala, por lo tanto, los proyectos serán ejecutados en su respectivo presupuesto.
Ahora, ¿Qué es lo que consideramos como infraestructura en datos?
La podemos dividir en dos categorías. Datos e Infraestructura.
- Datos – se refiere a los modelos de datos, esquemas, transformaciones, pipelines ELT / ETL, metadatos. La construcción es responsabilidad del dominio, pero IT debe encargarse de generar las capacidades para realizar los pasos de producción respectivos.
- Infraestructura – se refiere a los recursos que permiten que los dominios de negocio creen y mantengan sus productos de datos incluyendo instalación, mantenimiento, actualización y el escalado de los recursos utilizados durante la creación de productos de datos. La construcción es responsabilidad de TI.
En la práctica, un componente de la plataforma de infraestructura de autoservicio sería la generación de un sandbox de datos que proporcione a los usuarios los recursos que necesitan para cumplir su labor y a la vez sigan los lineamientos globales impuestos por el equipo de gobierno de datos.
Cómo lineamiento de datos, queremos decir la expiración de los recursos, el ciclo de vida de los datos, el compliance de los datos, etc.
¿Cómo la infraestructura influye en Data Mesh?
Self service infrastructure es un pilar fundamental en una arquitectura de Data Mesh, dado que habilita las siguientes funcionalidades:
- El equipo de IT elige los proveedores y herramientas según las necesidades de los dominios y desarrolla las capacidades de infraestructura junto con un plan de largo plazo
- Los dominios de negocios utilizan la plataforma provista por el equipo de IT para crear y mantener productos de datos
- Gobierno de datos define reglas a nivel global que deben ser aplicadas en la plataforma de infraestructura
- Los productos de datos son publicados para los consumidores y son utilizados dentro de la infraestructura y herramientas proporcionadas por el equipo de IT
Cómo TurinGears utiliza la infraestructura de datos de autoservicio en Data Mesh
Durante el último tiempo hemos detectado que los equipos de negocios tienen una gran lejanía con los equipos de IT.
En algunos casos desconocen totalmente como generar infraestructura de forma simple, rápida y replicable que les permita conseguir economías de escala.
Considerando estos puntos, nos enfocamos en construir herramientas que solucionen los problemas de gestión de infraestructura para agilizar la construcción de productos de datos incluyendo lineamientos de IT y gobierno de datos.
Entre nuestros servicios se encuentra la generación de flujos de integración y despliegue continuo, creación de sandbox de datos o la automatización de flujos repetitivos a través de GitOps.
En el siguiente video veremos como se puede generar un sandbox de datos utilizando GitOps.
Para permitir a los equipos generar la infraestructura que necesitan sin depender continuamente de IT.