GitLab, CI/CD y GitOps para aumentar la productividad de tus equipos de datos.

Cada una de las personas que hemos trabajado en equipos de software, hemos tenido un repositorio común donde almacenar todos los recursos que desarrollamos, junto con los detalles y documentaciones que nos permitan replicar nuestro trabajo.
En el transcurso del tiempo éstas tecnologías o SCM (source code management) han ido adquiriendo nuevas funcionalidades que permiten agilizar los tiempos de desarrollo de software.
¿En este punto, nos preguntamos cómo podremos utilizar GitLab en nuestros proyectos de Datos?
Primero empezaremos describiendo que es GitLab.
GitLab es una plataforma DevOps que permite desde la planificación de un proyecto hasta la producción, esto quiere decir que puedes reunir a los integrantes de tu equipo en una sola aplicación.
Con GitLab puedes desarrollar código seguro más rápido, implementar tus soluciones en cualquier nube e impulsar tus resultados comerciales.
Adicionalmente GitLab permite rápidamente aplicar flujos de integración y despliegue continuo que te permiten controlar y estandarizar los procesos de construcción de capacidades y pasos a producción.
Quizás esto lo consideramos como un estándar en la industria, pero hemos observado que en las áreas de datos no se utilizan, ya sea por la falta de especialistas, no lo consideran valioso o simplemente lo desconocen.
Por ejemplo, pensemos en un caso concreto que podríamos beneficiarnos de un flujo CI/CD en datos.
Queremos generar un producto de datos que incluya información demográfica y financiera de nuestros clientes, una de nuestras preocupaciones es que los datos deben estar encriptados u ofuscados mientras es ejecutado el desarrollo, pero pueden estar en claro en producción (dado que ninguna persona tiene acceso a ellos).
Si pensamos en este proceso, tendríamos una alta carga operativa, dado que tendríamos que realizar las configuraciones para crear o configurar nuestro ambiente de desarrollo, ofuscar o encriptar los datos necesarios y por último moverlos al ambiente sandbox, realizar el paso a producción manual y por último hacer las tareas de limpieza una vez el proyecto haya terminado.
Ahora si pensamos en cómo resolvemos este caso de uso aplicando CI/CD, tenemos que crear un conjunto de etapas que nos permitan realizar cada una de las tareas requeridas de forma secuencial o paralela.
Primero crearemos un pipeline con un conjunto de etapas.
Donde la primera nos permite crear el ambiente de desarrollo con GitOps (término que explicaremos más adelante).
La segunda nos permite comunicarnos con una plataforma de encriptado de datos, siendo un desarrollo a medida, de un proveedor cloud o de otro tercero.
Una vez tengamos el resultado de los datos encriptados en un repositorio en el que tengamos acceso podremos ejecutar la tercera etapa que se encarga de mover los datos al ambiente de desarrollo para que los equipos puedan trabajar con éstos.
Mientras los equipos trabajan en la construcción de sus productos de datos, puedes generar otro CI/CD que les permita agilizar las etapas de validación, construcción y despliegue de su desarrollo en sus respectivos ambientes de DEV, UAT y PROD.
Una vez el proyecto haya finalizado puedes volver a utilizar el primer flujo CI/CD del que hablamos y realizar la limpieza de los recursos que habías generado, consiguiendo reducir los riesgos de fuga de información, tus costos operativos y aumentar la productividad y autonomía de tus equipos de datos.
Ahora comentaremos brevemente que es GitOps
Como se mencionó anteriormente teníamos una etapa que se encargaba de la gestión de la infraestructura.
GitOps se encarga de la automatización de la infraestructura a través de Git.
Normalmente GitOps es una forma declarativa de implementar el despliegue continuo de aplicaciones o servicios para automatizar la creación de procesos que son utilizados frecuentemente.
Una de las principales ventajas que tiene utilizar GitLab en los procesos de GitOps es que es agnóstico a la nube, modular y puedes crear flujos 100% personalizables y modulares.
Permitiendo generar artefactos que puedan ser fácilmente utilizados por tus equipos de datos.
Si quieres saber más acerca de GitLab o de otras alternativas, te recomendamos los siguientes link:
https://learn.gitlab.com/turin-gears-microsit?utm_partnerid=0014M00001sEsJpQAK
¿Quieres aumentar la productividad de tus equipos de datos?
Si te gusto este blog y quieres implementarlo en tu compañía no dudes en revisar nuestros servicios de Data Reliability.
¡QUIERO SABER MÁS!