SlideShare a Scribd company logo
1 of 52
Escalando	
  hasta	
  las	
  10.000	
  
pe1ciones	
  por	
  segundo	
  
Sergio	
  Arroyo	
  Cuevas	
  
sergio.arroyo@taptapnetworks.com	
  
@delr3ves	
  
@TAPTAP_Networks	
  
Proveedor	
  de	
  
campañas	
  
Proveedor	
  de	
  
“escaparates”	
  
inventario	
  
AdServer	
  
Forecas1ng	
  
SSP	
  
AdExchange	
  
Subasta	
  
DSP	
  
Bidder	
  
SDK	
  
1.	
  Dame	
  
anuncios	
  
2.	
  Hay	
  un	
  escaparate	
  
	
  disponible,	
  	
  
¿cuánto	
  me	
  dais?	
  
•  ¿Qué	
  campaña	
  ponemos?	
  
•  ¿Cuánto	
  pagamos	
  por	
  ella?	
  
•  Necesitamos	
  muchísimas	
  pe1ciones	
  
	
  
Problemas	
  
•  Tiempo	
  de	
  respuesta	
  <	
  100ms	
  
•  Siempre	
  hay	
  que	
  dar	
  una	
  respuesta	
  válida	
  
•  Almacenamos	
  todas	
  las	
  pe1ciones	
  
•  No	
  podemos	
  precalcular	
  el	
  resultado	
  
Restricciones	
  
¿CÓMO	
  AFRONTAMOS	
  EL	
  RETO?	
  
Redis	
  
Storm	
  
Hadoop	
  
MongoDB	
  
Amazon	
  S3	
  
Dev Team Bidder
Dev Team Bidder
Round	
  0	
  
DRPCSpout	
  
BidRequest	
  
Crea1vi1es	
   RequestLog	
  
RetrieveCampaignsByGeohash	
  
CampaignCrea1vi1es	
   PacingReached	
   IsAc1ve	
   Scheduling	
   FrequencyCapping	
   BlockedByPublisher	
  
Intersec1on	
  
CalculateWinner	
  
BidResponse	
  
ResultLog	
  
Round	
  0	
  
¡40	
  QPS!	
  
¿Seguro?	
  
KO
Dev Team Bidder
•  Paralelizar	
  Iene	
  un	
  sobre-­‐coste	
  
•  La	
  serialización	
  es	
  cara	
  y	
  aburrida	
  de	
  
programar	
  
•  No	
  sabemos	
  que	
  pasa	
  por	
  dentro	
  
•  “Real1me	
  processing”	
  !=	
  comunicación	
  
sincrona	
  
Lecciones	
  aprendidas	
  
•  Paralelizar	
  1ene	
  un	
  sobre-­‐coste	
  
•  La	
  serialización	
  es	
  cara	
  y	
  aburrida	
  de	
  
programar	
  
	
  
	
  
Round	
  1	
  
DRPCSpout	
  
CojoBolt	
  
RequestLog	
  ResponseLog	
  
¡500	
  QPS!	
  
¿Seguro?	
  
KO
Dev Team Bidder
•  Paralelizar	
  1ene	
  un	
  sobre-­‐coste	
  
•  La	
  serialización	
  es	
  cara	
  y	
  aburrida	
  de	
  
programar	
  
•  No	
  sabemos	
  que	
  pasa	
  por	
  dentro	
  
•  “Real1me	
  processing”	
  !=	
  comunicación	
  
sincrona	
  
•  Redis	
  no	
  nos	
  sirve	
  como	
  Storage	
  principal	
  
Lecciones	
  aprendidas	
  
Round	
  2	
  
Round	
  2	
  
Round	
  2	
  
¡500	
  QPS!	
  
¿Seguro?	
  
KO
Dev Team Bidder
•  Paralelizar	
  1ene	
  un	
  sobre-­‐coste	
  
•  La	
  serialización	
  es	
  cara	
  y	
  aburrida	
  de	
  
programar	
  
•  No	
  sabemos	
  que	
  pasa	
  por	
  dentro	
  
•  “RealIme	
  processing”	
  !=	
  comunicación	
  
sincrona	
  
•  Redis	
  no	
  nos	
  sirve	
  como	
  Storage	
  principal	
  
Lecciones	
  aprendidas	
  
•  Monitorizar	
  es	
  importante	
  para	
  nosotros	
  
Round	
  3	
  
Round	
  3	
  
CORE	
  
PORTS	
  
ADAPTERS	
  
Round	
  3	
  
CORE	
  
STORM	
  
REDIS	
  
Round	
  3	
  
CORE	
  
DROPWIZARD	
  +	
  STORM	
  
MONGO	
  +	
  REDIS	
  
Round	
  3	
  
Cómo	
  conseguimos	
  las	
  métricas?	
  
@Timed(name = "BidRequests")!
public Response bid(...) {!
"//Do your magic here!
}	
  
...!
Histogram validFoundCampaigns = Metrics.newHistogram("FoundCampaigns");!
validFoundCampaigns.update(filteredCampaigns.size());!
...!
Métricas	
  siempre	
  visibles	
  
Enviando	
  métricas	
  a	
  Graphite	
  
public static void configureMetricsReporter(!
" "GraphiteConfiguration graphiteConfiguration) {!
"if (graphiteConfiguration != null && graphiteConfig.isEnabled()) {!
GraphiteReporter.enable( !
" " " "graphiteConfig.getGraphiteSendMetricsPeriodInSeconds(),
" " " "TimeUnit.SECONDS,!
" " " "graphiteConfig.getGraphiteHost(),!
graphiteConfig.getGraphitePort(), "!
" " " "graphiteConfig.getGraphiteMetricsId());!
"}!
}	
  
¡3500	
  QPS!	
  
¡¡Seguro!!	
  
KO
Dev Team Bidder
Round	
  5	
  
Round	
  5	
  
¡10000	
  QPS!	
  
KO
Dev Team Bidder
•  En	
  cuanto	
  solucionas	
  un	
  cuello	
  de	
  botella	
  
aparecerá	
  el	
  siguiente.	
  
•  Por	
  mucho	
  que	
  lo	
  intentemos	
  tendemos	
  a	
  la	
  
op1mización	
  prematura.	
  
•  La	
  algoritmia	
  no	
  nos	
  ha	
  resuelto	
  el	
  problema.	
  
•  Busca	
  una	
  librería	
  de	
  métricas	
  para	
  tu	
  stack.	
  
•  Un	
  entorno	
  de	
  trabajo	
  higiénico	
  es	
  
imprescindible.	
  
Lecciones	
  aprendidas	
  
Entre	
  175	
  y	
  250	
  GB	
  diarios	
  de	
  datos	
  comprimidos	
  
(1,6TB	
  en	
  crudo)	
  
•  Escritura	
  en	
  disco	
  en	
  diferido	
  
•  Discos	
  SSD	
  
•  Envío	
  por	
  lotes	
  a	
  S3	
  
Problemas	
  de	
  almacenamiento	
  
“Si	
  devuelve	
  void,	
  puede	
  esperar”	
  
public void log(!
final RTBImplementationBean request,!
final AdExchange adExchange) {!
FutureTask futureLog = new FutureTask(new Callable() {!
@Override!
public Object call() throws Exception {!
" synchLog(request, adExchange);!
" " "return null;!
" }!
" );!
futureLog.run();!
}	
  
Rest	
  Server	
   Worker	
  PubSub	
   DB	
  
A	
  nivel	
  de	
  código	
  
A	
  nivel	
  arquitectónico	
  
•  Si	
  necesitas	
  backups,	
  ten	
  en	
  cuenta	
  que	
  
necesita	
  el	
  doble	
  de	
  memoria	
  de	
  la	
  que	
  vas	
  a	
  
usar.	
  
Redis	
  va	
  como	
  un	
  1ro	
  pero…	
  
Backup	
  
instance	
  
Cuidado	
  con	
  el	
  tamaño	
  del	
  heap	
  
•  De	
  dicas	
  más	
  1empo	
  a:	
  
– Programar	
  vs	
  Despelgar?	
  
– Diagnos1car	
  vs	
  Corregir?	
  
– Bugs	
  vs	
  Features?	
  
•  Opacidad	
  
•  Pérdida	
  del	
  control	
  
	
  
Cuida	
  tu	
  entorno	
  de	
  trabajo	
  
Cada	
  pieza	
  del	
  puzzle	
  es	
  mo1vo	
  de	
  
preocupaciones.	
  
Sobreingenieria	
  es	
  evil	
  
•  Miedo	
  al	
  cambio.	
  
•  Sen1miento	
  de	
  pertenencia.	
  
•  Ser	
  exesivamente	
  conservador.	
  
•  Fíate	
  de	
  tus	
  ins1ntos.	
  
“La	
  inercia	
  te	
  frena	
  ¿WTF?”	
  
Q&A	
  
Muchas	
  Gracias	
  
Spain!
(headquarters)!
!
Pº Castellana 111, 1st floor!
28046 Madrid – Spain!
+34 91 101 1001!
<<<<	
  
USA!
!
!
747 3rd Avenue!
NY, NY 10017!
+1 516 206 2392!
	
  
Colombia!
!
!
Carrera 7, nº71 – 21. Torre B!
Piso 13 – 15!
Bogotá, Colombia!
+57 1 31 35 913!
	
  
Contact us at :!
www.taptpanetworks.com & www.sonatalocal.com!
info@sonatalocal.com!
@TAPTAP_Networks & @SONATAlocal!

More Related Content

Similar to Sergio arroyo | TAPTAP Networks | Developers

Evolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.comEvolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.comGabriel Eisbruch
 
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...SolidQ
 
Ahorre hasta un 90% en ambientes productivos con instancias Spot
Ahorre hasta un 90% en ambientes productivos con instancias SpotAhorre hasta un 90% en ambientes productivos con instancias Spot
Ahorre hasta un 90% en ambientes productivos con instancias SpotAmazon Web Services LATAM
 
Lado oscuro de big data y el ingeniero del siglo xxi
Lado oscuro de big data y el ingeniero del siglo xxiLado oscuro de big data y el ingeniero del siglo xxi
Lado oscuro de big data y el ingeniero del siglo xxiJosé Carlos García Serrano
 
Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEduardo Castro
 
Ahorre hasta un 90% en ambientes productivos con instancias spot
Ahorre hasta un 90% en ambientes productivos con instancias spotAhorre hasta un 90% en ambientes productivos con instancias spot
Ahorre hasta un 90% en ambientes productivos con instancias spotAmazon Web Services LATAM
 
Mobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloMobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloSoftware Guru
 
Redis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valorRedis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valorAlberto Gimeno
 
[SPANISH ]Codealike en MUG Argentina
[SPANISH ]Codealike en MUG Argentina[SPANISH ]Codealike en MUG Argentina
[SPANISH ]Codealike en MUG ArgentinaCodealike
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...Amazon Web Services
 
Migrando Rails Apps entre Cloud y Bare Metal Servers
Migrando Rails Apps entre Cloud y Bare Metal ServersMigrando Rails Apps entre Cloud y Bare Metal Servers
Migrando Rails Apps entre Cloud y Bare Metal ServersEdwin Cruz
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverEnrique Catala Bañuls
 
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...Luis Bosque
 
Un viaje a la observabilidad
Un viaje a la observabilidadUn viaje a la observabilidad
Un viaje a la observabilidadElasticsearch
 

Similar to Sergio arroyo | TAPTAP Networks | Developers (20)

Evolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.comEvolucion de big data @ mercadolibre.com
Evolucion de big data @ mercadolibre.com
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
 
Gapand2017 rediscahe
Gapand2017 rediscaheGapand2017 rediscahe
Gapand2017 rediscahe
 
Ahorre hasta un 90% en ambientes productivos con instancias Spot
Ahorre hasta un 90% en ambientes productivos con instancias SpotAhorre hasta un 90% en ambientes productivos con instancias Spot
Ahorre hasta un 90% en ambientes productivos con instancias Spot
 
Oracle GG presentacion
Oracle GG presentacionOracle GG presentacion
Oracle GG presentacion
 
Lado oscuro de big data y el ingeniero del siglo xxi
Lado oscuro de big data y el ingeniero del siglo xxiLado oscuro de big data y el ingeniero del siglo xxi
Lado oscuro de big data y el ingeniero del siglo xxi
 
Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql database
 
Ahorre hasta un 90% en ambientes productivos con instancias spot
Ahorre hasta un 90% en ambientes productivos con instancias spotAhorre hasta un 90% en ambientes productivos con instancias spot
Ahorre hasta un 90% en ambientes productivos con instancias spot
 
Mobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloMobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vuelo
 
Redis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valorRedis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valor
 
[SPANISH ]Codealike en MUG Argentina
[SPANISH ]Codealike en MUG Argentina[SPANISH ]Codealike en MUG Argentina
[SPANISH ]Codealike en MUG Argentina
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
 
Migrando Rails Apps entre Cloud y Bare Metal Servers
Migrando Rails Apps entre Cloud y Bare Metal ServersMigrando Rails Apps entre Cloud y Bare Metal Servers
Migrando Rails Apps entre Cloud y Bare Metal Servers
 
Deep Learning, Python, C# y Azure
Deep Learning, Python, C# y AzureDeep Learning, Python, C# y Azure
Deep Learning, Python, C# y Azure
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
 
Scrum para uno
Scrum para unoScrum para uno
Scrum para uno
 
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
 
FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017FULLSTACK JS DEV in 2017
FULLSTACK JS DEV in 2017
 
Un viaje a la observabilidad
Un viaje a la observabilidadUn viaje a la observabilidad
Un viaje a la observabilidad
 

More from Smash Tech

Mónica Zapata | El E-Commerce es Mobile | Optimyzet
Mónica  Zapata | El E-Commerce es Mobile | OptimyzetMónica  Zapata | El E-Commerce es Mobile | Optimyzet
Mónica Zapata | El E-Commerce es Mobile | OptimyzetSmash Tech
 
Carlos Guerra Terol | ¿DONDE ESTÁ TU BLOG?
Carlos Guerra Terol | ¿DONDE ESTÁ TU BLOG?Carlos Guerra Terol | ¿DONDE ESTÁ TU BLOG?
Carlos Guerra Terol | ¿DONDE ESTÁ TU BLOG?Smash Tech
 
Adrián García | WSN y Hemav
Adrián García | WSN y HemavAdrián García | WSN y Hemav
Adrián García | WSN y HemavSmash Tech
 
Ruben Mahugo | Deportunity | Marketing digital sin morir en el intento
Ruben Mahugo | Deportunity | Marketing digital sin morir en el intento Ruben Mahugo | Deportunity | Marketing digital sin morir en el intento
Ruben Mahugo | Deportunity | Marketing digital sin morir en el intento Smash Tech
 
David Calduch | Hootsuite | Taller Hootsuite, el dashboard estrella de la ges...
David Calduch | Hootsuite | Taller Hootsuite, el dashboard estrella de la ges...David Calduch | Hootsuite | Taller Hootsuite, el dashboard estrella de la ges...
David Calduch | Hootsuite | Taller Hootsuite, el dashboard estrella de la ges...Smash Tech
 
Antonia Adame | Megaffono | Cómo realizar un buen plan de marketing online
Antonia Adame | Megaffono | Cómo realizar un buen plan de marketing online Antonia Adame | Megaffono | Cómo realizar un buen plan de marketing online
Antonia Adame | Megaffono | Cómo realizar un buen plan de marketing online Smash Tech
 
Lars Gerhmann | IQ Leverage | Criterios de inversión de un Business Angel en ...
Lars Gerhmann | IQ Leverage | Criterios de inversión de un Business Angel en ...Lars Gerhmann | IQ Leverage | Criterios de inversión de un Business Angel en ...
Lars Gerhmann | IQ Leverage | Criterios de inversión de un Business Angel en ...Smash Tech
 
Ruben Buenvaron | The Valley | Be Mobile
Ruben Buenvaron | The Valley | Be MobileRuben Buenvaron | The Valley | Be Mobile
Ruben Buenvaron | The Valley | Be MobileSmash Tech
 
Sergio Arroyo | Tap Tap Networks | I am a Developer
Sergio Arroyo | Tap Tap Networks | I am a DeveloperSergio Arroyo | Tap Tap Networks | I am a Developer
Sergio Arroyo | Tap Tap Networks | I am a DeveloperSmash Tech
 
Albert Bellonch | Quipu | I am a Developer
Albert Bellonch | Quipu | I am a DeveloperAlbert Bellonch | Quipu | I am a Developer
Albert Bellonch | Quipu | I am a DeveloperSmash Tech
 
Wojciech Ogrodowczyk | 3Scale | I am a Developer
Wojciech Ogrodowczyk | 3Scale | I am a DeveloperWojciech Ogrodowczyk | 3Scale | I am a Developer
Wojciech Ogrodowczyk | 3Scale | I am a DeveloperSmash Tech
 
Carlos Buenosvinos | Atrápalo | I´m a Developer
Carlos Buenosvinos | Atrápalo | I´m a DeveloperCarlos Buenosvinos | Atrápalo | I´m a Developer
Carlos Buenosvinos | Atrápalo | I´m a DeveloperSmash Tech
 
Jordi Cirera | Ajuntament de Barcelona | Smart Cities
Jordi Cirera | Ajuntament de Barcelona | Smart CitiesJordi Cirera | Ajuntament de Barcelona | Smart Cities
Jordi Cirera | Ajuntament de Barcelona | Smart CitiesSmash Tech
 
Carles Bonfill | Easypromos | Promociones en Facebook
Carles Bonfill | Easypromos | Promociones en FacebookCarles Bonfill | Easypromos | Promociones en Facebook
Carles Bonfill | Easypromos | Promociones en FacebookSmash Tech
 
Ana Paula | The Valley | Gestión de reputación en medios sociales
Ana Paula | The Valley | Gestión de reputación en medios socialesAna Paula | The Valley | Gestión de reputación en medios sociales
Ana Paula | The Valley | Gestión de reputación en medios socialesSmash Tech
 
Xavier Castellnou | GMK Media Lab| Cómo mejorar el seo con una estrategia soc...
Xavier Castellnou | GMK Media Lab| Cómo mejorar el seo con una estrategia soc...Xavier Castellnou | GMK Media Lab| Cómo mejorar el seo con una estrategia soc...
Xavier Castellnou | GMK Media Lab| Cómo mejorar el seo con una estrategia soc...Smash Tech
 
Manel Becerra | Caixa Catalunya | Ecommerce
Manel Becerra | Caixa Catalunya | EcommerceManel Becerra | Caixa Catalunya | Ecommerce
Manel Becerra | Caixa Catalunya | EcommerceSmash Tech
 
Oriol Guitart | RACC | Ecommerce
Oriol Guitart | RACC | EcommerceOriol Guitart | RACC | Ecommerce
Oriol Guitart | RACC | EcommerceSmash Tech
 
Fernando Maciá | HumanLevel | Ecommerce
Fernando Maciá | HumanLevel | EcommerceFernando Maciá | HumanLevel | Ecommerce
Fernando Maciá | HumanLevel | EcommerceSmash Tech
 
Oriol Ibars | Multiplica | Ecommerce
Oriol Ibars | Multiplica | EcommerceOriol Ibars | Multiplica | Ecommerce
Oriol Ibars | Multiplica | EcommerceSmash Tech
 

More from Smash Tech (20)

Mónica Zapata | El E-Commerce es Mobile | Optimyzet
Mónica  Zapata | El E-Commerce es Mobile | OptimyzetMónica  Zapata | El E-Commerce es Mobile | Optimyzet
Mónica Zapata | El E-Commerce es Mobile | Optimyzet
 
Carlos Guerra Terol | ¿DONDE ESTÁ TU BLOG?
Carlos Guerra Terol | ¿DONDE ESTÁ TU BLOG?Carlos Guerra Terol | ¿DONDE ESTÁ TU BLOG?
Carlos Guerra Terol | ¿DONDE ESTÁ TU BLOG?
 
Adrián García | WSN y Hemav
Adrián García | WSN y HemavAdrián García | WSN y Hemav
Adrián García | WSN y Hemav
 
Ruben Mahugo | Deportunity | Marketing digital sin morir en el intento
Ruben Mahugo | Deportunity | Marketing digital sin morir en el intento Ruben Mahugo | Deportunity | Marketing digital sin morir en el intento
Ruben Mahugo | Deportunity | Marketing digital sin morir en el intento
 
David Calduch | Hootsuite | Taller Hootsuite, el dashboard estrella de la ges...
David Calduch | Hootsuite | Taller Hootsuite, el dashboard estrella de la ges...David Calduch | Hootsuite | Taller Hootsuite, el dashboard estrella de la ges...
David Calduch | Hootsuite | Taller Hootsuite, el dashboard estrella de la ges...
 
Antonia Adame | Megaffono | Cómo realizar un buen plan de marketing online
Antonia Adame | Megaffono | Cómo realizar un buen plan de marketing online Antonia Adame | Megaffono | Cómo realizar un buen plan de marketing online
Antonia Adame | Megaffono | Cómo realizar un buen plan de marketing online
 
Lars Gerhmann | IQ Leverage | Criterios de inversión de un Business Angel en ...
Lars Gerhmann | IQ Leverage | Criterios de inversión de un Business Angel en ...Lars Gerhmann | IQ Leverage | Criterios de inversión de un Business Angel en ...
Lars Gerhmann | IQ Leverage | Criterios de inversión de un Business Angel en ...
 
Ruben Buenvaron | The Valley | Be Mobile
Ruben Buenvaron | The Valley | Be MobileRuben Buenvaron | The Valley | Be Mobile
Ruben Buenvaron | The Valley | Be Mobile
 
Sergio Arroyo | Tap Tap Networks | I am a Developer
Sergio Arroyo | Tap Tap Networks | I am a DeveloperSergio Arroyo | Tap Tap Networks | I am a Developer
Sergio Arroyo | Tap Tap Networks | I am a Developer
 
Albert Bellonch | Quipu | I am a Developer
Albert Bellonch | Quipu | I am a DeveloperAlbert Bellonch | Quipu | I am a Developer
Albert Bellonch | Quipu | I am a Developer
 
Wojciech Ogrodowczyk | 3Scale | I am a Developer
Wojciech Ogrodowczyk | 3Scale | I am a DeveloperWojciech Ogrodowczyk | 3Scale | I am a Developer
Wojciech Ogrodowczyk | 3Scale | I am a Developer
 
Carlos Buenosvinos | Atrápalo | I´m a Developer
Carlos Buenosvinos | Atrápalo | I´m a DeveloperCarlos Buenosvinos | Atrápalo | I´m a Developer
Carlos Buenosvinos | Atrápalo | I´m a Developer
 
Jordi Cirera | Ajuntament de Barcelona | Smart Cities
Jordi Cirera | Ajuntament de Barcelona | Smart CitiesJordi Cirera | Ajuntament de Barcelona | Smart Cities
Jordi Cirera | Ajuntament de Barcelona | Smart Cities
 
Carles Bonfill | Easypromos | Promociones en Facebook
Carles Bonfill | Easypromos | Promociones en FacebookCarles Bonfill | Easypromos | Promociones en Facebook
Carles Bonfill | Easypromos | Promociones en Facebook
 
Ana Paula | The Valley | Gestión de reputación en medios sociales
Ana Paula | The Valley | Gestión de reputación en medios socialesAna Paula | The Valley | Gestión de reputación en medios sociales
Ana Paula | The Valley | Gestión de reputación en medios sociales
 
Xavier Castellnou | GMK Media Lab| Cómo mejorar el seo con una estrategia soc...
Xavier Castellnou | GMK Media Lab| Cómo mejorar el seo con una estrategia soc...Xavier Castellnou | GMK Media Lab| Cómo mejorar el seo con una estrategia soc...
Xavier Castellnou | GMK Media Lab| Cómo mejorar el seo con una estrategia soc...
 
Manel Becerra | Caixa Catalunya | Ecommerce
Manel Becerra | Caixa Catalunya | EcommerceManel Becerra | Caixa Catalunya | Ecommerce
Manel Becerra | Caixa Catalunya | Ecommerce
 
Oriol Guitart | RACC | Ecommerce
Oriol Guitart | RACC | EcommerceOriol Guitart | RACC | Ecommerce
Oriol Guitart | RACC | Ecommerce
 
Fernando Maciá | HumanLevel | Ecommerce
Fernando Maciá | HumanLevel | EcommerceFernando Maciá | HumanLevel | Ecommerce
Fernando Maciá | HumanLevel | Ecommerce
 
Oriol Ibars | Multiplica | Ecommerce
Oriol Ibars | Multiplica | EcommerceOriol Ibars | Multiplica | Ecommerce
Oriol Ibars | Multiplica | Ecommerce
 

Recently uploaded

_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 

Recently uploaded (20)

_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 

Sergio arroyo | TAPTAP Networks | Developers

  • 1. Escalando  hasta  las  10.000   pe1ciones  por  segundo   Sergio  Arroyo  Cuevas   sergio.arroyo@taptapnetworks.com   @delr3ves  
  • 2.
  • 4.
  • 5.
  • 6. Proveedor  de   campañas   Proveedor  de   “escaparates”   inventario   AdServer   Forecas1ng  
  • 7.
  • 8. SSP   AdExchange   Subasta   DSP   Bidder   SDK   1.  Dame   anuncios   2.  Hay  un  escaparate    disponible,     ¿cuánto  me  dais?  
  • 9. •  ¿Qué  campaña  ponemos?   •  ¿Cuánto  pagamos  por  ella?   •  Necesitamos  muchísimas  pe1ciones     Problemas   •  Tiempo  de  respuesta  <  100ms   •  Siempre  hay  que  dar  una  respuesta  válida   •  Almacenamos  todas  las  pe1ciones   •  No  podemos  precalcular  el  resultado   Restricciones  
  • 11.
  • 12.
  • 13. Redis   Storm   Hadoop   MongoDB   Amazon  S3  
  • 16. Round  0   DRPCSpout   BidRequest   Crea1vi1es   RequestLog   RetrieveCampaignsByGeohash   CampaignCrea1vi1es   PacingReached   IsAc1ve   Scheduling   FrequencyCapping   BlockedByPublisher   Intersec1on   CalculateWinner   BidResponse   ResultLog  
  • 18. ¡40  QPS!   ¿Seguro?   KO Dev Team Bidder
  • 19. •  Paralelizar  Iene  un  sobre-­‐coste   •  La  serialización  es  cara  y  aburrida  de   programar   •  No  sabemos  que  pasa  por  dentro   •  “Real1me  processing”  !=  comunicación   sincrona   Lecciones  aprendidas  
  • 20. •  Paralelizar  1ene  un  sobre-­‐coste   •  La  serialización  es  cara  y  aburrida  de   programar       Round  1   DRPCSpout   CojoBolt   RequestLog  ResponseLog  
  • 21. ¡500  QPS!   ¿Seguro?   KO Dev Team Bidder
  • 22. •  Paralelizar  1ene  un  sobre-­‐coste   •  La  serialización  es  cara  y  aburrida  de   programar   •  No  sabemos  que  pasa  por  dentro   •  “Real1me  processing”  !=  comunicación   sincrona   •  Redis  no  nos  sirve  como  Storage  principal   Lecciones  aprendidas  
  • 26. ¡500  QPS!   ¿Seguro?   KO Dev Team Bidder
  • 27. •  Paralelizar  1ene  un  sobre-­‐coste   •  La  serialización  es  cara  y  aburrida  de   programar   •  No  sabemos  que  pasa  por  dentro   •  “RealIme  processing”  !=  comunicación   sincrona   •  Redis  no  nos  sirve  como  Storage  principal   Lecciones  aprendidas  
  • 28. •  Monitorizar  es  importante  para  nosotros   Round  3  
  • 29. Round  3   CORE   PORTS   ADAPTERS  
  • 30. Round  3   CORE   STORM   REDIS  
  • 31. Round  3   CORE   DROPWIZARD  +  STORM   MONGO  +  REDIS  
  • 33. Cómo  conseguimos  las  métricas?   @Timed(name = "BidRequests")! public Response bid(...) {! "//Do your magic here! }   ...! Histogram validFoundCampaigns = Metrics.newHistogram("FoundCampaigns");! validFoundCampaigns.update(filteredCampaigns.size());! ...!
  • 35. Enviando  métricas  a  Graphite   public static void configureMetricsReporter(! " "GraphiteConfiguration graphiteConfiguration) {! "if (graphiteConfiguration != null && graphiteConfig.isEnabled()) {! GraphiteReporter.enable( ! " " " "graphiteConfig.getGraphiteSendMetricsPeriodInSeconds(), " " " "TimeUnit.SECONDS,! " " " "graphiteConfig.getGraphiteHost(),! graphiteConfig.getGraphitePort(), "! " " " "graphiteConfig.getGraphiteMetricsId());! "}! }  
  • 36.
  • 37.
  • 38. ¡3500  QPS!   ¡¡Seguro!!   KO Dev Team Bidder
  • 42. •  En  cuanto  solucionas  un  cuello  de  botella   aparecerá  el  siguiente.   •  Por  mucho  que  lo  intentemos  tendemos  a  la   op1mización  prematura.   •  La  algoritmia  no  nos  ha  resuelto  el  problema.   •  Busca  una  librería  de  métricas  para  tu  stack.   •  Un  entorno  de  trabajo  higiénico  es   imprescindible.   Lecciones  aprendidas  
  • 43.
  • 44. Entre  175  y  250  GB  diarios  de  datos  comprimidos   (1,6TB  en  crudo)   •  Escritura  en  disco  en  diferido   •  Discos  SSD   •  Envío  por  lotes  a  S3   Problemas  de  almacenamiento  
  • 45. “Si  devuelve  void,  puede  esperar”   public void log(! final RTBImplementationBean request,! final AdExchange adExchange) {! FutureTask futureLog = new FutureTask(new Callable() {! @Override! public Object call() throws Exception {! " synchLog(request, adExchange);! " " "return null;! " }! " );! futureLog.run();! }   Rest  Server   Worker  PubSub   DB   A  nivel  de  código   A  nivel  arquitectónico  
  • 46. •  Si  necesitas  backups,  ten  en  cuenta  que   necesita  el  doble  de  memoria  de  la  que  vas  a   usar.   Redis  va  como  un  1ro  pero…   Backup   instance  
  • 47. Cuidado  con  el  tamaño  del  heap  
  • 48. •  De  dicas  más  1empo  a:   – Programar  vs  Despelgar?   – Diagnos1car  vs  Corregir?   – Bugs  vs  Features?   •  Opacidad   •  Pérdida  del  control     Cuida  tu  entorno  de  trabajo  
  • 49. Cada  pieza  del  puzzle  es  mo1vo  de   preocupaciones.   Sobreingenieria  es  evil  
  • 50. •  Miedo  al  cambio.   •  Sen1miento  de  pertenencia.   •  Ser  exesivamente  conservador.   •  Fíate  de  tus  ins1ntos.   “La  inercia  te  frena  ¿WTF?”  
  • 52. Spain! (headquarters)! ! Pº Castellana 111, 1st floor! 28046 Madrid – Spain! +34 91 101 1001! <<<<   USA! ! ! 747 3rd Avenue! NY, NY 10017! +1 516 206 2392!   Colombia! ! ! Carrera 7, nº71 – 21. Torre B! Piso 13 – 15! Bogotá, Colombia! +57 1 31 35 913!   Contact us at :! www.taptpanetworks.com & www.sonatalocal.com! info@sonatalocal.com! @TAPTAP_Networks & @SONATAlocal!