Logotipo de Zephyrnet

Cómo GoDaddy creó una malla de datos para descentralizar la propiedad de los datos mediante AWS Lake Formation

Fecha:

Esta es una publicación de invitado coescrita con Ankit Jhalaria de GoDaddy.

Ve papi está empoderando a los empresarios cotidianos al brindarles toda la ayuda y las herramientas para tener éxito en línea. Con más de 20 millones de clientes en todo el mundo, GoDaddy es el lugar al que acude la gente para nombrar su idea, crear un sitio web profesional, atraer clientes y gestionar su trabajo.

GoDaddy es una empresa basada en datos, y obtener información significativa de los datos les ayuda a tomar decisiones comerciales para deleitar a sus clientes. En 2018, GoDaddy comenzó una gran renovación de la infraestructura y se asoció con AWS para innovar más rápido que nunca y satisfacer las necesidades del crecimiento de sus clientes en todo el mundo. Como parte de esta renovación, el equipo de la plataforma de datos de GoDaddy quería preparar a la empresa para el éxito a largo plazo mediante la creación de una estrategia de datos bien definida y el establecimiento de objetivos para descentralizar la propiedad y el procesamiento de los datos.

En esta publicación, discutimos cómo GoDaddy usa Formación del lago AWS para simplificar la gestión de seguridad y el gobierno de datos a escala, y habilitar los datos como servicio (DaaS) que respaldan la accesibilidad de datos en toda la organización con el intercambio de datos entre cuentas utilizando una arquitectura de malla de datos.

El desafío

En el vasto océano de datos, obtener información útil es un arte. Antes de la asociación con AWS, GoDaddy tenía un clúster de Hadoop compartido en las instalaciones que varios equipos usaban para crear y compartir conjuntos de datos con otros analistas para la colaboración. A medida que crecían los equipos, las copias de datos comenzaron a crecer en el sistema de archivos distribuidos de Hadoop (HDFS). Varios equipos comenzaron a crear herramientas para gestionar este desafío de forma independiente, duplicando esfuerzos. Administrar permisos en estos activos de datos se volvió más difícil. Hacer que los datos sean detectables en un número creciente de catálogos y sistemas de datos es algo que había comenzado a convertirse en un gran desafío. Aunque el costo de almacenamiento en estos días es relativamente económico, cuando hay varias copias del mismo activo de datos disponibles, se hace más difícil para los analistas utilizar de manera eficiente y confiable los datos disponibles para ellos. Los analistas de negocios necesitan canalizaciones sólidas en conjuntos de datos clave en los que se basan para tomar decisiones comerciales.

Resumen de la solución

En el modelo de centro y radio de malla de datos de GoDaddy, un catálogo de datos central contiene información sobre todos los productos de datos que existen en la empresa. En la terminología de AWS, este es el Catálogo de datos de AWS Glue. El equipo de la plataforma de datos proporciona API, SDK y operadores de flujo de aire como componentes que los diferentes equipos usan para interactuar con el catálogo. Las actividades como la actualización del metastore para reflejar una nueva partición para un producto de datos determinado y, ocasionalmente, la ejecución de operaciones de reparación de MSCK, se manejan en la cuenta de gobierno central, y Lake Formation se usa para asegurar el acceso al catálogo de datos.

El equipo de la plataforma de datos introdujo una capa de gobierno de datos que garantiza que se sigan las mejores prácticas para crear productos de datos en toda la empresa. Proporcionamos las herramientas para apoyar a los ingenieros de datos y analistas de negocios mientras dejamos que los expertos del dominio ejecuten sus canalizaciones de datos. Con este enfoque, tenemos productos de datos bien seleccionados que son intuitivos y fáciles de entender para nuestros analistas comerciales.

Un producto de datos se refiere a una entidad que impulsa los conocimientos con fines analíticos. En términos simples, esto podría referirse a un conjunto de datos real que apunta a una ubicación en Servicio de almacenamiento simple de Amazon (Amazon S3). Los productores de datos son responsables del procesamiento de datos y de la creación de nuevas instantáneas o particiones según las necesidades comerciales. En algunos casos, los datos se actualizan cada 24 horas y, en otros casos, cada hora. Los consumidores de datos acuden a la malla de datos para consumir datos y los permisos se administran en la cuenta de gobierno central a través de Lake Formation. Usos de la formación del lago Administrador de acceso a recursos de AWS (AWS RAM) para enviar recursos compartidos a diferentes cuentas de consumidores para poder acceder a los datos de la cuenta de gobierno central. Entramos en detalles sobre esta funcionalidad más adelante en la publicación.

El siguiente diagrama ilustra la arquitectura de la solución.

Arquitectura de la solución ilustrada

Definición de metadatos con el repositorio central de esquemas

Los datos solo son útiles si los usuarios finales pueden obtener información significativa de ellos; de lo contrario, es solo ruido. Como parte de la incorporación a la plataforma de datos, un productor de datos registra su esquema con la plataforma de datos junto con los metadatos relevantes. Esto es revisado por el equipo de gobierno de datos que garantiza que se sigan las mejores prácticas para crear conjuntos de datos. Hemos automatizado algunos de los elementos de revisión de gobierno de datos más comunes. Este es también el lugar donde los productores definen un contrato sobre entregas de datos confiables, a menudo denominado Objetivo de nivel de servicio (SLO). Una vez que se establece un contrato, los procesos en segundo plano del equipo de la plataforma de datos supervisan y envían alertas cuando los productores de datos no cumplen con su contrato o SLO.

Al administrar los permisos con Lake Formation, registra la ubicación de Amazon S3 de diferentes depósitos de S3. Lake Formation utiliza AWS RAM para compartir el recurso nombrado.

Al administrar recursos con AWS RAM, la cuenta de gobierno central crea recursos compartidos de AWS RAM. La plataforma de datos proporciona una Catálogo de servicios de AWS producto para aceptar recursos compartidos de RAM de AWS en cuentas de consumidores.

Tener esquemas consistentes con nombres y descripciones significativos facilita el descubrimiento de conjuntos de datos. Todo productor de datos que sea un experto en el dominio es responsable de crear esquemas bien definidos que los usuarios comerciales utilicen para generar conocimientos para tomar decisiones comerciales clave. Los productores de datos registran sus esquemas junto con metadatos adicionales en el repositorio del lago de datos. Los metadatos incluyen información sobre el equipo responsable del conjunto de datos, como su contrato SLO, descripción e información de contacto. Esta información se registra en un repositorio de Git donde la automatización se activa y valida la solicitud para garantizar que cumpla con los estándares y las mejores prácticas. Usamos Formación en la nube de AWS plantillas para aprovisionar recursos. El siguiente código es una muestra de cómo se ven los metadatos de registro.

Código de muestra de cómo se ven los metadatos de registro

Como parte del proceso de registro, los pasos de automatización se ejecutan en segundo plano para encargarse de lo siguiente en nombre del productor de datos:

  • Registre la ubicación de Amazon S3 del productor de los datos con Lake Formation – Esto nos permite usar Lake Formation para un acceso detallado para controlar la tabla en AWS Glue Data Catalog que hace referencia a esta ubicación, así como a los datos subyacentes.
  • Cree la base de datos y la tabla subyacentes de AWS Glue – Según el esquema especificado por el productor de datos junto con los metadatos, creamos la base de datos y la tabla subyacentes de AWS Glue en la cuenta de gobierno central. Como parte de esto, también utilizamos las propiedades de la tabla de AWS Glue para almacenar metadatos adicionales para su posterior análisis.
  • Definir el contrato SLO – Cualquier conjunto de datos críticos para el negocio debe tener un contrato de SLO bien definido. Como parte del registro del conjunto de datos, el productor de datos define un contrato con una expresión cron que la plataforma de datos utiliza para crear una regla de evento en Puente de eventos de Amazon. Esta regla desencadena una AWS Lambda función para vigilar las entregas de los datos y activa una alerta al canal de Slack del productor de datos si incumple el contrato.

Consumo de datos del catálogo de malla de datos

Cuando un consumidor de datos que pertenece a una determinada línea de negocio (LOB) identifica el producto de datos que le interesa, envía una solicitud al equipo de gobierno central que contiene su ID de cuenta de AWS que utiliza para consultar los datos. La plataforma de datos proporciona un portal para descubrir conjuntos de datos en toda la empresa. Una vez que se aprueba la solicitud, se ejecuta la automatización para crear un recurso compartido de RAM de AWS con la cuenta del consumidor que cubre la base de datos y las tablas de AWS Glue asignadas al producto de datos registrado en el catálogo de datos de AWS Glue de la cuenta de gobierno central.

La siguiente captura de pantalla muestra un ejemplo de recurso compartido.

Ejemplo de recurso compartido

El administrador del lago de datos del consumidor debe aceptar el recurso compartido de RAM de AWS y crear un enlace de recursos en Lake Formation para comenzar a consultar el conjunto de datos compartido dentro de su cuenta. Automatizamos este proceso mediante la creación de un producto de AWS Service Catalog que se ejecuta en la cuenta del consumidor como una función de Lambda que acepta recursos compartidos en nombre de los consumidores.

Cuando los conjuntos de datos vinculados a recursos están disponibles en la cuenta del consumidor, el administrador del lago de datos del consumidor otorga concesiones a los usuarios de IAM y asigna roles a los consumidores de datos dentro de la cuenta. Estos consumidores (aplicación o persona de usuario) ahora pueden consultar los conjuntos de datos utilizando los servicios de análisis de AWS de su elección, como Atenea amazónica y EMR de Amazon en función de los privilegios de acceso otorgados por el administrador del lago de datos del consumidor.

Operaciones y métricas del día a día

Administrar permisos usando Lake Formation es una parte del ecosistema general. Una vez que se otorgan los permisos, los productores de datos crean nuevas instantáneas de los datos con una determinada cadencia que puede variar desde cada 15 minutos hasta un día. Los productores de datos están integrados con las API de la plataforma de datos que informan a la plataforma sobre cualquier nueva actualización de los datos. La plataforma de datos escribe automáticamente un byte 0 _SUCCESS archivo para cada conjunto de datos que se actualiza, y notifica a la cuenta del consumidor suscrito a través de un Servicio de notificación simple de Amazon (Amazon SNS) en la cuenta de gobierno central. Los consumidores usan esto como una señal para activar sus canalizaciones y procesos de datos para comenzar a procesar una versión más nueva de los datos utilizando un enfoque basado en eventos.

Hay más de 2,000 productos de datos integrados en la malla de datos de GoDaddy en AWS. Todos los días, hay miles de actualizaciones en el metastore de AWS Glue en la cuenta central de gobierno de datos. Hay cientos de productores de datos que generan datos cada hora en una amplia gama de depósitos de S3 y miles de consumidores de datos que consumen datos a través de una amplia gama de herramientas, incluidas Athena, Amazon EMR y Tableau desde diferentes cuentas de AWS.

resultados comerciales

Con el cambio a AWS, el equipo de plataforma de datos de GoDaddy sentó las bases para construir una plataforma de datos moderna que ha aumentado nuestra velocidad de creación de productos de datos y deleitado a nuestros clientes. La plataforma de datos ha pasado con éxito de una plataforma monolítica a un modelo donde la propiedad de los datos se ha descentralizado. Aceleramos la adopción de la plataforma de datos a más de 10 líneas de negocios y más de 300 equipos en todo el mundo, y estamos administrando con éxito varios petabytes de datos distribuidos en cientos de cuentas para ayudar a nuestro negocio a obtener información más rápidamente.

Conclusión

La arquitectura de malla de datos central y radial de GoDaddy creada con Lake Formation simplifica la gestión de seguridad y el control de datos a escala, para ofrecer datos como un servicio que respalda la accesibilidad de datos en toda la empresa. Nuestra malla de datos administra múltiples petabytes de datos en cientos de cuentas, lo que permite la propiedad descentralizada de conjuntos de datos bien definidos con automatización, lo que ayuda a la empresa a descubrir activos de datos más rápido y obtener información comercial más rápido.

Esta publicación ilustra el uso de Lake Formation para construir una arquitectura de malla de datos que habilita un modelo DaaS para una plataforma de datos empresarial modernizada. Para más información, ver Diseñe una arquitectura de malla de datos con AWS Lake Formation y AWS Glue.


Acerca de los autores

Ankit Jalaria es el director de ingeniería en la plataforma de datos de GoDaddy. Tiene más de 10 años de experiencia trabajando en tecnologías de big data. Fuera del trabajo, a Ankit le encanta hacer caminatas, jugar juegos de mesa, crear proyectos de IoT y contribuir a proyectos de código abierto.

Harsh Vardhan es un arquitecto de soluciones de AWS, especializado en análisis. Tiene más de 6 años de experiencia trabajando en el campo de big data y ciencia de datos. Le apasiona ayudar a los clientes a adoptar las mejores prácticas y descubrir información a partir de sus datos.

Kyle Tedeschi es Arquitecto Principal de Soluciones en AWS. Disfruta ayudar a los clientes a innovar, transformar y convertirse en líderes en sus respectivos dominios. Fuera del trabajo, Kyle es un ávido snowboarder, entusiasta de los autos y viajero.

punto_img

Información más reciente

punto_img