Estrategia, DiseĂąo, Desarrollo, Despliegue y MantenciĂłn
Intro & Experiencia en BigData
AGENDA
Quiénes Somos • Nuestros Servicios • Áreas de Expertise • Clientes • Nuestro Aporte
www.unholster.com
Experiencia Relevante
Casos
Big Data & Optimización• Integración Continua•
• Source of Traffic • Bid Optimization
QUIÉNES SOMOS
¿QUIÉNES SOMOS? • Fundada: 2008 • Profesionales del desarrollo de software, rediseño de procesos, optimización y análisis de datos con más 15 años de experiencia • En Latam • En EEUU y Europa
www.unholster.com
FOCO: • Enfrentar problemas de negocios con soluciones multidisciplinarias y de alta calidad • Contratar/Retener/Motivar a los mejores profesionales • Establecer relaciones de largo plazo en función de proyectos exitosos • Cumpliendo objetivos, tiempos, niveles de calidad y presupuestos
NUESTROS SERVICIOS
www.unholster.com
Estrategia – Donde ayudamos a nuestros clientes a responder la pregunta: ¿Qué es lo que debería construir?
Diseño – Creamos aplicaciones creativas que resuelven los problemas negocios sin dejar de lado la experiencia de usuario
Desarrollo – Creamos código a prueba de bala, que opera bien, es seguro y corre en múltiples plataformas
Despliegue – Llevamos sus aplicaciones a sus clientes sin contratiempos
Mantención – Actualizamos/Soportamos/Operamos su producto para mantenerlo en el mejor estado de operación posible a través de contratos por bloques de tiempo o personal dedicado
ÁREAS DE EXPERTISE
Recolección de datos
— Streaming de datos — Captura distribuida de datos (scraping) — Cargas masivas — Control de calidad
Procesamiento de datos — Alto rendimiento — Volúmenes masivos — Alta precisión — Control de calidad
Datamarts — ETL automatizada — Auditabilidad de datos — Agregación y reportes
Cloud Computing — Escalamiento por demanda — Aprovisionamiento automatizado — Cloud Públicos (Amazon, Azure) — Cloud Privados
www.unholster.com
Optimización
— Modelamiento — Ciclo de vida de los modelos — Benchmarking — Automatización de procesos — Auditabilidad de experimentos
BI/Visualización/Dashboards — Aplicaciones web — Aplicaciones móviles — Data Sciences
IOT — ibeacons — Hardware & Software propietario — Plc
Consultoría — Gestión — Procesos — Análisis — Desarrollo — QA
NUESTRO APORTE
www.unholster.com
Visión de Nuestros Productos – Creemos que con nuestra experiencia y el conocimiento de nuestros clientes de su negocio, somos capaces de crear software que transforme la forma en la que hacen su trabajo. – Nos involucramos en encontrar la mejor solución y que la solución sea exitosa
Agnósticos Tecnología – En general trabajamos con las tecnologías y arquitecturas que tengan nuestros clientes – Recomendamos alguna tecnología cuando vemos posibilidades reales de mejora
Metodología de Desarrollo – Hemos realizado proyectos con distintas metodologías conocidas (Cascada…Ágiles) – Creemos que todos los proyectos necesitan una – La elección de una, pasa por un proceso de diálogo con el cliente
Entregabl – No buscamos ”lock-in” – No buscamos relaciones con nuestros clientes en base a soporte, sino que en base a la calidad de lo que entregamos
NUESTROS CLIENTES
www.unholster.com
Experiencias Relevantes: Big Data & Optimizaciรณn
SOURCE OF TRAFFIC
www.unholster.com
2008-2013
EL CLIENTE: • Grupo SEO de Yahoo!, cuyo objetivo es atraer tráfico valioso a propiedades de Y! a través de relaciones estratégicas con sitios web de alto tráfico. • Se necesita procesar weblogs y entender métricas claves de tráfico y sesiones.
EL PROYECTO:
ASPECTOS TÉCNICOS
• Pipeline para publicar métricas extraídas de logs en la plataforma interna de reportes (Digits)
• Extracción y procesamiento de métricas desde archivos de log usando Hadoop cluster (4TB/hora)
• Se requieren métricas complejas (session-based, stateful, nonadditive)
• Manejo refinado de zona horaria
• Metodología SCRUM con equipos en EEUU (oeste), Bangalore, Japón, Chile
• Ingeniería de performance fue clave (ventana de procesamiento de 3 horas con recursos de computación limitados) • Perl, Java, PIG
RMC
www.unholster.com
2013-2015
EL CLIENTE: • JRI, compañía chilena de ingeniería, reconocida en el mercado nacional.
EL PROYECTO:
ASPECTOS TÉCNICOS
• Modelamiento en tiempo real de atributos físicos de sludge de cobre.
• Django 1.5 / Python 2.7
• Control de procesos, monitoreo, visualización y captura de datos vía web.
• Interfaz con software PLC usando Modbus
• Equipo en Chile y EEUU.
• Front-end usando D3.js
• TDD y CI (Jenkins) • Github, Pivotaltracker
BID OPT
www.unholster.com
2007-2013
EL CLIENTE: • Grupo Search Marketing de Yahoo! cuyo objetivo es atraer tráfico valioso a sitios de Y! mediante la colocación estratégica de avisos en motores de búsqueda • Mediciones de desempeño y toma de decisiones en base a datos.
EL PROYECTO:
ASPECTOS TÉCNICOS
• Datamart capaz de entregar métricas SEM recientes diariamente sobre 145 millones de keywords
• Uso de alto rendimiento de Google Adwords API, Bing AdCenter API y YSM API (2-6M ops por día en ventana de 4-8 horas)
• Automatización de operaciones claves de marketing (colocación de avisos) por un presupuesto de $45 millones/año
• Datamart de 6-8TB en Oracle 10g
• Optimización de decisions de marketing (selección de keywords y bids)
• Chequeos y alertas automatizados de throughput y salud
• Equipo en Chile, India y multiples localidades en EEUU
• Extracción desde logs usando Hadoop cluster (2TB/día)
• Procesos personalizados de ETL y agregación
• Perl, PL/SQL, Java, PIG
APP MALLAS RELACIONES
www.unholster.com
2016
EL CLIENTE: • Servicio de Impuestos Internos de Chile necesita consultar y visualizar mallas de relación de gran tamaño de forma exploratoria y operacionalizada • Contexto de una prueba de concepto, tiempos y recursos limitados en extremo
EL PROYECTO:
ASPECTOS TÉCNICOS
• Levantamiento de BBDD de grafos
• Uso de Neo4j versión Open Source
• Poblamiento de BBDD de grafos desde Hadoop
• Pre procesamiento y carga de datos usando Pig (Hadoop)
• Diseño de interfaz de visualización/ exploración
• Visualización usando AngularJS y D3.js
• Consultas de grafos guardables, parametrizables y auditables
• Almacenamiento y auditoría de consultas mediante aplicación Django
SOT SOURCE OF TRAFFIC & SESSION TRACKING FOR YAHOO NETWORK
YAHOO! – SOT
www.unholster.com
Objetivos: • Crear una plataforma que permita hacer todo tipo de operaciones de Performance Marketing para aumentar ingresos y margen a Yahoo! • Aumentar la granularidad de la información disponible para operaciones de Performance Marketing en los canales de Email, Display Ads y SEM (Search Engine Marketing) – País de origen – Tipo de sitio (buscador, red social) – Idioma del sitio – Palabras claves asociadas – Ingresos por click a nivel de evento
• Disponibilizar información en 4 horas para todas las propiedades de Yahoo! en todos los países del mundo para operaciones de Performance Marketing • Plataforma agnóstica a que herramientas/modelos usa para optimizar • Optimizar millones de palabras claves en forma diaria, en los buscadores de Google, Yahoo & Bing • Reaccionar rápidamente a cambios en el mercado, sean estos por estacionalidades o por necesidades de cambio en las funciones de optimización por parte del negocio.
YAHOO! – SOT
www.unholster.com
Casos de Uso a Soportar: • Disponibilidad de Datos: Disminuir la latencia de datos para campañas de Performance Marketing y Optimización de 3 días a 4 horas.
• Optimización de Campañas de SEM: Gestionar el 90% del gasto y el 80% de las palabras claves en forma automatizada con algoritmos de optimización que cubran los distintos escenarios buscados por la compañía en cada momento. Incluyendo ciclo de vida de modelos, ciclo de vida de palabras claves y mecanismos de excepción.
• Atribución de Costos: Poder atribuir costos de captura y distribución de usuarios hacia Yahoo! y luego dentro del portal.
YAHOO! – SOT
www.unholster.com
Descripción del Tráfico de Yahoo! • Yahoo! recibe una cantidad enorme de tráfico web: – ~600 millones de visitas al día – ~20,000 millones de eventos • Los encargados de las distintas áreas de contenido quieren entender de dónde viene el tráfico que reciben y a dónde va ese tráfico al terminar su sesión • Se quiere categorizar las fuentes de tráfico según: – País de origen – Tipo de sitio (buscador, red social) – Idioma del sitio – Palabras claves asociadas
YAHOO! – SOT
www.unholster.com
Tráfico
•
Fuente: – – – –
Canal : Motores de búsqueda Sitio: Google País: Chile Lenguaje: Inglés
•
Tráfico: – – –
+1 visita Y! Network (site) +1 visita Y! News (property) +1 visita Y! News Frontpage (page)
YAHOO! – SOT
www.unholster.com
Tráfico
•
Fuente: – Canal : Yahoo! Sites – Sitio: Yahoo! News – País: Mundial – Lenguaje: Inglés
•
Trafico: – +1 click Y! News (navlink) – +0 visitas Y! Network (site) – +1 visita Y! Mail (property) – +1 visita Y! Mail Login (page)
YAHOO! – SOT
www.unholster.com
Tráfico
•
Fuente: – Canal : Yahoo! Sites – Sitio: Yahoo! Mail – País: Mundial – Lenguaje: Inglés
•
Trafico: – +1 click Y! Mail (non navlink) – +0 visitas Y! Network (site) – +0 visitas Y! Mail (property) – +0 visitas Y! Mail Login (page)
YAHOO! – SOT
www.unholster.com
Requerimientos
•
Generales – Identificar los sitios y palabras claves que contribuyen tráfico a Y! – Identificar los sitios a los cuales Y! contribuye tráfico y palabras claves asociadas – Entregar métricas de visitas, vistas y actividad – Agrupación de datos basada en horas locales – Proveer un datamart con información agregada para los analistas
•
Fuentes de datos – Logs de servidores web de Y! – Metadatos de la estructura interna de los sitios de Y! – Metadatos de sitios externos relevantes
•
Restricciones – Latencia máxima de procesamiento 5 horas – Grid compartido – 600 workers de 1 core y 1 GB RAM
YAHOO! – SOT
www.unholster.com
Problemas
• Hadoop • Pig • Java • Perl • Oracle
YAHOO! – SOT
www.unholster.com
Volúmen de datos
• Logs de servidor web 80 – 250 GB/hora • Metadatos 18 GB/diarios • Al incluir metadatos información aumenta x16
YAHOO! – SOT
www.unholster.com
Volúmen de datos
•
Solución – Particionamiento y reducción de metadatos para aprovechar cruces en memoria. – Estrategia de asignación de recursos no-homogénea en base a perfilamiento de procesos. – Agregación incremental a nivel semanal y mensual. – Análisis y aproximación de métricas más costosas. – Diseño de agregaciones horarias intermedias para minimizar tamaño de datos de trabajo. – Política agresiva de retención de datos con podado automático
YAHOO! – SOT
www.unholster.com
Manejo de sesiones
• Rastrear sesiones de usuarios a distintos niveles de granularidad • Duración de sesiones altamente variable • Atribuciones se realizan al iniciar y expirar una sesión
YAHOO! – SOT
www.unholster.com
Manejo de sesiones
• Solución – Desarrollo de un UDF (User Defined Function) que mantiene un estado lightweight de cada sesión. – Persistencia de los estados de sesión a nivel de horas. – Reglas de expiración de sesiones por duración.
YAHOO! – SOT
www.unholster.com
Cruce de datos
• Lógica de intersección entre logs y metadatos desconocida a priori • Atributos relevantes no estructurados – Palabras claves dentro de URLs – Contexto de clicks/pageviews dentro de sesión
YAHOO! – SOT
www.unholster.com
Cruce de datos
• Solución – Extracción de atributos de URL en base a regex – Lógica de cruce entre logs y metadatos – Lógica de clasificación de eventos
YAHOO! – SOT
www.unholster.com
Manejo de recursos • Límites estrictos de recursos • Pig solo provee control básico de recursos • Memoria restringida en cada worker (1GB) • Exceder recursos tiene consecuencias desastrosas – Cargos al proyecto por “sobreconsumo” – Atrasos por caídas de procesos
YAHOO! – SOT
www.unholster.com
Manejo de recursos • Solución – Perfilamiento de uso de recursos – Particionamiento de procesos – Asignación independiente de recursos por subproceso – Configuraciones pregeneradas para escenarios especiales
YAHOO! – SOT
www.unholster.com
Sincronización de eventos
• Sesiones construidas a partir de eventos ordenados en hora universal • Métricas calculadas según hora local – 13:00 CLT en Santiago se agrega con 16:00 CLT en San Francisco (Ambos 13:00 local) • Sesiones pueden tener eventos en distintas zonas horarias • Países/propiedades pueden cambiar de zona horaria
YAHOO! – SOT
www.unholster.com
Sincronización de eventos • Solución – Particionamiento del pipeline de datos • Local: ejecutado ASAP • Sincronizado: ejecutado cuando todas las horas relevantes están disponibles – Estado de las sesiones en base a horas UTC – Mapeo configurable de zonas horarias
YAHOO! – SOT
www.unholster.com
Resultados
Before
3 dias latencia Visión a nivel de Propiedad Referencias de tráfico a nivel de dominio
After
3 hr latencia Visión a nivel de Pagina Referencia el 99% del tráfico a nivel de subdominio
YAHOO! BidOpt ONLINE BID OPTIMIZATION FOR SEARCH ENGINE MARKETING
YAHOO! – BID OPT
www.unholster.com
Problema
Objetivos: •
Crear una plataforma que permita hacer todo tipo de operaciones de Performance Marketing para aumentar ingresos y margen a Yahoo!
•
Plataforma agnóstica a que herramientas/modelos usa para optimizar
•
Optimizar millones de palabras claves en forma diaria, en los buscadores de Google, Yahoo & Bing
•
Reaccionar rápidamente a cambios en el mercado, sean estos por estacionalidades o por necesidades de cambio en las funciones de optimización por parte del negocio.
YAHOO! – BID OPT
www.unholster.com
Problema
• Search Engine Marketing (SEM) – Campañas avisos en motores de búsqueda
• Basado en clicks – Paga por cada click un monto variable Subasta en cada página de resultados – Posición en resultados variable +$$ = mejor posición – Clicks monetizables % de conversión por cada click
YAHOO! – BID OPT
www.unholster.com
Problema
• Portfolios masivos Originalmentem +2MM de keywords donde apostar • Una regla para todos los keywords • Manipulación manual de disposiciones a pagar y tareas – Errores frecuentes y costosos • Pruebas y pilotos demostraban claramente que resultados mejoraban dramaticamente al afinar individualmente el costo de cada click • Variedad de Objetivos dependiendo de la estacionalidad – Maximizar gasto en avisaje con una tasa de conversión mínima – Maximizar tráfico con un presupuesto restringido – Maximizar conversión con un gasto mínimo y máximo
YAHOO! – BID OPT
www.unholster.com
Problema
• Plataforma de optimización de campañas SEM (Search Engine Marketing)
• Optimización online – Integrado a proceso de gestión de campañas – Frecuencia configurable (de días a minutos) – Múltiples modelos priorizables – Auditable – Escalable
YAHOO! – BID OPT
www.unholster.com
Solución Captura y control de calidad Cascada configurable de modelos
Historial datos recolectados
Historial de inputs
Historial de outputs
Feedback de la op8mización
YAHOO! – BID OPT
www.unholster.com
Solución
• Escalable horizontalmente – Procesos desacoplados (RabbitMQ) • ETL extensible y eficiente – Python + PostgreSQL – Partition-swapping – Auditoría de datos • Flexible – Modelos configurables por interfaz de usuario • Robusto – Batching/Retrying de operaciones en API Google, Bing, Yahoo!
YAHOO! – BID OPT
www.unholster.com
Solución
Before
12% – 17% rentabilidad 2MM keywords $5MM presupuesto
After x2 – x5 rentabilidad 145MM keywords $45MM presupuesto
CONTACTO
GRACIAS DIRECCIÓN