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».
Estructura de repositorio recomendada
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:
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.
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:
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.
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.
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.
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.
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
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.