Presentación Unholster

Page 1

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.