4  DataOps

A alto nivel, describimos al proceso de DataOps como la disciplina y conjunto de prácticas que permiten a una organización maximizar el valor que es posible extraer de sus datos. Desde la concepción de una idea para un producto de datos, hasta su puesta en producción y monitorización, DataOps nos guía en la gestión de todo el ciclo de vida de la creación de valor.

Esta gestión abarca múltiples facetas: la interacción humana y la colaboración, la planificación y el seguimiento (en principios de gestión de proyectos para definir tareas y responsabilidades claras, típicamente mediante sistemas de configuración de proyecto por medio de tiquetes), el trabajo con código y datos, así como la automatización de procesos clave.

Otra faceta importante de la colaboración en DataOps implica, por ejemplo, la gestión unificada de todos los componentes del proyecto, incluyendo no solo el código, sino también la documentación asociada, como notas de trabajo, contratos de servicio y artefactos de seguimiento, asegurando trazabilidad y claridad a lo largo de la ejecución de los proyectos.

Para que los proyectos de datos sean exitosos, es fundamental establecer un proceso claro, definido y ordenado que fomente la colaboración y la comunicación en un flujo continuo, eliminando obstáculos innecesarios. Esto requiere familiaridad con el control de versiones, buenas prácticas de codificación y una comprensión clara de los usuarios finales y sus necesidades, para así elegir el método de despliegue más adecuado y maximizar el impacto organizacional.

En su desarrollo del concepto, DataOps viene directamente del movimiento DevOps, en el cual se buscó acercar a los desarrolladores al mundo de despliegue. Hace 10 años, por ejemplo, un desarrollador de una aplicación web podía estar lejos, en tiempo y lugar en la organización, de los procesos que llevan al despliegue de la aplicación. Hoy en día es probable que en el momento que se acepta su solicitud de fusión, esto desencadena un proceso immediato y automático de pruebas y despliegue, gracias a la adopción de metodologías DevOps.

La gran mayoría de las personas que entramos al mundo de ciencia de datos no tenemos este bagaje de conocer la complejidad del despliegue. Estamos acostumbrados a ser bastante autosuficientes, y en general la ingeniería de desplegar y escalar procesos en infraestructura de producción no es, necesariamente, parte de lo que conocemos. Es por eso que para muchos, al hablar de DataOps, puede parecer un proceso complejo y tedioso, pero a la postre es un conjunto de prácticas que aseguran el éxito de un proyecto de datos si lo llevamos de manera correcta.

Cabe destacar que para este libro no somos devotos al 100% de ninguna de las metodologías existentes de gestión de proyectos, sino que intentamos tomar elementos de varias de estas de la forma más simplificada posible, complementando esto con el conocimiento que hemos generado a partir de la experiencia en múltiples proyectos de datos a lo largo de muchos años.

En esta introducción damos un vistazo al panorama que se encuentran muchos equipos de datos dentro de sus organizaciones. En las siguientes secciones ahondaremos más en cada una de las secciones para profundizar en cómo llevamos a la práctica todo lo mencionado hasta acá.

4.1 Panorama para un equipo de datos

Nosotros visualizamos el panorama para un equipo de datos como se muestra en la siguiente imagen:

Ilustración del proceso de entrega de un producto de datos El punto al que queremos llegar en la otra orilla constituye lo que es ya nuestro producto de datos integrado en el proceso interno de clientes (como llamamos a los usuarios finales). Pero para llegar ahí desde donde estamos, necesitamos constituir en primer lugar un equipo de datos, necesitamos desarrollar el equipo que estará trabajando en la creación de esos productos de datos que vamos a entregar.

Para esto necesitamos primero integrarnos en lo que es el día a día de nuestra organización, en los procesos internos que tenemos como unidad o bien como empresa. La organización necesita estar consciente de que existe un equipo de datos, y que este puede servir a diversos fines para darle valor a los datos.

El puente lo conocemos como el proceso de entrega. Una vez que finalizamos de desarrollar un producto de datos, lo tenemos que llevar al cliente. Esta es la parte más fluida de todo el proceso (no por esto la más fácil), pero para llegar a este paso ya hemos establecido internamente toda una gestión interna que nos permite desarrollar productos de datos y además un paquete de trabajo bien delimitado que nos permite satisfacer la necesidad del cliente a quien vamos a entregar.

Un aspecto importante a tomar en cuenta es que comúnmente lo que hacen los equipos de datos puede tener diferentes nombres: analítica, análisis avanzado, inteligencia de negocios. El nivel al que ejecutan tareas de ingeniería de datos y la parte técnica de despliegues varía entre diferentes equipos. En aquellos casos donde la parte ingenieril queda en manos de otro equipo, es necesario formalizar los procesos de entrega para dar el contexto necesario que se necesita a la hora de desplegar los productos de datos. En algunos casos, es posible también delegar esa parte ingenieril a productos como Posit Connect, donde la persona que crea el producto de datos, puede desplegarla fácilmente con un solo botón.

Es difícil delimitar con un nombre o una sola categoría todas las tareas que realizan los equipos de datos , y por ende visualizamos esto como un continuo en donde a los extremos tenemos tareas que se parecen más a ingeniería de datos y en el otro tareas que van más acorde a ciencia de datos.

Gradiente de conocimiento entre ingenieria de datos y ciencia de datos

Cabe destacar que los equipos de datos, dependiendo del tamaño de la organización podrían tener recursos especializados o externalizados en el desarrollo de tareas que están más de un lado que de otro. Típicamente, hay por lo menos una persona en el equipo de ciencia de datos que tiene afinidad con todo el ancho de la gradiente, para poder aportar a las discusiones donde es importante entender cómo los procesos de despliegue de productos de datos son diferentes a los de productos de software tradicionales.

Uno de los principales retos que nos encontramos en las organizaciones, es que los equipos de datos están bien capacitados y operando mayoritariamente en tareas que están más del lado de ciencia de datos. En estos casos es importante reconocer que se necesita apoyo del lado de ingeniería. Ademas tenemos que mantener en mente que todo lo que vayamos a desplegar necesita ser incorporado de tal forma que los usuarios finales puedan utilizarlo y comprendan cómo utilizarlo.

4.2 Hábitos de DataOps

El proceso DataOps enfatiza en los siguientes hábitos:

  • Comunicación: Asegurar un flujo de información claro, abierto y constante entre todos los roles (científicos de datos, ingenieros, analistas, negocio, operaciones) y stakeholders.
  • Colaboración: Fomentar el trabajo y cultura de la co-creación, utilizando herramientas y procesos compartidos que fomenten el trabajo colaborativo.
  • Integración: Unir de forma continua y automatizada el código, los datos, las pruebas y los entornos para detectar problemas tempranamente (inspirado en la Integración Continua o CI de DevOps).
  • Automatización: Reducir el esfuerzo manual en tareas repetitivas y propensas a errores, utilizando por ejemplo pruebas funcionales, el despliegue continuo de modelos o productos, y herramientas para la monitorización de pipelines.
  • Medición de impacto: Evaluar objetivamente el rendimiento técnico de los procesos y soluciones, crucialmente, el valor de negocio que los productos de datos están entregando.

DataOps parte de la experiencia y desarrollo del concepto de DevOps, en donde los ciclos para entregar a cliente se han acortado al eliminar barreras como ciclos muy cerrados donde desarrolladores únicamente desarrollaban, Quality Asurance (QA) se encargaba únicamente de realizar las pruebas, y personal especializado en hacer los “builds” para llevar a producción. Todo esto hacía que se demorara meses en que un cambio una vez implementado llegara al usuario final.

El cambio se da en que en DataOps, se trabaja bajo la idea de integración continua. Si los requisitos de un producto de datos están bien definidos, podemos implementar ciclos rápidos de desarrollo e integración. Cuando el usuario detecta una nueva necesidad o los datos cambian, el equipo puede realizar ajustes y volver a desplegar rápidamente gracias a las pruebas y la automatización.

Alcanzar esta agilidad implica adoptar una caja de herramientas (tecnologías de control de versiones, orquestación, testing, colaboración, etc.) y una mentalidad que permitan entregas frecuentes y de bajo riesgo. La idea es que estos ciclos cortos deben producir resultados tangiblesm sobre los cuales se pueda evaluar su valor, y si justifica iniciar un nuevo ciclo de mejora.

En términos de dominio, la metodología DataOps es una combinación de ingeniería de datos, integración de datos, seguridad de datos y calidad de datos que se engranan con los cinco hábitos mencionados anteriormente.

En las siguientes secciones, profundizaremos en cómo llevar a la práctica estos hábitos, y aplicar las herramientas necesarias para implementar un flujo de trabajo DataOps efectivo.