SlideShare una empresa de Scribd logo
Diciembre, 2009
El uso del Software Libre en Tuenti Escalabilidad de grandes plataformas
Tuenti en números Millones de usuarios 72 minutos por persona y día
Tuenti en números 20.000 millones de páginas vistas cada mes +20k / segundo en pico 3 millones sólo móvil cada día +2.5 millones de fotos nuevas cada día 2.500 millones de imágenes servidas  cada día (+6 Gbps, 70k / segundo en pico)
Tuenti en números +800 servidores páginas <100ms, totalmente dinámicas sin pérdida de datos sistema robusto y resistente a fallos
¿Cómo lograrlo? Escalabilidad de sistemas CPD, refrigeración, redes, planificación Escalabilidad de software ¿La más difícil? Escalabilidad de arquitectura Orquesta software y sistemas Monitorización contínua Solucionar problemas, buscar cuellos de botella, preveer ampliaciones
Pero ¿qué es escalabilidad? La escalabilidad  NO  es velocidad La escalabilidad  NO  es ni siquiera throughput De hecho, hacemos código lento ; )
Pero ¿qué es escalabilidad? La  escalabilidad  es la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos (wikipedia)
Escalabilidad vertical y horizontal Vertical: Mejores máquinas No existe para crecer por encima de la ley de Moore Horizontal: Más máquinas Es complicada ¡También se busca la escalabilidad en costes!
100% Software Libre  
Por qué Software Libre Conocimiento Conocer tus herramientas al detalle Poderlas mejorar, depurar, corregir No reinventar la rueda Poderlas monitorizar Es un capital de la empresa Pequeñas piezas independientes, no grandes aplicaciones No vendor lock-in ¡No hay alternativas!
PHP Espíritu de HTTP: Cada petición es independiente Fácil de programar y evolucionar Flexible y ampliable Fácil de desplegar Ligero Velocidad aceptable
MySQL Rápida Fiable No necesitamos nada extra, prácticamente es un almacén de bytes No perder de vista forks como Drizzle
Memcache (y otros Key-Value) Proporciona cache: Básico para escalar Rápido Rápido Rápido Se puede utilizar como una capa de almacenamiento más.
Graphics Magick Gran rapidez Multicore Múltiples formatos
eJabberd Fácil de extender Protocolo estándar XMPP Erlan, ergo escalable
IPVS y Ldirector Muy rápido y escalable Direct Routing Ldirector puede dar quebraderos de cabeza
rrdtool Casi un estándar para gráficas de monitorización Rápido Tamaño constante de la DB Un buen gráfico sirve de alerta preventiva
Escalabilidad, paso a paso (1) El principio Uno o pocos servidores para toda la aplicación Estructura monolítica Cuello de botella: lectura de base de datos
Escalabilidad, paso a paso (2) Replicación Arquitectura maestro / esclavo División de lecturas y escrituras Configuraciones optimizadas Cuello de botella: lectura de base de datos
Escalabilidad, paso a paso (3) Memcache Cambiamos accesos pesados a BBDD por accesos ligeros a caché Reducción brutal de carga en BBDD Una página típica tiene 0 - 5 queries, y 100+ accesos a Memcached Cuello de botella: Escrituras en la base de datos
Escalabilidad, paso a paso (4) Separación de datos División del esquema en bloques lógicos Un cluster por cada tipo de dato Más complicado de gestionar en código Cuello de botella: sobrecarga en un tipo de datos
Escalabilidad, paso a paso (5) Particionado de datos Dividir una sola tabla en trozos y ubicarlos en varios clusters Escalabilidad casi sin límites No es gratis - aumenta la cantidad de código de soporte Cuello de botella: volumen de datos
Escalabilidad, paso a paso (6) Archivado de datos Almacenar datos que se usan con menor frecuencia en soportes alternativos Mantiene el tamaño de las tablas principales dentro de límites manejables Flexibilidad a la hora de escoger el soporte alternativo
Escalabilidad, paso a paso (7) Particionado de memcache El particionado no se tiene que limitar a bases de datos Memcacheds y frontales particionados Mejora el rendimiento de red interna Esquema cruzado entre memcached y base de datos
Escalabilidad, paso a paso (8) Consistencia eventual Cache como un storage más. Cero consultas a DB Actualización tras cambios Paginación en cache Problemas Consistencia Race conditions Concurrencia Memcache como Storage
Escalabilidad, paso a paso (9) Client Side Routing Balanceadores
Pruebas de escalabilidad Tremendamente difícil de probar Pruebas sintéticas Análisis de consultas SQL, claves de MC Experiencia Dark launch Desactivación parcial, ratios, reducción de listados...
Más allá de tus servidores (1) Content Delivery Networks ¡Todos utilizan software libre! Coste &quot;bajo&quot; Utilizar varios Mover tráfico entre ellos según rendimiento Según tipo de contenido y requisitos Rendimiento muy variable (cold servers, hit ratio)
Más allá de tus servidores (2) Aprovechar la AJAX y la web 2.0 para algo más que Marketing: Client side routing Client side caching Prefetch Reducir BW transfiriendo sólo datos y sólo cambios Mediciones de rendimiento
Escalabilidad de aplicaciones web Mover la aplicación lo más cerca posible del navegador ¡El javascript es lo que más escala!
   
Escalabilidad de aplicaciones web Mover la aplicación lo más cerca posible del navegador ¡El javascript es lo que más escala! (excepto IE) El resto a los frontales Menos base de datos: Deja de ser relacional Un storage más Cache como storage layer Más aplicación: Relacionar datos Mantener consistencia Manejar los diferentes storage Migrar datos (somos 24/7) No monolítica, pequeñas piezas, como el SL
gracias http://jobs.tuenti.com

Más contenido relacionado

PPTX
Bases de datos
PPTX
Arquitecturas Escalables para Aplicaciones Web - Egdares Futch, UNITEC
PPTX
Base de Datos - Microsoft SQLserver
PPTX
Cassandra Instalacion y Utilizacion
PPTX
Bases de datos_Arturo Aldana Reyes
PDF
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
PPTX
Base de datos
PPTX
Act4 avalos hernandez luz martina
Bases de datos
Arquitecturas Escalables para Aplicaciones Web - Egdares Futch, UNITEC
Base de Datos - Microsoft SQLserver
Cassandra Instalacion y Utilizacion
Bases de datos_Arturo Aldana Reyes
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
Base de datos
Act4 avalos hernandez luz martina

La actualidad más candente (20)

PPTX
DynamoDB, análisis del paper.
PPTX
Presentacion
PPTX
Bases de datos
PDF
Polybase
PPTX
Microsoft sql-server
PDF
Bases de Datos NoSQL - Riak
PPTX
Principales bases de datos existentes
PDF
In memory
PPTX
Tipos de base de datos
PPTX
SQL Server sobre Microsoft Azure (IaaS)
PDF
Query store
PPTX
Bases de datos
PDF
Novedades en SQL Azure V12
PDF
Copias de seguridad y recuperación de desastres
PDF
Streaming data, datos que entran por los que van saliendo
PPTX
No sql la nueva era
PPTX
Casos de bodegas de datos con SQL Server
PPSX
Trabajo bd-perez
PPTX
SQL Server 2016 Tablas en Memoria
PPSX
Principales bases de datos
DynamoDB, análisis del paper.
Presentacion
Bases de datos
Polybase
Microsoft sql-server
Bases de Datos NoSQL - Riak
Principales bases de datos existentes
In memory
Tipos de base de datos
SQL Server sobre Microsoft Azure (IaaS)
Query store
Bases de datos
Novedades en SQL Azure V12
Copias de seguridad y recuperación de desastres
Streaming data, datos que entran por los que van saliendo
No sql la nueva era
Casos de bodegas de datos con SQL Server
Trabajo bd-perez
SQL Server 2016 Tablas en Memoria
Principales bases de datos
Publicidad

Destacado (6)

PDF
Desconferencia Barcamp Cali 2009 - Ingeniería de Software
PDF
Introducción a XAML y MVVM
PPT
Arquitectura Monolítica
PDF
Arquitectura De Software Para Dummies
PDF
Ingenieria De Software Para Dummies
PDF
Escalado y Replicación en MySQL
Desconferencia Barcamp Cali 2009 - Ingeniería de Software
Introducción a XAML y MVVM
Arquitectura Monolítica
Arquitectura De Software Para Dummies
Ingenieria De Software Para Dummies
Escalado y Replicación en MySQL
Publicidad

Similar a Software Libre Y Escalabilidad (20)

PPT
Softonic Labs - Web Escalable
PDF
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
PPT
Arquitecturas Escalables de Web
PDF
Optimización de aplicaciones web con base de datos NoSQL In-Memory
ODP
Matías Montes: Optimización y Escalabilidad
PDF
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
PDF
Construcción de Aplicaciones de Avanzada con Geo-Distribución
PPTX
SGBD Y TECNOLOGIAS
PPTX
Sgbd y tecnologias
ODP
Desarrollo en la nube
PDF
Flisol 2011 alta disponibilidad y alto desempeño
PDF
Tecnologías para microservicios
PDF
Escalabilidad y alto rendimiento con Symfony2
PPT
Software libre y el mercado en Internet
PPSX
Proyecto multicapa
PDF
NFC-Conexiones remotas a bases de datos
PDF
Rendimiento Drupal
KEY
Ruby on Rails en Grandes Companias, Casos Reales
PDF
Plataformas de hosting en la nube
DOCX
Implementacion exitosa soa
Softonic Labs - Web Escalable
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Arquitecturas Escalables de Web
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Matías Montes: Optimización y Escalabilidad
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
Construcción de Aplicaciones de Avanzada con Geo-Distribución
SGBD Y TECNOLOGIAS
Sgbd y tecnologias
Desarrollo en la nube
Flisol 2011 alta disponibilidad y alto desempeño
Tecnologías para microservicios
Escalabilidad y alto rendimiento con Symfony2
Software libre y el mercado en Internet
Proyecto multicapa
NFC-Conexiones remotas a bases de datos
Rendimiento Drupal
Ruby on Rails en Grandes Companias, Casos Reales
Plataformas de hosting en la nube
Implementacion exitosa soa

Último (20)

PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PDF
capacitación de aire acondicionado Bgh r 410
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
Diapositiva proyecto de vida, materia catedra
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PDF
clase auditoria informatica 2025.........
PDF
CyberOps Associate - Cisco Networking Academy
PDF
Maste clas de estructura metálica y arquitectura
SAP Transportation Management para LSP, TM140 Col18
historia_web de la creacion de un navegador_presentacion.pptx
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
capacitación de aire acondicionado Bgh r 410
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
El-Gobierno-Electrónico-En-El-Estado-Bolivia
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
introduccion a las_web en el 2025_mejoras.ppt
MANUAL de recursos humanos para ODOO.pdf
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Diapositiva proyecto de vida, materia catedra
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Presentación PASANTIAS AuditorioOO..pptx
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
clase auditoria informatica 2025.........
CyberOps Associate - Cisco Networking Academy
Maste clas de estructura metálica y arquitectura

Software Libre Y Escalabilidad

  • 2. El uso del Software Libre en Tuenti Escalabilidad de grandes plataformas
  • 3. Tuenti en números Millones de usuarios 72 minutos por persona y día
  • 4. Tuenti en números 20.000 millones de páginas vistas cada mes +20k / segundo en pico 3 millones sólo móvil cada día +2.5 millones de fotos nuevas cada día 2.500 millones de imágenes servidas  cada día (+6 Gbps, 70k / segundo en pico)
  • 5. Tuenti en números +800 servidores páginas <100ms, totalmente dinámicas sin pérdida de datos sistema robusto y resistente a fallos
  • 6. ¿Cómo lograrlo? Escalabilidad de sistemas CPD, refrigeración, redes, planificación Escalabilidad de software ¿La más difícil? Escalabilidad de arquitectura Orquesta software y sistemas Monitorización contínua Solucionar problemas, buscar cuellos de botella, preveer ampliaciones
  • 7. Pero ¿qué es escalabilidad? La escalabilidad  NO es velocidad La escalabilidad  NO  es ni siquiera throughput De hecho, hacemos código lento ; )
  • 8. Pero ¿qué es escalabilidad? La  escalabilidad  es la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos (wikipedia)
  • 9. Escalabilidad vertical y horizontal Vertical: Mejores máquinas No existe para crecer por encima de la ley de Moore Horizontal: Más máquinas Es complicada ¡También se busca la escalabilidad en costes!
  • 11. Por qué Software Libre Conocimiento Conocer tus herramientas al detalle Poderlas mejorar, depurar, corregir No reinventar la rueda Poderlas monitorizar Es un capital de la empresa Pequeñas piezas independientes, no grandes aplicaciones No vendor lock-in ¡No hay alternativas!
  • 12. PHP Espíritu de HTTP: Cada petición es independiente Fácil de programar y evolucionar Flexible y ampliable Fácil de desplegar Ligero Velocidad aceptable
  • 13. MySQL Rápida Fiable No necesitamos nada extra, prácticamente es un almacén de bytes No perder de vista forks como Drizzle
  • 14. Memcache (y otros Key-Value) Proporciona cache: Básico para escalar Rápido Rápido Rápido Se puede utilizar como una capa de almacenamiento más.
  • 15. Graphics Magick Gran rapidez Multicore Múltiples formatos
  • 16. eJabberd Fácil de extender Protocolo estándar XMPP Erlan, ergo escalable
  • 17. IPVS y Ldirector Muy rápido y escalable Direct Routing Ldirector puede dar quebraderos de cabeza
  • 18. rrdtool Casi un estándar para gráficas de monitorización Rápido Tamaño constante de la DB Un buen gráfico sirve de alerta preventiva
  • 19. Escalabilidad, paso a paso (1) El principio Uno o pocos servidores para toda la aplicación Estructura monolítica Cuello de botella: lectura de base de datos
  • 20. Escalabilidad, paso a paso (2) Replicación Arquitectura maestro / esclavo División de lecturas y escrituras Configuraciones optimizadas Cuello de botella: lectura de base de datos
  • 21. Escalabilidad, paso a paso (3) Memcache Cambiamos accesos pesados a BBDD por accesos ligeros a caché Reducción brutal de carga en BBDD Una página típica tiene 0 - 5 queries, y 100+ accesos a Memcached Cuello de botella: Escrituras en la base de datos
  • 22. Escalabilidad, paso a paso (4) Separación de datos División del esquema en bloques lógicos Un cluster por cada tipo de dato Más complicado de gestionar en código Cuello de botella: sobrecarga en un tipo de datos
  • 23. Escalabilidad, paso a paso (5) Particionado de datos Dividir una sola tabla en trozos y ubicarlos en varios clusters Escalabilidad casi sin límites No es gratis - aumenta la cantidad de código de soporte Cuello de botella: volumen de datos
  • 24. Escalabilidad, paso a paso (6) Archivado de datos Almacenar datos que se usan con menor frecuencia en soportes alternativos Mantiene el tamaño de las tablas principales dentro de límites manejables Flexibilidad a la hora de escoger el soporte alternativo
  • 25. Escalabilidad, paso a paso (7) Particionado de memcache El particionado no se tiene que limitar a bases de datos Memcacheds y frontales particionados Mejora el rendimiento de red interna Esquema cruzado entre memcached y base de datos
  • 26. Escalabilidad, paso a paso (8) Consistencia eventual Cache como un storage más. Cero consultas a DB Actualización tras cambios Paginación en cache Problemas Consistencia Race conditions Concurrencia Memcache como Storage
  • 27. Escalabilidad, paso a paso (9) Client Side Routing Balanceadores
  • 28. Pruebas de escalabilidad Tremendamente difícil de probar Pruebas sintéticas Análisis de consultas SQL, claves de MC Experiencia Dark launch Desactivación parcial, ratios, reducción de listados...
  • 29. Más allá de tus servidores (1) Content Delivery Networks ¡Todos utilizan software libre! Coste &quot;bajo&quot; Utilizar varios Mover tráfico entre ellos según rendimiento Según tipo de contenido y requisitos Rendimiento muy variable (cold servers, hit ratio)
  • 30. Más allá de tus servidores (2) Aprovechar la AJAX y la web 2.0 para algo más que Marketing: Client side routing Client side caching Prefetch Reducir BW transfiriendo sólo datos y sólo cambios Mediciones de rendimiento
  • 31. Escalabilidad de aplicaciones web Mover la aplicación lo más cerca posible del navegador ¡El javascript es lo que más escala!
  • 32.    
  • 33. Escalabilidad de aplicaciones web Mover la aplicación lo más cerca posible del navegador ¡El javascript es lo que más escala! (excepto IE) El resto a los frontales Menos base de datos: Deja de ser relacional Un storage más Cache como storage layer Más aplicación: Relacionar datos Mantener consistencia Manejar los diferentes storage Migrar datos (somos 24/7) No monolítica, pequeñas piezas, como el SL