Conceptos como el rendimiento de las páginas web y la importancia de su impacto en las cifras de tu negocio, además, explica estratégias y técnicas para mejorar este rendimiento en las diferentes fases del ciclo de vida de tu producto.
Resumen de la conferencia 'E-commerce: cómo afrontar el crecimiento exponencial'
Sebastian Rodriguez.
Expo e-commerce
16 y 17 marzo de 2011 - Madrid
2. Rendimiento en sitios
de e-commerce
Herramientas y
mecanismos
Sebastián Rodríguez
Service Design de nexica
-2- Rendimiento de un e-commerce ¿?/¿?/2011
3. 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
mejora del rendimiento y escalabilidad.
-3- Rendimiento de un e-commerce ¿?/¿?/2011
5. Impacto en 3 áreas
Experiencia
SEO Disponibilidad
de Usuario
-5- Rendimiento de un e-commerce ¿?/¿?/2011
6. Impacto en 3 áreas: SEO
• Google tiene en cuenta el tiempo de carga de la
Experiencia
página en el posicionamiento orgánico (Google > SEO
de Usuario
Disponibilidad
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.
• 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.
-6- Rendimiento de un e-commerce ¿?/¿?/2011
7. Impacto en 3 áreas: SEO
“While site speed is a new signal, it doesn't carry as much SEO
Experiencia
de Usuario
Disponibilidad
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.
• 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)
-7- Rendimiento de un e-commerce ¿?/¿?/2011
8. Impacto en 3 áreas: Experiencia
Experiencia
SEO Disponibilidad
de Usuario
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
Jakob Nielsen Alertbox, http://www.useit.com/alertbox/response-times.html
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
-8- Rendimiento de un e-commerce ¿?/¿?/2011
9. Impacto en 3 áreas: Experiencia
Bounce Rate I SEO
Experiencia
Disponibilidad
de Usuario
Modificaciones a
la Web (imágenes) Reducción del
tiempo de carga
(-200 Kb)
http://www.paperstreet.com/blog/2094
http://www.webperformancetoday.com/2010/07/01/the-best-graphs-of-velocity/
-9- Rendimiento de un e-commerce ¿?/¿?/2011
10. Impacto en 3 áreas: Experiencia
• Un grupo de empresas (especializadas en medir la Experiencia
SEO Disponibilidad
experiencia de usuario) han desarrollado un índice de de Usuario
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
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.
http://www.apdex.org/
-10- Rendimiento de un e-commerce ¿?/¿?/2011
11. Impacto en 3 áreas:
Disponibilidad SEO
Experiencia
de Usuario
Disponibilidad
Alcance Severidad Frecuencia
• Pocos usuarios • Transacciones no • Momentos
afectados (<20%) críticas puntuales
• Muchos usuarios • Transacciones (campañas,
afectados (>20%) críticas para la aparición en
• Todos los usuarios conversión medios)
afectados (>90%) • La mayoría o todas • Periódicamente en
las transacciones determinadas
ventanas de tiempo
• Irregular, aleatorio.
• Constante
-11- Rendimiento de un e-commerce ¿?/¿?/2011
12. Impacto en 3 áreas:
Disponibilidad SEO
Experiencia
de Usuario
Disponibilidad
¿Qué factores determinan la capacidad y el rendimiento?
1. Una programación eficiente
2. Una economía inteligente de los recursos utilizados (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.)
-12- Rendimiento de un e-commerce ¿?/¿?/2011
13. Impacto en 3 áreas:
Disponibilidad SEO
Experiencia
de Usuario
Disponibilidad
¿Cómo medirla?
Latencias demasiado
altas en determinadas
zonas geográficas
Tiempos de resolución
demasiado altos
Errores en transacciones
debidas a programación
-13- Rendimiento de un e-commerce ¿?/¿?/2011
14. Conceptos clave en la gestión
y optimización de la capacidad
-14- Rendimiento de un e-commerce ¿?/¿?/2011
15. Arquitectura por capas
HTML Scripting de Cliente Objetos
(Javascript) (Flash, Java)
Código de Aplicación
Media Gestor de Caché
Módulos Apache PHP
(Contenidos estático) (memcached)
Servidor Web (Apache) Base de Datos (MySQL)
Sistema Operativo (Linux)
Hipervisor
(virtualización) Red
Cálculo Almacenamiento (LAN, WAN)
(CPU, RAM) (Disco)
-15- Rendimiento de un e-commerce ¿?/¿?/2011
16. Arquitectura por capas
HTML Scripting de Cliente Objetos
(Javascript) (Flash, Java)
Código de Aplicación
Media Gestor de Caché
Módulos Apache PHP
(Contenidos estático) (memcached)
Servidor Web (Apache) Base de Datos (MySQL)
Sistema Operativo (Linux)
Hipervisor
(virtualización) Red
Cálculo Almacenamiento (LAN, WAN)
(CPU, RAM) (Disco)
Sospechosos habituales
-16- Rendimiento de un e-commerce ¿?/¿?/2011
17. Patrones de Demanda
Por volumen de peticiones
Variaciones predecibles y periódicas. Variaciones puntuales
Ejemplo: Diurno / Nocturo Ejemplo: Presencia en medios de comunicación
Crecimiento sostenido Demanda constante
-17- Rendimiento de un e-commerce ¿?/¿?/2011
18. Patrones de Demanda
Por tipo de peticiones
Contenido estático
Contenido dinámico
-18- Rendimiento de un e-commerce ¿?/¿?/2011
19. Perfil de Usuario
Home
Home Home
Categoría
Búsqueda
Producto Los perfiles de usuario se utilizan en
diferentes fases del ciclo de vida de una Web.
Carrito Pueden determinarse “a priori” durante el
Pagina
Resultados diseño de la Web.
Compra Pueden confirmarse o rectificarse “a
posteriori” con Web Analytics.
Producto
Confirmación
Es importante conocer las proporciones.
-19- Rendimiento de un e-commerce ¿?/¿?/2011
20. Herramientas y técnicas para
la mejora del rendimiento
-20- Rendimiento de un e-commerce ¿?/¿?/2011
21. Pruebas de Stress
Prueba Base (Baseline)
Diseño de las Preparación del Ejecución de las Presentación de
Pruebas Entorno Pruebas Resultados
• Diseño de los • Monitorización de • Generación de • Recogida y análisis
perfiles de usuario las métricas clave carga y control de de los resultados
•Definición del de rendimiento la prueba •Elaboración de
patrón de carga (KPI’s) conclusiones y
•Trabajos de recomendaciones
preparación sobre
entornos de
producción
Pruebas diferenciales
(Delta)
-21- Rendimiento de un e-commerce ¿?/¿?/2011
22. 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.
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)
-22- Rendimiento de un e-commerce ¿?/¿?/2011
24. 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
servidores (<2%)
Ejemplos: Antorcha, xDebug, Net Profiler.
-24- Rendimiento de un e-commerce ¿?/¿?/2011
25. 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
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.
Balanceador
S1 S2 S3 S..
-25- Rendimiento de un e-commerce ¿?/¿?/2011
26. 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)
• 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.
-26- Rendimiento de un e-commerce ¿?/¿?/2011
27. Monitorización de Aplicaciones
La monitorización de aplicaciones web ejecuta los mismos pasos que un hipotético
usuario para obtener una visión de la disponibilidad y el rendimiento desde su
punto de vista.
-27- Rendimiento de un e-commerce ¿?/¿?/2011
28. Impacto del Rendimiento en E-commerce
Servicios NEXICA
-28- Rendimiento de un e-commerce ¿?/¿?/2011
29. Servicios NEXICA
Pruebas de Stress Firewall de Aplicaciones
• Diseño y ejecución de Pruebas • Prevención de ataques
Base y Delta • Filtrado de solicitudes maliciosas
• Optimización de configuraciones • Mejor uso de los recursos
• Ingenieros especializados disponibles
Monitorización de Aplicaciones Profiling de Aplicaciones
• Simulación de transacciones de • Actualmente disponible para
usuario desde más de 50 países plataformas J2EE y PHP
• Atención de alarmas 24x7 • Instalación, configuración y
• Informes semanales / mensuales análisis.
Balanceo Content Delivery Networks
• Balanceo inteligente. • Partners CDNetworks
Escalabilidad horizontal. • Asesoramiento, instalación y
• Caching de contenidos monitorización
• Aceleración SSL
-29- Rendimiento de un e-commerce ¿?/¿?/2011
30. Gracias por tu atención.
srodriguez@nexica.com
¿Alguna pregunta?
-30- Rendimiento de un e-commerce ¿?/¿?/2011