26
Construyendo una infraestructura de Big Data rentable y escalable Gustavo Arjones [email protected] @arjones Juan Pampliega [email protected] @juanpampliega

Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Embed Size (px)

DESCRIPTION

Socialmetrix lleva 6 años desarrollando soluciones para capturar, limpiar, organizar, procesar, almacenar y presentar información. Los desafíos involucraron siempre seguir escalando en volumen de procesamiento y las funcionalidades a nuestros clientes. Estas directivas nos llevaron hacia una búsqueda de soluciones innovadoras y tecnologías que nos permitan competir en un mercado global manteniendo la inversión y los costos bajo control. Esta charla presenta las técnicas y tecnologías involucradas en el desarrollo de nuestros productos junto con los errores que cometimos y lecciones que aprendimos durante el desarrollo.

Citation preview

Page 1: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Construyendo una infraestructura de Big Data rentable y escalable

Gustavo [email protected]@arjones

Juan [email protected]@juanpampliega

Page 2: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Co-founder & CTO, Socialmetrix

Lic. Ciencias ComputaciónMBA Marketing Servicios

@[email protected]

Brasileño, en Argentina desde 2008

Gustavo Arjones

Big Data Developer, Socialmetrix

Ing. Informática ITBA

@[email protected]

Juan Pampliega

Page 3: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

• Sobre Socialmetrix

• Nuestra arquitectura

• Conceptos importantes

• Lecciones aprendidas

• Dónde aprender más

Agenda

Page 4: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Socialmetrix

Medimos la actividad de las compañías

y personalidades en las redes sociales

para generar valor a profesionales de

Marketing, Investigación de Mercado y

Producto.

Software As A Service

Page 5: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)
Page 6: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

En números• Capturando +5MM de fanpages de Facebook, cuentas de Twitter,

blogs, sites, etc

• Se generan +1.000 MM de interacciones en un mes

• Capturamos +1.000 Gb por mes de nuevos datos, los antiguos no se borran

• 200+ servidores, + databases, +ambientes de prueba/staging

Page 7: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Nuestra arquitectura

Page 8: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Big Data – el nuevo, nuevo paradigma

Volumen + Velocidad + Variedad

Nuevas Tecnologías (Kafka + Spark + Cassandra)

Procesamiento de DatosDistribuido y Escalable

Page 9: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Conceptos del nuevo paradigma

Un único repositorio de datos, append only.

query = function(all data)

Simple de razonarVerdad en un momento dado

Siempre puede ser “re-computado”Permite evolución

Page 10: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Arquitectura Lambda

Tiempo promedio de respuesta?

Número de Tweets por Segundo?

Page 11: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Arquitectura Lambda• Crear un sistema tolerante a fallos tanto de hardware como los

humanos

• Permitir lecturas y escrituras de baja latencia

• Escalabilidad lineal horizontal

• Facilidad de re-procesos

• Permitir la investigación interactiva de los datos

Page 12: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Arquitectura Lambda (críticas)Muchos esfuerzos duplicados (Realtime + Batch Processing)

• Duplicación de Lógica

• Duplicación de Know-how & Esfuerzo

• Asume que el procesamiento RT no es confiable

http://radar.oreilly.com/2014/07/questioning-the-lambda-architecture.html

Page 13: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Evolución de Plataforma

S3

Data Stream

Page 14: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Evolución de Plataforma

S3

Data Stream

Page 15: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Otros desafíos

• Información llega fuera de orden (no es time-ordered)

• Duplicados es una realidad

• Encoding de la fuente no siempre está bien configurado

• API rate-limit

Page 16: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Lecciones Aprendidas

Page 17: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Evolución de tecnologías

Page 18: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Depuración de la plataforma

Page 19: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Los errores

• Falta de foco, demasiadas tecnologías (hay mucho buzz)

• No empezar sin una investigación exhaustiva (alguien lo hizo

antes!)

• No cambiar/procesar los datos antes de guardar (guardar raw

data)

• No automatizar desde el principio

Page 20: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Los aciertos

• División/especialización de profesionales• Crawling, Natural Language Processing, Big Data, API, Visualización

• Aprendimos de Open Source (leer código, mejores practicas)

• Automación de tareas operacionales(ie: Puppet, CloudFormation)

• Crear un ambiente rico para experimentación

• Separación de responsabilidades con un único objetivo

• Reducir el stack de tecnologías

Page 21: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Buscar el conocimiento formal (papers y libros)

• Crawlers

• Text-mining

• Disambiguation

• Sentiment Analysis

• Message Oriented Platform

Page 22: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Recomendaciones• Utilizar Amazon AWS hace que muchas ideas se puedan probar

inmediatamente – hay scripts y “AMI” pre-armadas

• Hacer pruebas con Spot Instances vs. Instancias más grandes

• Automatizar los procesos desde el día 1 (Puppet,

CloudFormation)

• Virtualización, incluso en Dev: Vagrant, Docker, CoreOS

Page 23: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Recomendaciones

• Testing, testing, testing

• Usar datasets medianos en Dev y grandes en Staging

• Monitorear los procesos, aprender los patrones de los datos

Page 24: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Dónde aprender más

Page 25: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Mucha documentación disponibleLamda Architecturehttp://lambda-architecture.net/

Getting Started with Big Data Architecturehttp://blog.cloudera.com/blog/2014/09/getting-started-with-big-data-architecture/

Your weekly Hadoop news fixhttp://www.hadoopweekly.com/ The Hortonworks Bloghttp://hortonworks.com/blog/

Applying the Lambda Architecture with Spark - Jim Scotthttp://spark-summit.org/2014/talk/applying-the-lambda-architecture-with-spark

Cloudera Engineering Bloghttp://blog.cloudera.com/blog/ Listado de herramientas de Big Data y papers relevanteshttp://blog.andreamostosi.name/big-data/

Page 26: Construyendo una Infraestructura de Big Data rentable y escalable (la evolución de nuestra plataforma)

Obrigado & Gracias!

Gustavo & Juan

[email protected]