Eficiencia y automatización del procesamiento de datos, construyendo un Data Lake con tecnología Google

Caso de éxito | Google Cloud


Una reducción en más del 400% en los tiempos de carga de datos, desde el data center (on premise) de WOM, a la nube de Google y a la de IBM.



Sus objetivos:

  • Contar con un sistema centralizado de almacenamiento de información eficiente, rápido y seguro para hacer accesible los datos generados en su data center (on premise).
  • Transferir los datos a la nube de IBM, en donde se realizan actualmente algunos procesos de data analytics.
  • Migrar suavemente todos los procesos a la nube de Google, para en un futuro realizar todos los procesos de data analytics en GCP.

La solución:

  • Construir un data lake robusto y eficiente.
  • Diseño de un pipeline de datos que parte de sus servidores on premise, realiza un respaldo de datos y metadatos en el data lake en GCP, para luego transferirlos a la nube de IBM.
  • Se diseñaron políticas de gobierno de datos.

Beneficios:

  • Tener un data lake robusto, eficiente, escalable y de alta disponibilidad.
  • Una reducción en más del 400% en los tiempos de carga de datos, desde el data center (on premise) de WOM, a la nube de Google y a la de IBM.
  • Implementar el gobierno de los datos.
  • Iniciar un proceso de migración suave de IBM cloud a GCP.

Resumen

La empresa

WOM, es una empresa Chilena en el rubro de las telecomunicaciones, y pertenece al fondo de inversión británico Novator Partners LLP y a sus socios locales, Phoenix One. Nace en Julio de 2015 tras la compra de la compañía de telecomunicaciones Nextel Chile. En la actualidad supera los 4 millones de clientes. Su sede central se encuentra en Santiago, pero posee más de 80 oficinas a lo largo de todo el país. WOM posee concesión propia con cobertura nacional en 3G y 4G en la banda AWS-1 (1700/2100 MHz). La empresa posee contratos vigentes de roaming nacional con Movistar y Claro (2G y 3G) para garantizar una cobertura nacional de alta calidad.

El desafío

WOM genera una enorme cantidad de datos, muchos de los cuales están destinados a hacer data analytics, por lo que la empresa buscaba una forma rápida, eficiente y económica de almacenarlos. Sin embargo, actualmente algunos procesos generadores de datos se ejecutan on premise en su data center, mientras que otros procesos de análisis de datos se ejecutan en la nube de IBM.

Por tanto, el desafío inicial era entender cómo opera el workflow de datos de la empresa. La travesía de los datos parte de un data center (on premise) y finalizan al ser entregados a un bucket de IBM cloud, en los que se realizan diversos procesos BI. Uno de los objetivos de la empresa es migrar lentamente (a mediano plazo) a la nube de Google, pues para hacer una migración completa, deben migrar algunos procesos complejos que dependen de servicios ofrecidos por IBM.

Cada dataset que se ingestan al data lake, implementado a través de un bucket de Cloud Storage, viene junto a su archivo de metadatos. Este último nos permitirá hacer un seguimiento del dataset en el pipeline de datos.

Adicionalmente, los ciclos de carga deben poder realizarse en cualquier momento que se requieran, de forma automatizada. La solución debe permitir que los datos sean almacenados y recuperados de manera rápida y precisa. Una vez cargados en el data lake, algunos de estos datos deben cargarse a la nube de IBM, por lo que era necesario implementar también este evento, a partir de funciones disparadoras de procesos.

La inclinación vanguardista y tecnológica de WOM, la impulsa a buscar nuevas formas de analizar y extraer información de dichos datos, por lo que en sus planes futuros está incluir el procesamiento de los datos, aplicar las herramientas de ML de Google Cloud, así como también empezar a utilizar herramientas de visualización como data studio, pero debido a la importancia de estos procesos, y su dependencia actual con herramientas de IBM cloud, la migración de tales herramientas debe hacerse gradualmente, quedando para un segundo proyecto futuro.


Con la ayuda de Zenta, descubrimos cómo GCP brinda herramientas que fomentan el desarrollo de ideas de negocio, permitiéndonos mejorar nuestra productividad y eficiencia.

-- Ruben Shlaman,
Senior IT Business Intelligence Manager en WOM


La solución

Dado que los datos partían de un data center on premise, el proceso iniciaba al subir los archivos a la zona de landing (implementada vía un bucket de Cloud Storage), la cual era revisada constantemente por una cloud function, que servía como gatilladora del proceso de almacenamiento. Dicha función realiza dos procesos, el primero es realizar la copia del archivo de datos en un segundo bucket etiquetado como RAW, que da cuenta del data lake, y el archivo de metadatos, en formato JSON es almacenado en Cloud Firestore, así como también se va guardando cada uno de los estados por el cual va pasando el archivo, como metadatos generados por el proceso. Así, es posible tener a la mano la información asociada al flujo de los datos que se transfieren durante el proceso.

Se envía un mensaje al usuario/data center on premise cuando el proceso de copia se ha realizado satisfactoriamente, vía Cloud Pub/Sub en el tópico Cloud_Copy. Stackdriver nos permite monitorear los logs de la Cloud Function del proceso de carga.

Después de la cargar los datos, se gatilla automáticamente el proceso de exportar datos a IBM a través de cloud functions o el reinicio del proceso de carga si se detecta alguna anomalía. El disparador para esta función es un mensaje de Pub/Sub que indica cuando la copia al bucket RAW finalizó satisfactoriamente o por el contrario se debe reprocesar la carga del archivo desde RAW.

El proceso de la transferencia de los archivos a cloud de IBM es a través de kubernets, el cual está implementado vía la herramienta Rclone. La idea de usar Kubernetes es poder implementar en una segunda fase, los procesos de data analytics que se corren en IBM cloud, dentro de GCP.

Las preocupaciones de seguridad y privacidad son primordiales cuando se trata de información sensible. Por tal motivo, WOM utilizó su propio protocolo de encriptación de archivos, los cuales solo podían ser abiertos por los trabajadores de la empresa.

Gracias a Container Registry, se gestionaron las imágenes Docker, permisos. Principalmente, se aprovechó su capacidad disponible de integración y entrega continua (CI/CD) para configurar flujos de procesamiento de Docker totalmente automáticos y obtener información rápidamente.

Se utilizó Cloud Source Repository, para almacenar todos los scripts y códigos desarrollados, cumpliendo así con las buenas prácticas de GCP.

En resumen, la plataforma fue diseñada usando los siguientes componentes de GCP:

  • Cloud Functions
  • Cloud Storage
  • Cloud Firestore
  • Cloud Pub/Sub
  • Container Registry
  • Cloud Source Repository
  • Cloud Kubernetes

Resultados

Para WOM, el principal beneficio de utilizar GCP es la posibilidad de poder utilizar una plataforma sin servidores, robusta, confiable, de alta disponibilidad y escalable, eliminando posibles sobrecargas operativas, donde la seguridad y el monitoreo se controlan automáticamente, con la esperanza de iniciar un proceso de migración total a mediano plazo.

Adicionalmente, los costos asociados a tener un data lake de altísimo rendimiento, como el que ofrece GCP son ligeramente inferiores, ganando adicionalmente una mejor gestión y administración de los datos, gracias a la amigable consola de GCP.

El uso de Cloud Storage y Kubernetes particularmente habilitó a los desarrolladores de WOW a iniciar su proceso de emigración de forma suave y controlable, sin interrupción en el procesamiento de datos vía la carga a la nube de IBM y el uso de herramientas propias de IBM cloud.