4	  
ü 1 Million Daily ActiveUsersü 39 million people haveplayed it!!ü 50 milliondragonssold!ü 0.8 M Daily Active Usersü 3...
7	  February	  2013	   March	  2013	   1-­‐	  Mobile	  &	  Canvas	  Full	  Xpla;orm	  2-­‐	  Mobile	  &	  Canvas	  Full	  ...
ü Tráfico	  muy	  elevado:	  7M+	  DAU,	  250K	  concurrentes	  ü Ra>o	  R/W	  en	  DB	  muy	  bajo	  ü Tráfico	  worldwi...
Facebook	  Client	  Adobe	  Flash	  iOS	  Client	  C++	  Analy>cs	  /	  Backoffice	  Tools	  PHP/Symfony2	  Object	  DB	  Pe...
Cómo	  escalamos	  las	  bases	  de	  datos?	  Depende..	  	  ü Percona	  y	  Redis:	  sharding	  =	  repar>r	  objetos	 ...
Como	  escalamos	  la	  capa	  de	  aplicación?	  ü Añadiendo	  nodos	  a	  un	  Load	  Balancer,	  a	  un	  worker	  gro...
Facebook	  canvas:	  Flash	  -­‐	  máximo	  equilibrio	  entre	  compa>bilidad	  y	  potencia	  iOS	  &	  Android:	  C++	 ...
PHP/Symfony2:	  ü Muy	  flexible:	  Conjunto	  de	  componentes	  reusables	  	  ü Buen	  performance,	  poco	  overhead:...
Python	  	  ü Lenguaje	  dinámico,	  muy	  potente	  ü MulKprocessing,	  mulKthreading,	  …	  ü Librerías	  para	  sist...
Percona	  	  ü Fork	  de	  MySQL	  ü DB	  muy	  robusta,	  fiable	  y	  predecible	  (rendimiento	  bastante	  lineal)	  ...
Redis	  	  ü Key-­‐value	  DB	  en	  memoria	  (el	  tamaño	  máximo	  es	  la	  memoria	  de	  la	  máquina)	  ü Perfor...
Cassandra	  	  ü Base	  de	  datos	  NoSQL	  100%	  escalable	  	  ü Estructura	  column	  families	  &	  super	  column...
Redshi[	  	  ü Columnar	  database	  de	  AWS	  ü Necesidad	  de	  cargar	  datos	  en	  bloques	  ü Lecturas	  y	  que...
Amazon	  Web	  Services	  ü No	  mantener	  ni	  planificar	  hardware:	  aumenta	  la	  velocidad	  del	  negocio	  	  ü...
Puppet	  	  ü Repositorio	  con	  la	  configuración	  de	  todos	  los	  servidores:	  ü Paquetes/aplicaciones	  a	  ins...
ü AutomaKzación:	  developers	  más	  felices	  J	  ü Vagrant:	  Automa>za	  entornos	  de	  desarrollo	  virtuales	  (...
ü Mejorando	  convnuamente:	  +	  performance,	  +	  nuevas	  tecnologías,	  refactors	  para	  mejorar	  el	  código,	  ...
¿Te gustaría trabajar en el sector de los videojuegos?Buscamos talento. El talento atrae al talento.www.socialpoint.es¡GRA...
Social Point
Social Point
Social Point
Social Point
Upcoming SlideShare
Loading in...5
×

Social Point

349

Published on

Presentación de social point en betabeers madrid, 26 abril 2013.

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
349
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Social Point

  1. 1.    
  2. 2. 4  
  3. 3. ü 1 Million Daily ActiveUsersü 39 million people haveplayed it!!ü 50 milliondragonssold!ü 0.8 M Daily Active Usersü 300.000 attacks perhour!!ü 8 languagesü 6M Daily Active Usersü 16 Billion of requestssent!ü 20 Billion ofdragonbred!
  4. 4. 7  February  2013   March  2013   1-­‐  Mobile  &  Canvas  Full  Xpla;orm  2-­‐  Mobile  &  Canvas  Full  Xpla;orm  Q2  2013   Q3  2013  
  5. 5. ü 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  
  6. 6. 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  
  7. 7. 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  
  8. 8. 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  
  9. 9. 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,  …  
  10. 10. 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  
  11. 11. 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.  
  12. 12. 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).  
  13. 13. 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  
  14. 14. 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)  
  15. 15. 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)  
  16. 16. 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  
  17. 17. 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  
  18. 18. ü 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    
  19. 19. ü 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  ü …  
  20. 20. ¿Te gustaría trabajar en el sector de los videojuegos?Buscamos talento. El talento atrae al talento.www.socialpoint.es¡GRACIAS! J
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×