Saltar al contenido principal

Conocimiento

Usar Git con Entropy Data

Usar Git en tu empresa puede tomar muchas formas. Aquí cubrimos los casos de uso más habituales con el soporte de Git en Entropy Data. Este artículo trata «Git como sistema de referencia», «Entropy Data como sistema de referencia (trunk-based)» y «Entropy Data como editor (con flujos de PR)».

Requisitos previos

Para este artículo damos por hecho que sabes configurar Git y conectar productos de datos y Data Contracts con sus repositorios Git correspondientes. Puedes leer más sobre esto en la documentación.

Lo más importante que conviene recordar aquí es que existen conexiones separadas para productos de datos y para Data Contracts. La granularidad es la siguiente: un objeto en Entropy Data se conecta con «un archivo, en un repositorio Git, en una rama».

Un producto de datos o un Data Contract en Entropy Data se conecta a una conexión Git, es decir, un repositorio, una rama y un archivo tomados en conjunto

Estructura de repositorio recomendada

Un repositorio de GitHub con la estructura recomendada: el archivo dataproduct.yaml en la carpeta raíz y una subcarpeta por Output Port con los archivos YAML de los Data Contracts

Recomendamos usar un repositorio por producto de datos. El archivo YAML del producto de datos se ubica en la carpeta raíz, junto con los demás archivos que el producto de datos necesita.

Cada Output Port tiene su propia subcarpeta, y los archivos YAML de los Data Contracts van en esa subcarpeta.

Git como sistema de referencia

El primer caso de uso consiste en utilizar Entropy Data como capa de visualización de tus productos de datos. El repositorio es la única fuente de verdad y contiene todos los artefactos de código, además de los archivos YAML de los productos de datos y los Data Contracts.

Cuando se actualiza un archivo, los cambios se sincronizan mediante un pull de Git en Entropy Data:

Un archivo actualizado en Git llega a Entropy Data mediante un pull manual, un pull disparado por CI/CD o un webhook

Como ves, en este caso hay varias formas manuales y automáticas de integrar tus flujos de trabajo con Entropy Data.

a) Hacer pull manualmente

En cuanto Entropy Data detecta un cambio en el lado de Git, muestra un botón «Pull» en la tarjeta de conexión Git al abrir un producto de datos o un Data Contract conectado. Si lo seleccionas, el YAML se descarga desde Git, el producto de datos o el Data Contract se actualiza en Entropy Data y todos los cambios surten efecto de inmediato.

La tarjeta de conexión Git mostrando «File has been updated» y un botón Pull después de que el archivo conectado cambiara en Git

b) Disparar un pull con la CLI o la API REST de Entropy Data en CI/CD

También puedes disparar un pull de un archivo desde tu pipeline de CI/CD. Solo necesitas el identificador único de tu recurso. Consulta la API REST de Entropy Data para saber qué peticiones están disponibles. Tenemos previsto añadir pronto soporte para pull de Git en la CLI de Entropy Data.

c) Activar la sincronización por webhook

Al configurar la conexión de tu recurso, Entropy Data genera una Webhook URL única, que se muestra en la sección Auto Sync Git to Entropy Data del diálogo de conexión Git. Copia esa URL y crea un webhook para ella en tu proveedor de Git (por ejemplo, en los ajustes del repositorio en GitHub). A partir de ese momento, cada vez que se envíen commits al repositorio conectado, el archivo se actualiza automáticamente en Entropy Data. Si el webhook falla por algún motivo, es posible que tengas que hacer pull manualmente; tu proveedor de Git te informará de las llamadas de webhook fallidas. Para depurar problemas aquí, consulta nuestra documentación.

Integración solo por CI/CD

Si tienes restricciones sobre el uso de las credenciales Git de tu organización por parte de aplicaciones o servicios externos, puedes usar la API de Entropy Data para sincronizar los archivos YAML de tus productos de datos o Data Contracts en tu pipeline de CI/CD.

En ese caso no dispondrías de las funciones adicionales como la detección y resolución de conflictos ni del conjunto completo de capacidades de edición de Entropy Data.

Entropy Data como sistema de referencia (trunk-based)

Si quieres aprovechar las capacidades de edición de Entropy Data, puedes adoptar un enfoque de desarrollo trunk-based. Esto significa que todas las personas que contribuyen a un repositorio trabajan en la rama main y hacen commit de los cambios con frecuencia. Si Entropy Data es la única herramienta que se usa para trabajar sobre los archivos en Git, el flujo de trabajo para esta forma de desarrollar es sencillo:

Un archivo actualizado en Entropy Data llega a Git mediante un push manual o Auto Push, y después dispara las acciones posteriores

a) Hacer push a Git manualmente

Editas el recurso en tantos pasos como quieras con los editores de Entropy Data y luego decides que toca una nueva iteración en Git. Seleccionas el botón «Push», que aparece automáticamente cuando Entropy Data detecta cambios en un recurso. Puedes elegir entre «Push Directly» y «Create Pull Request» (ver más abajo). Para desarrollo trunk-based, elige «Push Directly» y el archivo se actualiza en Git.

La tarjeta de conexión Git mostrando «Changes detected» y un botón Push El modal Push Changes con la elección entre Push Directly y Create Pull Request, con Push Directly seleccionado y un mensaje de commit

Todas las acciones posteriores que dependen de un push a Git se disparan según tus pipelines de CI/CD, otros hooks, listeners, etc.

b) Activar Auto Push

También puedes activar la opción «Auto Push» al crear una conexión Git para un recurso. En ese caso, cada guardado de un producto de datos o de un Data Contract se envía automáticamente al archivo conectado en la rama conectada en Git.

Las acciones posteriores se disparan de nuevo cada vez que ocurre un cambio así.

Entropy Data como editor (con flujos de PR)

Muchas organizaciones usan una rama main protegida para tener un control más estricto sobre los cambios que se despliegan en sus entornos de producción. Para esos casos, Entropy Data admite pull requests y merge requests (para facilitar la lectura, a partir de aquí las llamamos PR).

En este artículo damos por hecho que usas Entropy Data para editar productos de datos y Data Contracts y que después quieres actualizar los archivos en Git.

Una actualización en Entropy Data se envía a una PR de forma manual o automática; al fusionar la PR se disparan las acciones posteriores y se actualiza el estado de sincronización con Git

a) Hacer push con una PR manualmente

Como ya se describió más arriba, aparece un botón «Push» en la tarjeta de conexión Git para cualquier cambio que exista en Entropy Data pero que aún no esté sincronizado con Git.

Si quieres usar el enfoque de PR, selecciona la opción «Create Pull Request» en el modal que aparece.

El modal Push Changes con Create Pull Request seleccionado, mostrando los campos para el nombre de la PR, el nombre de la rama y el mensaje de commit

Como cabe esperar, la interfaz te permite dar nombre a la rama que se va a crear, al título de la PR y al mensaje de commit.

Una vez confirmadas tus elecciones, Entropy Data crea una nueva rama en el repositorio conectado, hace commit y push de los cambios a esa rama y abre una nueva PR en tu proveedor de Git. Las PR pendientes se muestran en la tarjeta de conexión Git de tu recurso.

La tarjeta de conexión Git mostrando «Synchronized (with PR #1)» y la pull request abierta con un enlace al proveedor de Git

Tu equipo puede seguir después vuestros flujos de trabajo habituales para los cambios, como revisiones de código y pruebas automatizadas. Puedes seguir usando Entropy Data para aplicar cambios sobre la PR y enviarlos a su rama mientras siga abierta.

Cuando todo está listo y la PR se fusiona, Entropy Data detecta automáticamente la PR cerrada y actualiza el estado de sincronización.

Nota

Cuando decidas usar este enfoque, ten en cuenta que el objeto en Entropy Data (por ejemplo, el Data Contract) no estará sincronizado con la versión del repositorio mientras la PR siga abierta.

Tras la fusión, tus acciones habituales se disparan igual que siempre.

b) Hacer push con una PR automáticamente

El diálogo de conexión Git con la opción «Auto Sync Entropy Data to Git» establecida en «Auto-sync via MR/PR»

Si activaste la opción de push automático a una PR al crear la conexión Git, el flujo es prácticamente el mismo, pero algunos pasos ocurren de forma implícita. Si ya hay una PR pendiente, los cambios se envían automáticamente mediante commit y push a la rama de esa PR. Si no, se crea una nueva PR con tus ajustes por defecto de rama, nombre de PR y mensaje de commit.

Una vez hechos todos los cambios, todo lo descrito arriba para el proceso manual se aplica también aquí.

Gestiona productos de datos y Data Contracts con Entropy Data

Entropy Data ofrece una plataforma web para gestionar productos de datos, Data Contracts y data usage agreements en self-service, con integraciones de Git para todos los flujos descritos en este artículo.

Regístrate gratis o explora la demo interactiva.