SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
 
	
  
4	
  
ü 1 Million Daily Active
Users
ü 39 million people have
played it!!
ü 50 million
dragons
sold!
ü 0.8 M Daily Active Users
ü 300.000 attacks per
hour!!
ü 8 languages
ü 6M Daily Active Users
ü 16 Billion of requests
sent!
ü 20 Billion of
dragon
bred!
7	
  
February	
  2013	
   March	
  2013	
   1-­‐	
  Mobile	
  &	
  Canvas	
  
Full	
  Xpla;orm	
  
2-­‐	
  Mobile	
  &	
  Canvas	
  
Full	
  Xpla;orm	
  
Q2	
  2013	
   Q3	
  2013	
  
ü Tráfico	
  muy	
  elevado:	
  7M+	
  DAU,	
  250K	
  concurrentes	
  
ü Ra>o	
  R/W	
  en	
  DB	
  muy	
  bajo	
  
ü Tráfico	
  worldwide	
  
24x365	
  sin	
  down>me	
  
ü Análisis	
  de	
  datos	
  diario	
  	
  
+	
  análisis	
  realKme	
  
ü Frontend:	
  Tiene	
  que	
  rendir	
  
bien	
  con	
  pcs	
  an>guos	
  
Facebook	
  Client	
  
Adobe	
  Flash	
  
iOS	
  Client	
  
C++	
  
Analy>cs	
  /	
  Backoffice	
  Tools	
  
PHP/Symfony2	
  
Object	
  DB	
  
Percona	
  Shards	
  
Sessions,	
  Locks	
  
Redis	
  Shards	
  
Logs	
  Queues	
  
Redis	
  Shards	
  
Async	
  Queues	
  
Redis	
  Shards	
  
Log	
  Consumers	
  
Python	
  
Async	
  Processors	
  
Python	
  
User	
  logs	
  
Cassandra	
  
Logs	
  Database	
  
Amazon	
  S3	
  
Analy>cs	
  Database	
  
Amazon	
  RedshiS	
  
Backend	
  
PHP/Symfony2	
  
TOTAL:	
  
+	
  300	
  AWS	
  EC2	
  Servers	
  
Real	
  Time	
  Metrics	
  
Redis	
  Shards	
  
Cómo	
  escalamos	
  las	
  bases	
  de	
  datos?	
  Depende..	
  
	
  
ü Percona	
  y	
  Redis:	
  sharding	
  =	
  repar>r	
  objetos	
  horizontalmente	
  
ü Cassandra	
  y	
  AWS	
  Redshi[:	
  Escalado	
  “automáKco”	
  J	
  
Las	
  caches	
  solo	
  escalan	
  las	
  lecturas	
  
Como	
  escalamos	
  la	
  capa	
  de	
  aplicación?	
  
ü Añadiendo	
  nodos	
  a	
  un	
  Load	
  Balancer,	
  a	
  un	
  worker	
  group,	
  …	
  
ü AWS	
  Auto	
  Scaling	
  se	
  encarga	
  de	
  añadir	
  y	
  quitar	
  sevidores,	
  
monitorizando	
  la	
  carga,	
  el	
  tamaño	
  de	
  la	
  cola,	
  …	
  
Load	
  Balancer	
  
Queue	
  
Server	
   Server	
   Server	
  …	
  
AWS	
  AUTO	
  SCALING	
  
requests	
  
Server	
   Server	
   Server	
  …	
  
messages	
  
AWS	
  AUTO	
  SCALING	
  
Facebook	
  canvas:	
  Flash	
  -­‐	
  máximo	
  equilibrio	
  entre	
  
compa>bilidad	
  y	
  potencia	
  
iOS	
  &	
  Android:	
  C++	
  -­‐	
  para	
  poder	
  reusar	
  código	
  
	
  
Principal	
  reto:	
  PERFORMANCE	
  -­‐	
  El	
  juego	
  >ene	
  que	
  funcionar	
  
con	
  fluidez	
  en	
  máquinas/disposi>vos	
  poco	
  potentes.	
  La	
  AI	
  y	
  las	
  
animaciones	
  consumen	
  muchos	
  recursos.	
  
	
  
Técnicas	
  aplicadas:	
  Movieclips,	
  VertexBuffers,	
  QuadBatches,	
  
algoritmos	
  de	
  pathfinding,	
  …	
  
PHP/Symfony2:	
  
ü Muy	
  flexible:	
  Conjunto	
  de	
  componentes	
  reusables	
  
	
  
ü Buen	
  performance,	
  poco	
  overhead:	
  uso	
  de	
  cache	
  en	
  muchos	
  
niveles:	
  container,	
  configuración,	
  …	
  
ü Standards:	
  Cómo	
  hacer	
  las	
  cosas.	
  Muy	
  bueno	
  para	
  los	
  equipos.	
  
ü Uso	
  de	
  composer:	
  código	
  estructurado	
  en	
  dis>ntos	
  proyectos	
  
(bundles,	
  componentes,	
  …),	
  uso	
  de	
  librerías,…	
  
ü Backend	
  de	
  los	
  juegos	
  basado	
  en	
  Symfony2	
  
Python	
  
	
  
ü Lenguaje	
  dinámico,	
  muy	
  potente	
  
ü MulKprocessing,	
  mulKthreading,	
  …	
  
ü Librerías	
  para	
  sistemas:	
  boto,	
  ssh	
  
ü La	
  usamos	
  para	
  los	
  procesos	
  asíncronos,	
  análisis,	
  y	
  para	
  
herramientas	
  de	
  sistemas	
  
ü Herramienta	
  propia	
  para	
  ges>onar	
  la	
  infraestructura	
  en	
  
cloud	
  (AWS):	
  Mico,	
  próximamente	
  open	
  source.	
  
Percona	
  
	
  
ü Fork	
  de	
  MySQL	
  
ü DB	
  muy	
  robusta,	
  fiable	
  y	
  predecible	
  
(rendimiento	
  bastante	
  lineal)	
  
ü No	
  escala:	
  hay	
  que	
  hacer	
  sharding	
  
ü Uso	
  en	
  SP:	
  objetos	
  de	
  los	
  usuarios	
  (datos	
  
más	
  críKcos)	
  guardados	
  en	
  JSON	
  
serializados	
  (sin	
  esquema	
  para	
  no	
  tener	
  
que	
  hacer	
  nunca	
  ALTER	
  TABLES).	
  
Redis	
  
	
  
ü Key-­‐value	
  DB	
  en	
  memoria	
  (el	
  tamaño	
  máximo	
  es	
  la	
  
memoria	
  de	
  la	
  máquina)	
  
ü Performance	
  insuperable	
  y	
  predecible	
  
ü Complex	
  data	
  types:	
  sorted	
  sets,	
  hashes,	
  …	
  
ü Operaciones	
  atómicas,	
  incluso	
  scripts	
  LUA	
  atómicos!	
  
	
  
ü No	
  escala	
  (aún):	
  hay	
  que	
  hacer	
  sharding	
  
ü Uso	
  en	
  SP:	
  rankings,	
  locking,	
  sesiones,	
  colas	
  
Cassandra	
  
	
  
ü Base	
  de	
  datos	
  NoSQL	
  100%	
  escalable	
  
	
  
ü Estructura	
  column	
  families	
  &	
  super	
  column	
  families	
  
adecuada	
  para	
  algunos	
  casos	
  
	
  
ü Consistencia	
  eventual	
  
ü Op>mizada	
  para	
  escritura	
  
	
  
ü Ejemplo:	
  user	
  logs	
  (siempre	
  append,	
  pocas	
  lecturas)	
  
Redshi[	
  
	
  
ü Columnar	
  database	
  de	
  AWS	
  
ü Necesidad	
  de	
  cargar	
  datos	
  en	
  bloques	
  
ü Lecturas	
  y	
  queries	
  analíKcas	
  muy	
  rápidas	
  gracias	
  a	
  la	
  
estructura	
  columnar	
  
ü Escalable	
  automáKcamente	
  (pero	
  hay	
  que	
  pausar	
  las	
  
escrituras)	
  
ü Tamaño	
  máximo:	
  100x	
  8XL	
  nodes	
  (12	
  Tb	
  Ram,	
  1.6	
  Pb	
  storage)	
  
Amazon	
  Web	
  Services	
  
ü No	
  mantener	
  ni	
  planificar	
  hardware:	
  aumenta	
  la	
  velocidad	
  del	
  
negocio	
  
	
  
ü Pago	
  por	
  uso	
  
	
  
ü Auto	
  Scaling	
  
	
  
ü Múl>ples	
  availability	
  zones	
  
ü Managed	
  components:	
  Load	
  Balancers,	
  DBs,	
  …	
  
ü Muy	
  importante	
  tenerlo	
  todo	
  replicado	
  y	
  automaKzado:	
  	
  
Los	
  servidores	
  EC2	
  pueden	
  fallar	
  J	
  
Puppet	
  
	
  
ü Repositorio	
  con	
  la	
  configuración	
  de	
  todos	
  los	
  servidores:	
  
ü Paquetes/aplicaciones	
  a	
  instalar	
  
ü Archivos	
  de	
  configuración	
  
ü Usuarios	
  
ü Lenguage	
  propio	
  formado	
  por	
  clases,	
  resources,	
  
parametrizables	
  y	
  reusables.	
  Extensible	
  en	
  ruby.	
  
ü Los	
  sysadmins	
  cada	
  vez	
  se	
  dedican	
  más	
  a	
  programar	
  
sistemas	
  (filosofia	
  DevOps)	
  
ü Permite	
  arrancar	
  y	
  configurar	
  nuevos	
  servidores	
  
desatendidamente	
  
ü AutomaKzación:	
  developers	
  más	
  felices	
  J	
  
ü Vagrant:	
  Automa>za	
  entornos	
  de	
  desarrollo	
  virtuales	
  (locales)	
  
ü Jenkins:	
  Integración	
  conKnua	
  (automa>za	
  el	
  tes>ng,	
  
integración,	
  …)	
  
ü TesKng:	
  PHPUnit,	
  Selenium,	
  Mockery,	
  Guzzle,	
  …	
  
ü Github	
  &	
  Git	
  Flow,	
  pull	
  requests,	
  code	
  reviews	
  
	
  
ü Mejorando	
  convnuamente:	
  +	
  performance,	
  +	
  nuevas	
  
tecnologías,	
  refactors	
  para	
  mejorar	
  el	
  código,	
  
formaciones	
  internas…	
  
ü Open	
  Source:	
  liberación	
  de	
  varios	
  proyectos	
  
próximamente	
  
	
  
ü Par>cipación	
  en	
  la	
  comunidad:	
  
ü Patrocinadores	
  de	
  betabeers	
  
ü Pla>num	
  sponsors	
  de	
  deSymfony	
  2013	
  
ü Sponsors	
  de	
  BarcelonaJS	
  
ü …	
  
¿Te gustaría trabajar en el sector de los videojuegos?
Buscamos talento. El talento atrae al talento.
www.socialpoint.es
¡GRACIAS! J

Weitere ähnliche Inhalte

Andere mochten auch

ECONOMÍA DE LA UNIÓN EUROPEA
ECONOMÍA DE LA UNIÓN EUROPEAECONOMÍA DE LA UNIÓN EUROPEA
ECONOMÍA DE LA UNIÓN EUROPEADune Arguijo Diaz
 
Hp kurs information
Hp kurs informationHp kurs information
Hp kurs informationisch
 
Fiebre Verde Extra Verde
Fiebre Verde Extra VerdeFiebre Verde Extra Verde
Fiebre Verde Extra VerdeGAlleHAs
 
Youblisher.com 1201680-terra cia-edi_o_198
Youblisher.com 1201680-terra cia-edi_o_198Youblisher.com 1201680-terra cia-edi_o_198
Youblisher.com 1201680-terra cia-edi_o_198Lela Gomes
 
First Resort Group FZ LLC - Company Profile - IRAN Linked In
First Resort Group FZ LLC - Company Profile - IRAN Linked InFirst Resort Group FZ LLC - Company Profile - IRAN Linked In
First Resort Group FZ LLC - Company Profile - IRAN Linked InVictoria Cruickshank
 
Right Turn e Design - BNI 8 Min Presentation
Right Turn e Design - BNI 8 Min Presentation Right Turn e Design - BNI 8 Min Presentation
Right Turn e Design - BNI 8 Min Presentation Right Turn e Design
 
Txesus Zubiate | landscape version portfolio
Txesus Zubiate | landscape version portfolioTxesus Zubiate | landscape version portfolio
Txesus Zubiate | landscape version portfolioTxesus Zubiate
 
Boletin de novas incorporacións na biblioteca da deputación da coruña. marzo ...
Boletin de novas incorporacións na biblioteca da deputación da coruña. marzo ...Boletin de novas incorporacións na biblioteca da deputación da coruña. marzo ...
Boletin de novas incorporacións na biblioteca da deputación da coruña. marzo ...Bibliotecadicoruna
 
Formulario proyectos de_aula
Formulario proyectos de_aulaFormulario proyectos de_aula
Formulario proyectos de_aulapraes-tic
 
L’oroneta i el rei
L’oroneta i el reiL’oroneta i el rei
L’oroneta i el reiconxanoverjes
 
Einblicke in die Zukunft von Big Data
Einblicke in die Zukunft von Big DataEinblicke in die Zukunft von Big Data
Einblicke in die Zukunft von Big DataTrivadis
 
Cyber Insurance
Cyber InsuranceCyber Insurance
Cyber InsuranceClubHack
 
International Librarians Network: peer mentoring para bibliotecarios
International Librarians Network: peer mentoring para bibliotecariosInternational Librarians Network: peer mentoring para bibliotecarios
International Librarians Network: peer mentoring para bibliotecariosSocialBiblio
 
Diamantes 500 - Oportunidad de Negocio
Diamantes 500 - Oportunidad de NegocioDiamantes 500 - Oportunidad de Negocio
Diamantes 500 - Oportunidad de NegocioDiamantes 500
 

Andere mochten auch (20)

ECONOMÍA DE LA UNIÓN EUROPEA
ECONOMÍA DE LA UNIÓN EUROPEAECONOMÍA DE LA UNIÓN EUROPEA
ECONOMÍA DE LA UNIÓN EUROPEA
 
Hp kurs information
Hp kurs informationHp kurs information
Hp kurs information
 
Hojadescuentocomercios2
Hojadescuentocomercios2Hojadescuentocomercios2
Hojadescuentocomercios2
 
11 05-11
11 05-1111 05-11
11 05-11
 
OmParkash
OmParkashOmParkash
OmParkash
 
Fiebre Verde Extra Verde
Fiebre Verde Extra VerdeFiebre Verde Extra Verde
Fiebre Verde Extra Verde
 
SikaProof- A
SikaProof- ASikaProof- A
SikaProof- A
 
Youblisher.com 1201680-terra cia-edi_o_198
Youblisher.com 1201680-terra cia-edi_o_198Youblisher.com 1201680-terra cia-edi_o_198
Youblisher.com 1201680-terra cia-edi_o_198
 
First Resort Group FZ LLC - Company Profile - IRAN Linked In
First Resort Group FZ LLC - Company Profile - IRAN Linked InFirst Resort Group FZ LLC - Company Profile - IRAN Linked In
First Resort Group FZ LLC - Company Profile - IRAN Linked In
 
Right Turn e Design - BNI 8 Min Presentation
Right Turn e Design - BNI 8 Min Presentation Right Turn e Design - BNI 8 Min Presentation
Right Turn e Design - BNI 8 Min Presentation
 
Txesus Zubiate | landscape version portfolio
Txesus Zubiate | landscape version portfolioTxesus Zubiate | landscape version portfolio
Txesus Zubiate | landscape version portfolio
 
E posters
E postersE posters
E posters
 
Boletin de novas incorporacións na biblioteca da deputación da coruña. marzo ...
Boletin de novas incorporacións na biblioteca da deputación da coruña. marzo ...Boletin de novas incorporacións na biblioteca da deputación da coruña. marzo ...
Boletin de novas incorporacións na biblioteca da deputación da coruña. marzo ...
 
Robotic JavaScript
Robotic JavaScriptRobotic JavaScript
Robotic JavaScript
 
Formulario proyectos de_aula
Formulario proyectos de_aulaFormulario proyectos de_aula
Formulario proyectos de_aula
 
L’oroneta i el rei
L’oroneta i el reiL’oroneta i el rei
L’oroneta i el rei
 
Einblicke in die Zukunft von Big Data
Einblicke in die Zukunft von Big DataEinblicke in die Zukunft von Big Data
Einblicke in die Zukunft von Big Data
 
Cyber Insurance
Cyber InsuranceCyber Insurance
Cyber Insurance
 
International Librarians Network: peer mentoring para bibliotecarios
International Librarians Network: peer mentoring para bibliotecariosInternational Librarians Network: peer mentoring para bibliotecarios
International Librarians Network: peer mentoring para bibliotecarios
 
Diamantes 500 - Oportunidad de Negocio
Diamantes 500 - Oportunidad de NegocioDiamantes 500 - Oportunidad de Negocio
Diamantes 500 - Oportunidad de Negocio
 

Ähnlich wie Escalabilidad y arquitectura de un juego móvil multimillonario

Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web EscalableAlex Puig
 
Introducción a la computación
Introducción a la computaciónIntroducción a la computación
Introducción a la computaciónYaskelly Yedra
 
Diccionario informatico grado 9 noveno
Diccionario informatico grado 9 novenoDiccionario informatico grado 9 noveno
Diccionario informatico grado 9 novenoEl Pacha Caamaño
 
Diccionario informático UPTC DARIOSAR
Diccionario informático UPTC DARIOSARDiccionario informático UPTC DARIOSAR
Diccionario informático UPTC DARIOSAREl Pacha Caamaño
 
Caracteristicas de los s.o
Caracteristicas de los s.oCaracteristicas de los s.o
Caracteristicas de los s.oadrismp
 
Desarrollo de las pc.ppt
Desarrollo de las pc.pptDesarrollo de las pc.ppt
Desarrollo de las pc.pptvaradir1983
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Jazmin Glez.
 
Características de 10 lenguajes de programación
Características de 10 lenguajes de programaciónCaracterísticas de 10 lenguajes de programación
Características de 10 lenguajes de programaciónAlexa Chisaguano
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoBig Data Spain
 
Diccionario tecnico en sistemas maria camila
Diccionario tecnico en sistemas maria camilaDiccionario tecnico en sistemas maria camila
Diccionario tecnico en sistemas maria camiladecimosistemas2018
 
Mi diccionario de informatica
Mi diccionario de informaticaMi diccionario de informatica
Mi diccionario de informaticaDORISDIAZ70
 
Pablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open DataPablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open DataSmash Tech
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datosMarlene Torres
 
Tipos de Sistemas Operativos.pptx
Tipos de Sistemas Operativos.pptxTipos de Sistemas Operativos.pptx
Tipos de Sistemas Operativos.pptxsnoobydoo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativorosadmd11
 

Ähnlich wie Escalabilidad y arquitectura de un juego móvil multimillonario (20)

Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web Escalable
 
Introducción a la computación
Introducción a la computaciónIntroducción a la computación
Introducción a la computación
 
Diccionario informatico grado 9 noveno
Diccionario informatico grado 9 novenoDiccionario informatico grado 9 noveno
Diccionario informatico grado 9 noveno
 
Diccionario informático UPTC DARIOSAR
Diccionario informático UPTC DARIOSARDiccionario informático UPTC DARIOSAR
Diccionario informático UPTC DARIOSAR
 
Caracteristicas de los s.o
Caracteristicas de los s.oCaracteristicas de los s.o
Caracteristicas de los s.o
 
Desarrollo de las pc.ppt
Desarrollo de las pc.pptDesarrollo de las pc.ppt
Desarrollo de las pc.ppt
 
Ccna l
Ccna lCcna l
Ccna l
 
Ccna l
Ccna lCcna l
Ccna l
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
 
Características de 10 lenguajes de programación
Características de 10 lenguajes de programaciónCaracterísticas de 10 lenguajes de programación
Características de 10 lenguajes de programación
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén Casado
 
Diccionario tecnico en sistemas maria camila
Diccionario tecnico en sistemas maria camilaDiccionario tecnico en sistemas maria camila
Diccionario tecnico en sistemas maria camila
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
Mi diccionario de informatica
Mi diccionario de informaticaMi diccionario de informatica
Mi diccionario de informatica
 
Pablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open DataPablo Doval | Plain Concepts | Open Data
Pablo Doval | Plain Concepts | Open Data
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
Tipos de Sistemas Operativos.pptx
Tipos de Sistemas Operativos.pptxTipos de Sistemas Operativos.pptx
Tipos de Sistemas Operativos.pptx
 
Introducción y componenetes del sistema operativo
Introducción y componenetes del sistema operativoIntroducción y componenetes del sistema operativo
Introducción y componenetes del sistema operativo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 

Mehr von betabeers

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)betabeers
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lagebetabeers
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavillabetabeers
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbaobetabeers
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu appbetabeers
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)betabeers
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)betabeers
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)betabeers
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)betabeers
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Usobetabeers
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startupbetabeers
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.betabeers
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización webbetabeers
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrumbetabeers
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottambetabeers
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTbetabeers
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015betabeers
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015betabeers
 

Mehr von betabeers (20)

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataforma
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lage
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Uso
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startup
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización web
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrum
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottam
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoT
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
 

Escalabilidad y arquitectura de un juego móvil multimillonario

  • 1.
  • 3.
  • 5. ü 1 Million Daily Active Users ü 39 million people have played it!! ü 50 million dragons sold! ü 0.8 M Daily Active Users ü 300.000 attacks per hour!! ü 8 languages ü 6M Daily Active Users ü 16 Billion of requests sent! ü 20 Billion of dragon bred!
  • 6.
  • 7. 7   February  2013   March  2013   1-­‐  Mobile  &  Canvas   Full  Xpla;orm   2-­‐  Mobile  &  Canvas   Full  Xpla;orm   Q2  2013   Q3  2013  
  • 8.
  • 9. ü Tráfico  muy  elevado:  7M+  DAU,  250K  concurrentes   ü Ra>o  R/W  en  DB  muy  bajo   ü Tráfico  worldwide   24x365  sin  down>me   ü Análisis  de  datos  diario     +  análisis  realKme   ü Frontend:  Tiene  que  rendir   bien  con  pcs  an>guos  
  • 10. Facebook  Client   Adobe  Flash   iOS  Client   C++   Analy>cs  /  Backoffice  Tools   PHP/Symfony2   Object  DB   Percona  Shards   Sessions,  Locks   Redis  Shards   Logs  Queues   Redis  Shards   Async  Queues   Redis  Shards   Log  Consumers   Python   Async  Processors   Python   User  logs   Cassandra   Logs  Database   Amazon  S3   Analy>cs  Database   Amazon  RedshiS   Backend   PHP/Symfony2   TOTAL:   +  300  AWS  EC2  Servers   Real  Time  Metrics   Redis  Shards  
  • 11. Cómo  escalamos  las  bases  de  datos?  Depende..     ü Percona  y  Redis:  sharding  =  repar>r  objetos  horizontalmente   ü Cassandra  y  AWS  Redshi[:  Escalado  “automáKco”  J   Las  caches  solo  escalan  las  lecturas  
  • 12. Como  escalamos  la  capa  de  aplicación?   ü Añadiendo  nodos  a  un  Load  Balancer,  a  un  worker  group,  …   ü AWS  Auto  Scaling  se  encarga  de  añadir  y  quitar  sevidores,   monitorizando  la  carga,  el  tamaño  de  la  cola,  …   Load  Balancer   Queue   Server   Server   Server  …   AWS  AUTO  SCALING   requests   Server   Server   Server  …   messages   AWS  AUTO  SCALING  
  • 13. Facebook  canvas:  Flash  -­‐  máximo  equilibrio  entre   compa>bilidad  y  potencia   iOS  &  Android:  C++  -­‐  para  poder  reusar  código     Principal  reto:  PERFORMANCE  -­‐  El  juego  >ene  que  funcionar   con  fluidez  en  máquinas/disposi>vos  poco  potentes.  La  AI  y  las   animaciones  consumen  muchos  recursos.     Técnicas  aplicadas:  Movieclips,  VertexBuffers,  QuadBatches,   algoritmos  de  pathfinding,  …  
  • 14. PHP/Symfony2:   ü Muy  flexible:  Conjunto  de  componentes  reusables     ü Buen  performance,  poco  overhead:  uso  de  cache  en  muchos   niveles:  container,  configuración,  …   ü Standards:  Cómo  hacer  las  cosas.  Muy  bueno  para  los  equipos.   ü Uso  de  composer:  código  estructurado  en  dis>ntos  proyectos   (bundles,  componentes,  …),  uso  de  librerías,…   ü Backend  de  los  juegos  basado  en  Symfony2  
  • 15. Python     ü Lenguaje  dinámico,  muy  potente   ü MulKprocessing,  mulKthreading,  …   ü Librerías  para  sistemas:  boto,  ssh   ü La  usamos  para  los  procesos  asíncronos,  análisis,  y  para   herramientas  de  sistemas   ü Herramienta  propia  para  ges>onar  la  infraestructura  en   cloud  (AWS):  Mico,  próximamente  open  source.  
  • 16. Percona     ü Fork  de  MySQL   ü DB  muy  robusta,  fiable  y  predecible   (rendimiento  bastante  lineal)   ü No  escala:  hay  que  hacer  sharding   ü Uso  en  SP:  objetos  de  los  usuarios  (datos   más  críKcos)  guardados  en  JSON   serializados  (sin  esquema  para  no  tener   que  hacer  nunca  ALTER  TABLES).  
  • 17. Redis     ü Key-­‐value  DB  en  memoria  (el  tamaño  máximo  es  la   memoria  de  la  máquina)   ü Performance  insuperable  y  predecible   ü Complex  data  types:  sorted  sets,  hashes,  …   ü Operaciones  atómicas,  incluso  scripts  LUA  atómicos!     ü No  escala  (aún):  hay  que  hacer  sharding   ü Uso  en  SP:  rankings,  locking,  sesiones,  colas  
  • 18. Cassandra     ü Base  de  datos  NoSQL  100%  escalable     ü Estructura  column  families  &  super  column  families   adecuada  para  algunos  casos     ü Consistencia  eventual   ü Op>mizada  para  escritura     ü Ejemplo:  user  logs  (siempre  append,  pocas  lecturas)  
  • 19. Redshi[     ü Columnar  database  de  AWS   ü Necesidad  de  cargar  datos  en  bloques   ü Lecturas  y  queries  analíKcas  muy  rápidas  gracias  a  la   estructura  columnar   ü Escalable  automáKcamente  (pero  hay  que  pausar  las   escrituras)   ü Tamaño  máximo:  100x  8XL  nodes  (12  Tb  Ram,  1.6  Pb  storage)  
  • 20. Amazon  Web  Services   ü No  mantener  ni  planificar  hardware:  aumenta  la  velocidad  del   negocio     ü Pago  por  uso     ü Auto  Scaling     ü Múl>ples  availability  zones   ü Managed  components:  Load  Balancers,  DBs,  …   ü Muy  importante  tenerlo  todo  replicado  y  automaKzado:     Los  servidores  EC2  pueden  fallar  J  
  • 21. Puppet     ü Repositorio  con  la  configuración  de  todos  los  servidores:   ü Paquetes/aplicaciones  a  instalar   ü Archivos  de  configuración   ü Usuarios   ü Lenguage  propio  formado  por  clases,  resources,   parametrizables  y  reusables.  Extensible  en  ruby.   ü Los  sysadmins  cada  vez  se  dedican  más  a  programar   sistemas  (filosofia  DevOps)   ü Permite  arrancar  y  configurar  nuevos  servidores   desatendidamente  
  • 22. ü AutomaKzación:  developers  más  felices  J   ü Vagrant:  Automa>za  entornos  de  desarrollo  virtuales  (locales)   ü Jenkins:  Integración  conKnua  (automa>za  el  tes>ng,   integración,  …)   ü TesKng:  PHPUnit,  Selenium,  Mockery,  Guzzle,  …   ü Github  &  Git  Flow,  pull  requests,  code  reviews    
  • 23. ü Mejorando  convnuamente:  +  performance,  +  nuevas   tecnologías,  refactors  para  mejorar  el  código,   formaciones  internas…   ü Open  Source:  liberación  de  varios  proyectos   próximamente     ü Par>cipación  en  la  comunidad:   ü Patrocinadores  de  betabeers   ü Pla>num  sponsors  de  deSymfony  2013   ü Sponsors  de  BarcelonaJS   ü …  
  • 24. ¿Te gustaría trabajar en el sector de los videojuegos? Buscamos talento. El talento atrae al talento. www.socialpoint.es ¡GRACIAS! J