SlideShare uma empresa Scribd logo
1 de 31
Arquitecturas Escalables para
Aplicaciones en el Web




         Egdares   Futch H.
          Junio      2009
   Pensemos en un supermercado, con
    múltiples filas y múltiples cajeros.

                               Frustraciones
                               Filas “lentas”
                               Throughput impredecible

                               ¿Y la “Caja Rápida”?
   Ahora pensemos en un banco, donde hay
    una sola fila y varios cajeros

                            Mayor satisfacción
                            Una transacción “lenta” no
                            detiene otras
                            Mayor throughput

                            ¿Cuál es la diferencia?

                            ARQUITECTURA
Un gran banco local tiene:

200 sucursales
5 cajeros en cada sucursal
80 ATMs
0.3 transacción/min por cajero/ATM

De 9AM a 7PM procesa:
324 transacciones por minuto
5.4 transacciones/segundo

¿De 7PM a 9AM ?
Una universidad pública local tiene:

8 campus
5,000 estudiantes en cada campus
5 cursos trimestrales / estudiante
2,000 cursos en oferta académica
50 estudiantes por curso

Durante el período de registro
trimestral, que dura 7 días, se procesan:

50 estudiantes/segundo
2.5 segundos de tiempo de
procesamiento/estudiante
Cola de 12 transacciones => Espera de 30
segundos
Para ir a:
•Mi banco
•Mi universidad
•Mi periódico
•Sitios de un país vecino

¡Tengo que pasar por Miami!

Pocos acuerdo de “peering” entre ISP locales
¿Conectividad local más cara que la internacional?
   Caso TuBabel
     2,993 visitas/día equivale a 1 visita cada 28
      segundos
     8,987 consultas/día


   Caso Flickr
     40,000 fotos/segundo!
     130,000 consultas/segundo!
   No hablaremos de especificaciones
    técnicas, como memoria, procesador, etc.

   Nos referimos al conjunto de elementos de
    red, computadoras, aplicaciones y sistemas
    operativos que soportan una aplicación Web.
¡A veces, tendemos a no
                  separar en capas
                  nuestras aplicaciones!    Almacenamiento



Usuarios vienen                             Cache
de la “nube”

                   Servidor de    Base de    AJAX
                   aplicaciones   datos
   La existencia de picos de trabajo (peak
    workloads) hace que determinar un diseño
    óptimo de arquitectura para aplicaciones
    Web sea difícil.
     Día de pago
     Semana de matrícula
     Después de que ganó la Selección Nacional
     Cuando pasa el temblor (8)
 Un servidor web, con scripting del lado del
  servidor, conectado a Internet por un canal E1.
 Mediciones muestran lo siguiente:
     5 mseg para procesar el HTTP request (240 bytes)
     40 mseg para correr el script
     5 mseg para responder (5,120 bytes)
   Demanda de servicio CPU = 5 + 40 +5 = 0.050 seg
   Demanda del canal inbound = 240*8 / 2,097,152 = 0.00091
    seg
   Demanda del canal de salida = 5,120*8 / 2,097,152 = 0.019
    seg
   Atendemos un máximo de 20 transacciones/seg
   En un servidor de $10,000, nos cuesta $8.33 cada transacción
   ¿Qué tal si ahora le hacemos un lindo menú
    en Flash, o agregamos botones animados en
    DHTML, o usamos AJAX para una mejor
    interacción?

   Blipea.com necesita 272.5K la primera vez
    (cache miss) ó 150K al refrescar (cache hit)
   Demanda de servicio CPU = 5 + 40 +5 = 0.050 seg
   Demanda del canal inbound = 240*8 / 2,097,152
    = 0.00091 seg
   Demanda del canal de salida = 150,000*8 /
    2,097,152 = 0.57 seg
   Es decir que, ahora podemos atender
    únicamente dos transacciones por segundo (al
    refrescar)
   El CPU está muerto de risa
   El canal está muerto de capacidad
   Twitter = 200 tweets / segundo

   NASDAQ = 35,000 mensajes /segundo

   Google = 46,000 API calls / segundo
OK, lo entiendo. ¿Ahora qué?
Escalabilidad
   Si
     Soportar incremento en tráfico
     Soportar incremento en la data
     Henderson dice: “que además sea fácil de
     mantener”

   No
     Velocidad pura
     Una tecnología particular
   Escalabilidad vertical
     Crecimiento de cajas
     Un servidor pequeño, luego un servidor quad
      core, luego un servidor multicore, luego ….
     Fácil! Pero limitada en cierta medida

   Escalabilidad Horizontal
     Más cajas
     Balanceo de cargas
     Difícil! Pero crecimiento ilimitado
   Recordemos nuestra arquitectura inicial


                                       Almacenamiento



                                       Cache


              Servidor de    Base de    AJAX
              aplicaciones   datos
   Manejo de sesiones
     Stateless, similar a NFS, cookies “pesadas”


   Balanceo de cargas
     Simple: DNS round-robin
     Hardware: Múltiples *.* de red
     Software: Perlbal, Pound
     Más allá: Balanceo Geográfico de Cargas (Global)
   Bases de datos
     En general, el tema de mejora de base de datos en una
      aplicación Web escala verticalmente
     Sin embargo, las aplicaciones Web tienen una proporción
      80-90% de lecturas vs. escrituras
     En ese caso, podemos usar replicación y distribución de
      datos
     Y un tabú: denormalización
   Caching
     Mantener copias de objetos frecuentemente
      usados hace la escalabilidad menos necesaria o
      por lo menos más barata
     Redes de Distribución de contenido


   Alta disponibilidad
     Identificar Puntos Únicos de Falla
     Eliminarlos
   Una aplicación Web es más que
    presentación, usabilidad , genialidad, o
    aplicabilidad.

   Se suma la arquitectura con la que haya sido
    diseñada.

   Actualmente es un arte, aprendido de los
    sitios más exitosos del Internet.
   Tratar de diseñar para escalar linealmente
    añadiendo hardware
   Balancear cargas entre grupos de
    componentes
   Diseñar pensando en redundancia y
    tolerancia a fallas

   Algo importante: métricas y estadísticas
    proveen visión de qué sucede en nuestra
    aplicación
Scaling for E-Business
Menasce y Almeida




              Building Scalable Web Sites
              Henderson




                               High Performance Web Sites
                               Souders
efutch@gmail.com
www.blipea.com/perfil/efutch
www.twitter.com/efutch
http://efutch.blogspot.com
http://maestros.unitec.edu/~efutch

Mais conteúdo relacionado

Mais procurados

Industria 4.0 Cloud computing
Industria 4.0 Cloud computingIndustria 4.0 Cloud computing
Industria 4.0 Cloud computingAula Cloud
 
Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)
Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)
Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)Leandro Guerra
 
Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020Maximiliano Firtman
 
eShow Barcelona - WordPress Hiperescala
eShow Barcelona - WordPress HiperescalaeShow Barcelona - WordPress Hiperescala
eShow Barcelona - WordPress HiperescalaEfraim Martinez
 
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
 
Computacion en nube
Computacion en nubeComputacion en nube
Computacion en nubeLuis Lopez
 
Servidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. PresentaciónServidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. Presentaciónpacvslideshare
 
Presentacion descubre como puedes migrar de servidor sin complicaciones
Presentacion descubre como puedes migrar de servidor sin complicacionesPresentacion descubre como puedes migrar de servidor sin complicaciones
Presentacion descubre como puedes migrar de servidor sin complicacionesservidoresdedic
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computingykro
 
Desarrollo en la nube
Desarrollo en la nubeDesarrollo en la nube
Desarrollo en la nubePideCurso
 
BI real time analytics
BI real time analyticsBI real time analytics
BI real time analyticsSolidQ
 
la nube de Internet
la nube de Internet la nube de Internet
la nube de Internet gabyy06
 
Nexica sonia palau---cloud-computing_para_entornos_empresariales2
Nexica sonia palau---cloud-computing_para_entornos_empresariales2Nexica sonia palau---cloud-computing_para_entornos_empresariales2
Nexica sonia palau---cloud-computing_para_entornos_empresariales2Nexica
 
La primer semana con la nube de AWS (parte1)
La primer semana con la nube de AWS (parte1)La primer semana con la nube de AWS (parte1)
La primer semana con la nube de AWS (parte1)GeneXus
 

Mais procurados (17)

Industria 4.0 Cloud computing
Industria 4.0 Cloud computingIndustria 4.0 Cloud computing
Industria 4.0 Cloud computing
 
Digital server 14
Digital server 14Digital server 14
Digital server 14
 
Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)
Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)
Datos en la nube: colas, caché, topics y otras yerbas (Code Camp Argentina 2011)
 
Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020
 
eShow Barcelona - WordPress Hiperescala
eShow Barcelona - WordPress HiperescalaeShow Barcelona - WordPress Hiperescala
eShow Barcelona - WordPress Hiperescala
 
Cliente
ClienteCliente
Cliente
 
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
 
Computacion en nube
Computacion en nubeComputacion en nube
Computacion en nube
 
Netkups
NetkupsNetkups
Netkups
 
Servidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. PresentaciónServidores web de altas prestaciones. Tema 0. Presentación
Servidores web de altas prestaciones. Tema 0. Presentación
 
Presentacion descubre como puedes migrar de servidor sin complicaciones
Presentacion descubre como puedes migrar de servidor sin complicacionesPresentacion descubre como puedes migrar de servidor sin complicaciones
Presentacion descubre como puedes migrar de servidor sin complicaciones
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Desarrollo en la nube
Desarrollo en la nubeDesarrollo en la nube
Desarrollo en la nube
 
BI real time analytics
BI real time analyticsBI real time analytics
BI real time analytics
 
la nube de Internet
la nube de Internet la nube de Internet
la nube de Internet
 
Nexica sonia palau---cloud-computing_para_entornos_empresariales2
Nexica sonia palau---cloud-computing_para_entornos_empresariales2Nexica sonia palau---cloud-computing_para_entornos_empresariales2
Nexica sonia palau---cloud-computing_para_entornos_empresariales2
 
La primer semana con la nube de AWS (parte1)
La primer semana con la nube de AWS (parte1)La primer semana con la nube de AWS (parte1)
La primer semana con la nube de AWS (parte1)
 

Destaque

Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworks
Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworksSymfony-Community: Introducción a arquitecturas de aplicaciones web y frameworks
Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworksexcedesoft
 
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...Micael Gallego
 
Capitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webCapitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webgabiar1708
 
Despliegue lamp
Despliegue lampDespliegue lamp
Despliegue lampBVela
 
5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formulariosLaura Folgado Galache
 
Empaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansEmpaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansLaura Folgado Galache
 
3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguajeLaura Folgado Galache
 
2. Manejo de la sintaxis del lenguaje
2. Manejo de la sintaxis del lenguaje2. Manejo de la sintaxis del lenguaje
2. Manejo de la sintaxis del lenguajeLaura Folgado Galache
 
1. Arquitecturas y Herramientas de Programación
1. Arquitecturas y Herramientas de Programación1. Arquitecturas y Herramientas de Programación
1. Arquitecturas y Herramientas de ProgramaciónLaura Folgado Galache
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncronaLaura Folgado Galache
 
GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016Micael Gallego
 
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserTypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
 

Destaque (20)

Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworks
Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworksSymfony-Community: Introducción a arquitecturas de aplicaciones web y frameworks
Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworks
 
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
El Aprendizaje Basado en Proyectos y la Clase Invertida para acercar el mundo...
 
Capitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_webCapitulo 3 arquitecturas_de_desarrollo_web
Capitulo 3 arquitecturas_de_desarrollo_web
 
Despliegue lamp
Despliegue lampDespliegue lamp
Despliegue lamp
 
Tipos de manuales
Tipos de manualesTipos de manuales
Tipos de manuales
 
5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios
 
Empaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con NetbeansEmpaquetado de aplicaciones Java con Netbeans
Empaquetado de aplicaciones Java con Netbeans
 
3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje
 
2. Manejo de la sintaxis del lenguaje
2. Manejo de la sintaxis del lenguaje2. Manejo de la sintaxis del lenguaje
2. Manejo de la sintaxis del lenguaje
 
1. Arquitecturas y Herramientas de Programación
1. Arquitecturas y Herramientas de Programación1. Arquitecturas y Herramientas de Programación
1. Arquitecturas y Herramientas de Programación
 
7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona7. Utilización de mecanismos de comunicación asíncrona
7. Utilización de mecanismos de comunicación asíncrona
 
2 6 validar_formularios
2 6 validar_formularios2 6 validar_formularios
2 6 validar_formularios
 
Usabilidad móvil
Usabilidad móvilUsabilidad móvil
Usabilidad móvil
 
Usabilidad web
Usabilidad webUsabilidad web
Usabilidad web
 
2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp
 
2 5 funciones_php
2 5 funciones_php2 5 funciones_php
2 5 funciones_php
 
Presentación 2018-2019
Presentación 2018-2019Presentación 2018-2019
Presentación 2018-2019
 
2 7 ficheros_php
2 7 ficheros_php2 7 ficheros_php
2 7 ficheros_php
 
GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016GRASP con PR para el SRFLP en el MAEB 2016
GRASP con PR para el SRFLP en el MAEB 2016
 
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserTypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
 

Semelhante a Arquitecturas Escalables para Aplicaciones Web - Egdares Futch, UNITEC

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
 
0086 elevator speech_tips_para_ aplicaciones
0086  elevator speech_tips_para_ aplicaciones0086  elevator speech_tips_para_ aplicaciones
0086 elevator speech_tips_para_ aplicacionesGeneXus
 
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
 
Presentaciones Sebastian Po - eCommerce IT Camp
Presentaciones Sebastian Po - eCommerce IT CampPresentaciones Sebastian Po - eCommerce IT Camp
Presentaciones Sebastian Po - eCommerce IT CampeCommerce Institute
 
Construcción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-DistribuciónConstrucción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-DistribuciónLoja Valle de Tecnología
 
Trabajo fin de master Dirección TI
Trabajo fin de master Dirección TITrabajo fin de master Dirección TI
Trabajo fin de master Dirección TIManolo Crespo
 
Flisol 2011 alta disponibilidad y alto desempeño
Flisol 2011   alta disponibilidad y alto desempeñoFlisol 2011   alta disponibilidad y alto desempeño
Flisol 2011 alta disponibilidad y alto desempeñocrio_
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryGonzalo Chacaltana
 
NoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache CassandraNoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache CassandraWladimir Cabarcas
 
Seguridad en los videojuegos - GoD Mode
Seguridad en los videojuegos - GoD ModeSeguridad en los videojuegos - GoD Mode
Seguridad en los videojuegos - GoD ModeZink Security
 
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
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Ricard Clau
 
Codecamp 2010 - Arquitecturas en la nube
Codecamp 2010 - Arquitecturas en la nubeCodecamp 2010 - Arquitecturas en la nube
Codecamp 2010 - Arquitecturas en la nubeNicolas Padula
 
Cloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la NubeCloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la NubeDavid J. Brenes
 
Analitica y toma de decisiones en tiempo real sobre plataformas big data
Analitica y toma de decisiones en tiempo real sobre plataformas big dataAnalitica y toma de decisiones en tiempo real sobre plataformas big data
Analitica y toma de decisiones en tiempo real sobre plataformas big dataJosé Carlos García Serrano
 
Presentación RodrigoPolo.com @ Barcamp Guatemala '09
Presentación RodrigoPolo.com @ Barcamp Guatemala '09Presentación RodrigoPolo.com @ Barcamp Guatemala '09
Presentación RodrigoPolo.com @ Barcamp Guatemala '09Rodrigo Polo
 

Semelhante a Arquitecturas Escalables para Aplicaciones Web - Egdares Futch, UNITEC (20)

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...
 
Avance1
Avance1Avance1
Avance1
 
0086 elevator speech_tips_para_ aplicaciones
0086  elevator speech_tips_para_ aplicaciones0086  elevator speech_tips_para_ aplicaciones
0086 elevator speech_tips_para_ aplicaciones
 
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
 
Escalabilidad de Websites
Escalabilidad de WebsitesEscalabilidad de Websites
Escalabilidad de Websites
 
Presentaciones Sebastian Po - eCommerce IT Camp
Presentaciones Sebastian Po - eCommerce IT CampPresentaciones Sebastian Po - eCommerce IT Camp
Presentaciones Sebastian Po - eCommerce IT Camp
 
Construcción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-DistribuciónConstrucción de Aplicaciones de Avanzada con Geo-Distribución
Construcción de Aplicaciones de Avanzada con Geo-Distribución
 
Trabajo fin de master Dirección TI
Trabajo fin de master Dirección TITrabajo fin de master Dirección TI
Trabajo fin de master Dirección TI
 
Flisol 2011 alta disponibilidad y alto desempeño
Flisol 2011   alta disponibilidad y alto desempeñoFlisol 2011   alta disponibilidad y alto desempeño
Flisol 2011 alta disponibilidad y alto desempeño
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
NoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache CassandraNoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache Cassandra
 
Seguridad en los videojuegos - GoD Mode
Seguridad en los videojuegos - GoD ModeSeguridad en los videojuegos - GoD Mode
Seguridad en los videojuegos - GoD Mode
 
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...
 
Oracle GG presentacion
Oracle GG presentacionOracle GG presentacion
Oracle GG presentacion
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
Codecamp 2010 - Arquitecturas en la nube
Codecamp 2010 - Arquitecturas en la nubeCodecamp 2010 - Arquitecturas en la nube
Codecamp 2010 - Arquitecturas en la nube
 
Cloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la NubeCloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la Nube
 
Bantaba
BantabaBantaba
Bantaba
 
Analitica y toma de decisiones en tiempo real sobre plataformas big data
Analitica y toma de decisiones en tiempo real sobre plataformas big dataAnalitica y toma de decisiones en tiempo real sobre plataformas big data
Analitica y toma de decisiones en tiempo real sobre plataformas big data
 
Presentación RodrigoPolo.com @ Barcamp Guatemala '09
Presentación RodrigoPolo.com @ Barcamp Guatemala '09Presentación RodrigoPolo.com @ Barcamp Guatemala '09
Presentación RodrigoPolo.com @ Barcamp Guatemala '09
 

Mais de Alejandro Corpeño

TEDx Tegucigalpa - Las Ideas nacen, crecen, se reproducen y MUEREN!
TEDx Tegucigalpa - Las Ideas nacen, crecen, se reproducen y MUEREN!TEDx Tegucigalpa - Las Ideas nacen, crecen, se reproducen y MUEREN!
TEDx Tegucigalpa - Las Ideas nacen, crecen, se reproducen y MUEREN!Alejandro Corpeño
 
¿De Idea a Producto en 30 días?
¿De Idea a Producto en 30 días? ¿De Idea a Producto en 30 días?
¿De Idea a Producto en 30 días? Alejandro Corpeño
 
Cómo proyectar tu producto fuera del país
Cómo proyectar tu producto fuera del paísCómo proyectar tu producto fuera del país
Cómo proyectar tu producto fuera del paísAlejandro Corpeño
 
Class.io webinar - Google Apps for Education
Class.io webinar - Google Apps for EducationClass.io webinar - Google Apps for Education
Class.io webinar - Google Apps for EducationAlejandro Corpeño
 
WebConfLatino Panamá: Intro por Alejandro Corpeño
WebConfLatino Panamá: Intro por Alejandro CorpeñoWebConfLatino Panamá: Intro por Alejandro Corpeño
WebConfLatino Panamá: Intro por Alejandro CorpeñoAlejandro Corpeño
 
Implementando Lean Startup con KidsAbacus.com
Implementando Lean Startup con KidsAbacus.comImplementando Lean Startup con KidsAbacus.com
Implementando Lean Startup con KidsAbacus.comAlejandro Corpeño
 
Modelos actuales para emprendimiento en la web
Modelos actuales para emprendimiento en la webModelos actuales para emprendimiento en la web
Modelos actuales para emprendimiento en la webAlejandro Corpeño
 
Hacia donde van las redes sociales
Hacia donde van las redes socialesHacia donde van las redes sociales
Hacia donde van las redes socialesAlejandro Corpeño
 
Taller de "Publicidad en Facebook" por Roberto Vassaux de .FOX Networks - Web...
Taller de "Publicidad en Facebook" por Roberto Vassaux de .FOX Networks - Web...Taller de "Publicidad en Facebook" por Roberto Vassaux de .FOX Networks - Web...
Taller de "Publicidad en Facebook" por Roberto Vassaux de .FOX Networks - Web...Alejandro Corpeño
 
"Porqué Facebook es la Red Social más importante del Mundo" por Roberto Vassa...
"Porqué Facebook es la Red Social más importante del Mundo" por Roberto Vassa..."Porqué Facebook es la Red Social más importante del Mundo" por Roberto Vassa...
"Porqué Facebook es la Red Social más importante del Mundo" por Roberto Vassa...Alejandro Corpeño
 
Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.Alejandro Corpeño
 
Internet Marketing - Josue Perdomo
Internet Marketing - Josue PerdomoInternet Marketing - Josue Perdomo
Internet Marketing - Josue PerdomoAlejandro Corpeño
 

Mais de Alejandro Corpeño (18)

Blipea (vintage deck)
Blipea (vintage deck)Blipea (vintage deck)
Blipea (vintage deck)
 
TEDx Tegucigalpa - Las Ideas nacen, crecen, se reproducen y MUEREN!
TEDx Tegucigalpa - Las Ideas nacen, crecen, se reproducen y MUEREN!TEDx Tegucigalpa - Las Ideas nacen, crecen, se reproducen y MUEREN!
TEDx Tegucigalpa - Las Ideas nacen, crecen, se reproducen y MUEREN!
 
¿De Idea a Producto en 30 días?
¿De Idea a Producto en 30 días? ¿De Idea a Producto en 30 días?
¿De Idea a Producto en 30 días?
 
Cómo proyectar tu producto fuera del país
Cómo proyectar tu producto fuera del paísCómo proyectar tu producto fuera del país
Cómo proyectar tu producto fuera del país
 
Class.io webinar - Google Apps for Education
Class.io webinar - Google Apps for EducationClass.io webinar - Google Apps for Education
Class.io webinar - Google Apps for Education
 
WebConfLatino Panamá: Intro por Alejandro Corpeño
WebConfLatino Panamá: Intro por Alejandro CorpeñoWebConfLatino Panamá: Intro por Alejandro Corpeño
WebConfLatino Panamá: Intro por Alejandro Corpeño
 
KidsAbacus SuperConf pitch
KidsAbacus SuperConf pitchKidsAbacus SuperConf pitch
KidsAbacus SuperConf pitch
 
Implementando Lean Startup con KidsAbacus.com
Implementando Lean Startup con KidsAbacus.comImplementando Lean Startup con KidsAbacus.com
Implementando Lean Startup con KidsAbacus.com
 
Modelos actuales para emprendimiento en la web
Modelos actuales para emprendimiento en la webModelos actuales para emprendimiento en la web
Modelos actuales para emprendimiento en la web
 
Hacia donde van las redes sociales
Hacia donde van las redes socialesHacia donde van las redes sociales
Hacia donde van las redes sociales
 
Programando WebApps con APIs
Programando WebApps con APIsProgramando WebApps con APIs
Programando WebApps con APIs
 
Emprendiendo en la web
Emprendiendo en la webEmprendiendo en la web
Emprendiendo en la web
 
Taller de "Publicidad en Facebook" por Roberto Vassaux de .FOX Networks - Web...
Taller de "Publicidad en Facebook" por Roberto Vassaux de .FOX Networks - Web...Taller de "Publicidad en Facebook" por Roberto Vassaux de .FOX Networks - Web...
Taller de "Publicidad en Facebook" por Roberto Vassaux de .FOX Networks - Web...
 
"Porqué Facebook es la Red Social más importante del Mundo" por Roberto Vassa...
"Porqué Facebook es la Red Social más importante del Mundo" por Roberto Vassa..."Porqué Facebook es la Red Social más importante del Mundo" por Roberto Vassa...
"Porqué Facebook es la Red Social más importante del Mundo" por Roberto Vassa...
 
Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.Alejandro Villanueva - Google Inc.
Alejandro Villanueva - Google Inc.
 
Internet Marketing - Josue Perdomo
Internet Marketing - Josue PerdomoInternet Marketing - Josue Perdomo
Internet Marketing - Josue Perdomo
 
Fundamentos De Web 2.0
Fundamentos De Web 2.0Fundamentos De Web 2.0
Fundamentos De Web 2.0
 
Web 2.0 en Honduras
Web 2.0 en HondurasWeb 2.0 en Honduras
Web 2.0 en Honduras
 

Último

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Último (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Arquitecturas Escalables para Aplicaciones Web - Egdares Futch, UNITEC

  • 1. Arquitecturas Escalables para Aplicaciones en el Web Egdares Futch H. Junio 2009
  • 2.
  • 3. Pensemos en un supermercado, con múltiples filas y múltiples cajeros. Frustraciones Filas “lentas” Throughput impredecible ¿Y la “Caja Rápida”?
  • 4. Ahora pensemos en un banco, donde hay una sola fila y varios cajeros Mayor satisfacción Una transacción “lenta” no detiene otras Mayor throughput ¿Cuál es la diferencia? ARQUITECTURA
  • 5. Un gran banco local tiene: 200 sucursales 5 cajeros en cada sucursal 80 ATMs 0.3 transacción/min por cajero/ATM De 9AM a 7PM procesa: 324 transacciones por minuto 5.4 transacciones/segundo ¿De 7PM a 9AM ?
  • 6. Una universidad pública local tiene: 8 campus 5,000 estudiantes en cada campus 5 cursos trimestrales / estudiante 2,000 cursos en oferta académica 50 estudiantes por curso Durante el período de registro trimestral, que dura 7 días, se procesan: 50 estudiantes/segundo 2.5 segundos de tiempo de procesamiento/estudiante Cola de 12 transacciones => Espera de 30 segundos
  • 7. Para ir a: •Mi banco •Mi universidad •Mi periódico •Sitios de un país vecino ¡Tengo que pasar por Miami! Pocos acuerdo de “peering” entre ISP locales ¿Conectividad local más cara que la internacional?
  • 8. Caso TuBabel  2,993 visitas/día equivale a 1 visita cada 28 segundos  8,987 consultas/día  Caso Flickr  40,000 fotos/segundo!  130,000 consultas/segundo!
  • 9. No hablaremos de especificaciones técnicas, como memoria, procesador, etc.  Nos referimos al conjunto de elementos de red, computadoras, aplicaciones y sistemas operativos que soportan una aplicación Web.
  • 10. ¡A veces, tendemos a no separar en capas nuestras aplicaciones! Almacenamiento Usuarios vienen Cache de la “nube” Servidor de Base de AJAX aplicaciones datos
  • 11. La existencia de picos de trabajo (peak workloads) hace que determinar un diseño óptimo de arquitectura para aplicaciones Web sea difícil.  Día de pago  Semana de matrícula  Después de que ganó la Selección Nacional  Cuando pasa el temblor (8)
  • 12.  Un servidor web, con scripting del lado del servidor, conectado a Internet por un canal E1.  Mediciones muestran lo siguiente:  5 mseg para procesar el HTTP request (240 bytes)  40 mseg para correr el script  5 mseg para responder (5,120 bytes)
  • 13. Demanda de servicio CPU = 5 + 40 +5 = 0.050 seg  Demanda del canal inbound = 240*8 / 2,097,152 = 0.00091 seg  Demanda del canal de salida = 5,120*8 / 2,097,152 = 0.019 seg  Atendemos un máximo de 20 transacciones/seg  En un servidor de $10,000, nos cuesta $8.33 cada transacción
  • 14. ¿Qué tal si ahora le hacemos un lindo menú en Flash, o agregamos botones animados en DHTML, o usamos AJAX para una mejor interacción?  Blipea.com necesita 272.5K la primera vez (cache miss) ó 150K al refrescar (cache hit)
  • 15. Demanda de servicio CPU = 5 + 40 +5 = 0.050 seg  Demanda del canal inbound = 240*8 / 2,097,152 = 0.00091 seg  Demanda del canal de salida = 150,000*8 / 2,097,152 = 0.57 seg  Es decir que, ahora podemos atender únicamente dos transacciones por segundo (al refrescar)  El CPU está muerto de risa  El canal está muerto de capacidad
  • 16. Twitter = 200 tweets / segundo  NASDAQ = 35,000 mensajes /segundo  Google = 46,000 API calls / segundo
  • 17. OK, lo entiendo. ¿Ahora qué?
  • 19. Si  Soportar incremento en tráfico  Soportar incremento en la data  Henderson dice: “que además sea fácil de mantener”  No  Velocidad pura  Una tecnología particular
  • 20. Escalabilidad vertical  Crecimiento de cajas  Un servidor pequeño, luego un servidor quad core, luego un servidor multicore, luego ….  Fácil! Pero limitada en cierta medida  Escalabilidad Horizontal  Más cajas  Balanceo de cargas  Difícil! Pero crecimiento ilimitado
  • 21. Recordemos nuestra arquitectura inicial Almacenamiento Cache Servidor de Base de AJAX aplicaciones datos
  • 22.
  • 23.
  • 24.
  • 25. Manejo de sesiones  Stateless, similar a NFS, cookies “pesadas”  Balanceo de cargas  Simple: DNS round-robin  Hardware: Múltiples *.* de red  Software: Perlbal, Pound  Más allá: Balanceo Geográfico de Cargas (Global)
  • 26. Bases de datos  En general, el tema de mejora de base de datos en una aplicación Web escala verticalmente  Sin embargo, las aplicaciones Web tienen una proporción 80-90% de lecturas vs. escrituras  En ese caso, podemos usar replicación y distribución de datos  Y un tabú: denormalización
  • 27. Caching  Mantener copias de objetos frecuentemente usados hace la escalabilidad menos necesaria o por lo menos más barata  Redes de Distribución de contenido  Alta disponibilidad  Identificar Puntos Únicos de Falla  Eliminarlos
  • 28. Una aplicación Web es más que presentación, usabilidad , genialidad, o aplicabilidad.  Se suma la arquitectura con la que haya sido diseñada.  Actualmente es un arte, aprendido de los sitios más exitosos del Internet.
  • 29. Tratar de diseñar para escalar linealmente añadiendo hardware  Balancear cargas entre grupos de componentes  Diseñar pensando en redundancia y tolerancia a fallas  Algo importante: métricas y estadísticas proveen visión de qué sucede en nuestra aplicación
  • 30. Scaling for E-Business Menasce y Almeida Building Scalable Web Sites Henderson High Performance Web Sites Souders

Notas do Editor

  1. Estoyusandounadistribución de Poisson, en horapico de 50 estudiantesporsegundo, en un servidorqueprocesa 100 transaccionesporsegundo,