Post on 12-Jun-2015
description
-1-
Rendimiento en sitios
de e-commerce
Herramientas y
mecanismos
-2-
mecanismos
Sebastián Rodríguez
Service Design de nexica
Rendimiento de un e-commerce ¿?/¿?/2011
Objetivos
1. Analizar el impacto que tiene el rendimiento (tiempos de respuesta ofrecidos al usuario) en webs de comercio electrónico
2. Entender conceptos de la gestión de la capacidad y la optimización del rendimiento en plataformas e-commerce.
3. Conocer las técnicas y herramientas más extendidas en la
-3-
3. Conocer las técnicas y herramientas más extendidas en la mejora del rendimiento y escalabilidad.
Rendimiento de un e-commerce ¿?/¿?/2011
Impacto del Rendimiento en E-commerce
-4- Rendimiento de un e-commerce ¿?/¿?/2011
Impacto en 3 áreas
SEOSEOExperiencia de UsuarioExperiencia de Usuario
DisponibilidadDisponibilidad
-5-
SEOSEOde Usuariode Usuario
DisponibilidadDisponibilidad
Rendimiento de un e-commerce ¿?/¿?/2011
Impacto en 3 áreas: SEO
• Google tiene en cuenta el tiempo de carga de la página en el posicionamiento orgánico (Google > 95% búsquedas en España)
• Nuestra calificación se establece de forma relativa, por comparación al rendimiento de las demás Webs analizadas por Google (según la fórmula y = 122.32e-0.31x)
• Podemos conocer nuestra puntuación a través de Google Webmaster Tools.
SEOSEOExperiencia de UsuarioExperiencia de Usuario
DisponibilidadDisponibilidad
-6-
• Nos interesa compararnos con nuestra competencia, con quien compite en resultados por nuestras posiciones.
• No es un factor determinante, pero sí un factor más.
Rendimiento de un e-commerce ¿?/¿?/2011
Impacto en 3 áreas: SEO
“While site speed is a new signal, it doesn't carry as much weight as the relevance of a page. Currently, fewer than 1% of search queries are affected by the site speed signal”
http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html
• SEOmoz llevó a cabo un experimento para determinar le impacto que el rendimiento tiene sobre el TOP10.
SEOSEOExperiencia de UsuarioExperiencia de Usuario
DisponibilidadDisponibilidad
-7-
• El experimento reveló que no tiene una afectación significativa para los primeros resultados (que tienen altos índices de relevancia por otras métricas), pero que sí puede contar en el “Long Tail”.
• Las conclusiones apuntan a que la velocidad de carga puede actuar más como un factor de penalización que como una mejora (páginas mucho más lentas que la competencia pueden verse penalizadas, mientras que un buen rendimiento queda fácilmente superado por otros criterios de relevancia)
Rendimiento de un e-commerce ¿?/¿?/2011
Impacto en 3 áreas: Experiencia
0,1 segundos Respuesta instantánea Necesario para interfaces de manipulación directa (GUI)
1 segundo Experiencia fluida Recomendable para navegación
10 segundos Límite de atención Máximo tolerable para no perder la atención del usuario
SEOSEOExperiencia de UsuarioExperiencia de Usuario
DisponibilidadDisponibilidad
-8-
Even small changes in response times can have significant effects. Google found that moving from a 10-result page loading in 0.4 seconds to a 30-result page loading in 0.9 seconds decreased traffic and ad revenues by 20%.
When the home page of Google Maps was reduced from 100 KB to 70–80 KB, traffic went up 10% in the first week and an additional 25% in the following three weeks.5 Tests at Amazon revealed similar results: every 100 ms increase in load time of Amazon.com decreased sales by 1%
Website Optimization, Andrew B. King, Ed. O’Reilly
Jakob Nielsen Alertbox, http://www.useit.com/alertbox/response-times.html
Rendimiento de un e-commerce ¿?/¿?/2011
Bounce Rate I
Reducción del
tiempo de carga
(-200 Kb)
Modificaciones a
la Web (imágenes)
SEOSEOExperiencia de UsuarioExperiencia de Usuario
DisponibilidadDisponibilidad
Impacto en 3 áreas: Experiencia
-9-
http://www.paperstreet.com/blog/2094
http://www.webperformancetoday.com/2010/07/01/the-best-graphs-of-velocity/
Rendimiento de un e-commerce ¿?/¿?/2011
• Un grupo de empresas (especializadas en medir la experiencia de usuario) han desarrollado un índice de satisfacción de usuario basado en el tiempo de respuesta: APDEX
• Representa el porcentaje de usuarios satisfechos según unos umbrales de rendimiento preestablecidos.
• Partimos del hecho de que no todos nuestros usuarios tendrán el mismo rendimiento (realista en entornos Web)
• Es una buena herramienta para establecer objetivos de
Impacto en 3 áreas: Experiencia
SEOSEOExperiencia de UsuarioExperiencia de Usuario
DisponibilidadDisponibilidad
-10-
http://www.apdex.org/
• Es una buena herramienta para establecer objetivos de rendimiento en relación a la experiencia de nuestros usuarios.
• Existen herramientas que y servicios que nos permiten medir el rendimiento en términos de Apdex.
Rendimiento de un e-commerce ¿?/¿?/2011
Alcance
• Pocos usuarios afectados (<20%)
Severidad
• Transacciones no críticas
Frecuencia
• Momentos puntuales
Impacto en 3 áreas:
DisponibilidadSEOSEO
Experiencia de UsuarioExperiencia de Usuario
DisponibilidadDisponibilidad
-11-
afectados (<20%)
• Muchos usuarios afectados (>20%)
• Todos los usuarios afectados (>90%)
críticas
• Transacciones críticas para la conversión
• La mayoría o todas las transacciones
puntuales (campañas, aparición en medios)
• Periódicamente en determinadas ventanas de tiempo
• Irregular, aleatorio.
• Constante
Rendimiento de un e-commerce ¿?/¿?/2011
¿Qué factores determinan la capacidad y el rendimiento?
1. Una programación eficiente
SEOSEOExperiencia de UsuarioExperiencia de Usuario
DisponibilidadDisponibilidad
Impacto en 3 áreas:
Disponibilidad
-12-
1. Una programación eficiente
2. Una economía inteligente de los recursos utilizado s (media)
3. Una plataforma sólida y madura
4. Una configuración optimizada de la plataforma
5. La capacidad de los recursos físicos (ancho de banda, CPU, memoria, velocidad de disco, etc.)
Rendimiento de un e-commerce ¿?/¿?/2011
¿Cómo medirla?
Latencias demasiado
altas en determinadas
zonas geográficas
Tiempos de resolución
demasiado altos
SEOSEOExperiencia de UsuarioExperiencia de Usuario
DisponibilidadDisponibilidad
Impacto en 3 áreas:
Disponibilidad
-13-
Errores en transacciones
debidas a programación
demasiado altos
Rendimiento de un e-commerce ¿?/¿?/2011
Conceptos clave en la gestión
y optimización de la capacidad
-14-
y optimización de la capacidad
Rendimiento de un e-commerce ¿?/¿?/2011
Módulos Apache
Arquitectura por capas
Servidor Web (Apache) Base de Datos (MySQL)
PHP
Código de Aplicación
HTML
Gestor de Caché
(memcached)Media
(Contenidos estático)
Scripting de Cliente(Javascript)
Objetos (Flash, Java)
-15-
Cálculo
(CPU, RAM)
Almacenamiento
(Disco)
Red
(LAN, WAN)
Hipervisor
(virtualización)
Sistema Operativo (Linux)
Servidor Web (Apache) Base de Datos (MySQL)
Rendimiento de un e-commerce ¿?/¿?/2011
Módulos Apache
Arquitectura por capas
Servidor Web (Apache) Base de Datos (MySQL)
PHP
Código de Aplicación
HTML
Gestor de Caché
(memcached)Media
(Contenidos estático)
Scripting de Cliente(Javascript)
Objetos (Flash, Java)
-16-
Cálculo
(CPU, RAM)
Almacenamiento
(Disco)
Red
(LAN, WAN)
Hipervisor
(virtualización)
Sistema Operativo (Linux)
Servidor Web (Apache) Base de Datos (MySQL)
Sospechosos habituales
Rendimiento de un e-commerce ¿?/¿?/2011
Patrones de Demanda
Por volumen de peticiones
-17-
Variaciones predecibles y periódicas.Ejemplo: Diurno / Nocturo
Variaciones puntuales Ejemplo: Presencia en medios de comunicación
Crecimiento sostenido Demanda constante
Rendimiento de un e-commerce ¿?/¿?/2011
Patrones de Demanda
Por tipo de peticiones
-18-
Contenido estático
Contenido dinámico
Rendimiento de un e-commerce ¿?/¿?/2011
Perfil de Usuario
Home
Categoría
Producto
Home
Búsqueda
Home
Los perfiles de usuario se utilizan en diferentes fases del ciclo de vida de una Web.
-19-
Carrito
Compra
Confirmación
Pagina Resultados
Producto
diferentes fases del ciclo de vida de una Web.Pueden determinarse “a priori” durante el diseño de la Web.
Pueden confirmarse o rectificarse “a posteriori” con Web Analytics.
Es importante conocer las proporciones.
Rendimiento de un e-commerce ¿?/¿?/2011
Herramientas y técnicas para
la mejora del rendimiento
-20-
la mejora del rendimiento
Rendimiento de un e-commerce ¿?/¿?/2011
Pruebas de Stress
Diseño de las Pruebas
• Diseño de los perfiles de usuario
•Definición del patrón de carga
Preparación del Entorno
• Monitorización de las métricas clave de rendimiento (KPI’s)
•Trabajos de
Ejecución de las Pruebas
• Generación de carga y control de la prueba
Presentación de Resultados
• Recogida y análisis de los resultados
•Elaboración de conclusiones y recomendaciones
Prueba Base (Baseline)Prueba Base (Baseline)
-21-
•Trabajos de preparación sobre entornos de producción
recomendaciones
Pruebas diferenciales
(Delta)
Rendimiento de un e-commerce ¿?/¿?/2011
Pruebas de Stress
Lo que un informe de pruebas de stress SÍ le dirá
• En qué medida y con qué patrón aumenta el consumo de recursos de su plataforma (servidores, redes, almacenamiento) en función de la cantidad de peticiones (usuarios) que recibe su aplicación de forma concurrente.
• Cuales son las métricas que saturan antes y que actúan como cuello de botella (memoria RAM, capacidad de CPU, velocidad de lectura o escritura a disco, ancho de banda, número de procesos, número de conexiones, etc.)
• Cómo afecta (en términos de rendimiento) el incremento de carga a la experiencia de los usuarios.• Cual es la capacidad máxima (número de usuarios concurrentes) que soporta la aplicación antes
de dejar de dar un nivel servicio aceptable para el negocio.
-22-
de dejar de dar un nivel servicio aceptable para el negocio.
Lo que un informe de pruebas de stress NO le dirá
• Qué segmentos del código fuente debe mejorar para optimizar el rendimiento de las aplicaciones.• Aunque es posible distinguir qué consultas a una base de datos o qué accesos a disco son los que
provocan mayor carga, el informe no le dirá como reformular esas consultas o hacer esos accesos más rápidos.
• Cual es el motivo de que una aplicación consuma recursos de un modo lineal, exponencial, etc. (el informe solo constata el hecho en sí, no busca la explicación en el código)
Rendimiento de un e-commerce ¿?/¿?/2011
Caching
HTML, Imágenes,
Objetos
Ej: Nexica ZXTM
Código precompilado
-23-
Código precompilado
Ej: APC
SQL Query’s
Ej: Memcached
Rendimiento de un e-commerce ¿?/¿?/2011
Profiling
• Auditamos el rendimiento del código en funcionamiento.
• Tenemos una visión de toda la transacción (incluyendo consultas a base de datos)
• Es costoso, pero muy efectivo para mejorar el rendimiento del código.
• Introduce una mínima sobrecarga en los
-24-
• Introduce una mínima sobrecarga en los servidores (<2%)
Ejemplos: Antorcha, xDebug, Net Profiler.
Rendimiento de un e-commerce ¿?/¿?/2011
Balanceo
• No es en sí un acelerador, pero hace posibles arquitecturas horizontales
• Permite repartir la carga en función de diferentes políticas (por ejemplo, en función del tiempo de respuesta de cada nodo)
• Los servicios más avanzados permiten funciones adicionales:
• Asignar un pool de recursos para un perfil determinado de usuario (por ejemplo, los usuarios registrados que hayan realizado compras en el pasado o cualquiera que se encuentre en los pasos finales del funnel de conversión)
• Monitorizar los tiempos de respuestas de cada nodo y sacar de producción
-25-
durante cierto tiempo aquellos que no respondan dentro de un tiempo razonable (liberar carga)
• Está situado en una posición estratégica dentro de la arquitectura para ofrecer servicios de aceleración: Aceleración SSL, Caching, Firewall de aplicaciones, etc.
S1 S2 S3 S..
Balanceador
Rendimiento de un e-commerce ¿?/¿?/2011
Red de Contenidos
• Servicio ofrecido por grandes empresas que disponen de cientos de servidores distribuidos geográficamente
• Crean redes de contenido que se sincronizan con los servidores del cliente y actúan como una caché intermedia desde servidores más próximos al usuario final.
• Son una medida muy efectiva para webs con grandes volúmenes de tráfico y alcance global. Sus beneficios crecen a medida que lo hace el alcance geográfico del cliente (y viceversa)
• Existen varios niveles de integración (de menor a mayor complejidad)
-26-
• Servir el contenido estático puro (imágenes, textos, archivos flv, etc.)
• Servir contenido mixto (páginas estáticas con secciones dinámicas marcadas en el código)
• Servir contenido dinámico no personalizado.
• Las diferencias de precio son muy grandes. Akamai domina el mercado de “gama alta”, aunque hay otros actores con una calidad similar y mejores precios.
• Es importante monitorizar los resultados.
Rendimiento de un e-commerce ¿?/¿?/2011
Monitorización de Aplicaciones
La monitorización de aplicaciones web ejecuta los m ismos pasos que un hipotético usuario para obtener una visión de la disponibilida d y el rendimiento desde su punto de vista.
-27- Rendimiento de un e-commerce ¿?/¿?/2011
Impacto del Rendimiento en E-commerce
-28-
Servicios NEXICA
Rendimiento de un e-commerce ¿?/¿?/2011
Servicios NEXICA
Pruebas de Stress
• Diseño y ejecución de Pruebas
Base y Delta
• Optimización de configuraciones
• Ingenieros especializados
Monitorización de Aplicaciones
Firewall de Aplicaciones
• Prevención de ataques
• Filtrado de solicitudes maliciosas
• Mejor uso de los recursos
disponibles
Profiling de Aplicaciones
-29-
• Simulación de transacciones de
usuario desde más de 50 países
• Atención de alarmas 24x7
• Informes semanales / mensuales
Balanceo
• Balanceo inteligente.
Escalabilidad horizontal.
• Caching de contenidos
• Aceleración SSL
Content Delivery Networks
• Partners CDNetworks
• Asesoramiento, instalación y
monitorización
• Actualmente disponible para
plataformas J2EE y PHP
• Instalación, configuración y
análisis.
Rendimiento de un e-commerce ¿?/¿?/2011
Gracias por tu atención.srodriguez@nexica.com
-30-
¿Alguna pregunta?
Rendimiento de un e-commerce ¿?/¿?/2011
-31-