Social Point

24

description

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

Transcript of Social Point

Page 1: Social Point
Page 2: Social Point

 

 

Page 3: Social Point
Page 4: Social Point

4  

Page 5: Social Point

ü 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!

Page 6: Social Point
Page 7: Social Point

7  

February  2013   March  2013   1-­‐  Mobile  &  Canvas  Full  Xpla;orm  

2-­‐  Mobile  &  Canvas  Full  Xpla;orm  

Q2  2013   Q3  2013  

Page 8: Social Point
Page 9: Social Point

ü 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  

Page 10: Social Point

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  

Page 11: Social Point

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  

Page 12: Social Point

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  

Page 13: Social Point

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,  …  

Page 14: Social Point

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  

Page 15: Social Point

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.  

Page 16: Social Point

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).  

Page 17: Social Point

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  

Page 18: Social Point

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)  

Page 19: Social Point

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)  

Page 20: Social Point

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  

Page 21: Social Point

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  

Page 22: Social Point

ü 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    

Page 23: Social Point

ü 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  ü …  

Page 24: Social Point

¿Te gustaría trabajar en el sector de los videojuegos?

Buscamos talento. El talento atrae al talento.

www.socialpoint.es

¡GRACIAS! J