Guía de preparación para la temporada alta: prepare su sitio de comercio electrónico para el próximo gran evento


Introducción

La mayoría de los vendedores están acostumbrados a la gran demanda en la época de fiestas. En las tiendas físicas, es el momento del año con más contrataciones para que los ansiosos clientes sean atendidos en la tienda por rostros sonrientes y con más cajeros para que el pago sea rápido y sin estrés. Para un vendedor de comercio electrónico, fortalecerse para enfrentar el tráfico más alto no se trata de contratar más empleados sino de mejorar los sistemas y procesos que atraen y mantienen clientes y que permiten hacer transacciones en el sitio con sencillez.

Las demoras en la carga de páginas no solo frustran a los usuarios, sino que ahora también los algoritmos de búsqueda de Google penalizan a los sitios por las cargas lentas. Aprovecha la temporada de vacaciones. Cada año llegan antes las rebajas, e incluso hay comerciantes que ofrecen gangas en octubre o principios de noviembre. Según una encuesta de compradores de Shop.org de 2013, más del 40% dijeron que empezaban a comprar en octubre o incluso antes. Estas estadísticas, sumadas al crecimiento a nivel global de las ventas por Internet, aumentan la necesidad de una estrategia de comercio electrónico bien planificada tanto de cara al consumidor como en la infraestructura subyacente.

Prepararse para un período de mucho tráfico, ya sea en la época de fiestas, las vacaciones de verano o una campaña de mercadotecnia de amplio alcance, conlleva evaluar su infraestructura y código y optimizarlos para obtener los mejores resultados. La clave de la planeación del tráfico alto es hacer pruebas de carga rigurosas en su sistema con anticipación para identificar y corregir puntos de interrupciones y embotellamientos.

1. Evalúe su sitio antes de un aumento repentino de tráfico

Las pruebas de carga le muestran cómo será el rendimiento de su sitio cuando se produzca el aumento de tráfico. A continuación se citan lo pasos de alto nivel que se llevan a cabo en las pruebas de carga.

  1. Determine los objetivos de las pruebas: la prueba inicial debe consistir en una evaluación integral. Las pruebas posteriores pueden cubrir solo pruebas de posoptimización de páginas o procesos específicos. Además, tenga en cuenta que los diferentes tipos de usuarios usan el sitio de distintas formas. Un comprador de computadoras puede dividirse en segmentos como consumidor, empresa y gobierno. El usuario consumidor teóricamente sigue una ruta diferente que un usuario gubernamental; por lo tanto, la carga en el sistema que necesita optimización será diferente. Al refinar los objetivos de la prueba y los tipos de usuario, obtiene resultados más precisos para guiar la optimización. Use los objetivos para crear una lista de preguntas que la prueba debe responder, por ejemplo:

    • ¿Cuántas solicitudes concurrentes puede soportar mi sistema en la carga máxima?
    • ¿Los tiempos de respuesta para todas las rutas de prueba son aceptables?
    • ¿Qué puntos en la cadena consumen la mayor cantidad de recursos de hardware?
    • ¿Se observan fallas evidentes causadas por los grandes conjuntos de datos, los múltiples usuarios concurrentes, la cantidad de productos en el sitio, la funcionalidad del carrito de compras u otros factores?
    • ¿Hay algún objetivo asequible evidente para optimizar? Por ejemplo: búsquedas innecesarias en la base de datos, rutas de código usadas con frecuencia que producen un resultado consistente o búsquedas en la base de datos de repetición frecuente que pueden almacenarse en el caché.

  1. Comience con una referencia: revise registros y análisis para ver cómo fue el rendimiento durante los períodos pico anteriores y determine cómo se ve una carga de alta concurrencia típica. Use herramientas como Apache Bench o Autobench para simular múltiples usuarios concurrentes y obtener una referencia de cuántas solicitudes por segundo puede soportar. Preste especial atención a las páginas de mayor tráfico como la página de inicio y las páginas de llegada donde los esfuerzos de optimización dan los mejores resultados. Para comparar su rendimiento y las referencias establecidas con las de otros vendedores, consulte el Índice de rendimiento de sitios móviles y minoristas web de Compuware.

  2. Determine los métodos de recopilación de datos: una recopilación de datos organizada es esencial para entender los resultados y aprender de ellos. LoadRunner es una herramienta de software que ofrece soluciones sofisticadas de formato, flexibilidad y análisis. Microsoft Visual Studio tiene un script SQL para crear un repositorio de base de datos para los resultados. Evalúe una herramienta de recopilación de datos de prueba potencial basándose en su capacidad para:

    • Documentar minuciosamente los estados de la prueba
    • Documentar los resultados de forma precisa
    • Ofrecer un análisis concreto de los resultados
    • Archivar los datos de la prueba para comparaciones futuras
    Usar un conjunto de herramientas de monitoreo le permite obtener datos precisos sobre el rendimiento de prueba actual en gráficos visuales simples:
    • Cacti para capturar las métricas
    • MONyog para monitorear la base de datos
    • statsd para insertar los registros de estadísticas en un código para monitorear el rendimiento del código en tiempo real.

  1. Cree scripts: los scripts generan datos de prueba y simulan la interacción del usuario. Los scripts inundan el sitio con solicitudes para que pueda identificar los embotellamientos que se producen durante períodos de tráfico pesado. Un script será creado para cada ruta de prueba, cookie y demás. JMeter es un software de prueba de carga de código abierto diseñado para evaluar la carga del comportamiento funcional y medir el rendimiento. Los scripts de JMeter son fáciles de transformar en plantillas y pueden copiarse y pegarse para crear nuevos. Los scripts generales incluyen:

    • Crear productos al azar
    • Crear pedidos al azar (llenar un carrito; luego, pagar)
    • Crear cuentas de clientes al azar (esto se puede combinar con la creación de un script de pedidos)
    • Hacer cambios en la interfaz del administrador (crear categorías, cambios de configuración)
    Estos scripts se ejecutarán de manera individual y simultánea para encontrar límites de rendimiento.

  1. Defina el ambiente de prueba: en la práctica, el ambiente de prueba de carga contiene:

    • Herramientas de software para enviar muchas solicitudes
    • Scripts para simular la actividad del usuario en el sitio
    • Scripts para generar grandes cantidades de datos en el sistema
    • Hardware para ejecutar herramientas
    • Hojas de cálculo para controlar y analizar los resultados

    Las evaluaciones pueden ejecutarse durante varios días al mismo tiempo y utilizar recursos valiosos. Las pruebas de carga son una forma común de utilizar recursos adicionales para llevar a cabo evaluaciones o para degradar otras aplicaciones durante las mismas. El uso de la nube para hacer evaluaciones le permite acelerar el CPU todo lo que desee para ejecutar las pruebas durante el tiempo que sea necesario y luego eliminar esos recursos cuando las pruebas hayan terminado.

  1. Ejecute la prueba: como la ejecución de las pruebas lleva tiempo, recopile la mayor cantidad de información posible de cada prueba ejecutada para no tener que repetirla. Para hacerlo, cree una hoja de cálculo con la siguiente información:

    • Nombre de la persona que ejecuta la prueba
    • La fecha, el tiempo y la duración de la ejecución
    • Una hipótesis bien definida
    • Un resumen de lo que ha cambiado
    • Un conjunto de las métricas analizadas durante la prueba
    • Una captura de los resultados de las métricas tras la ejecución, visualizada mejor con un gráfico de la métrica a lo largo del tiempo

    Al guardar la información en hojas de cálculo, obtiene resultados demostrables y puede identificar las pruebas más eficaces.

    Al terminar la prueba, contará con un grupo de datos que responde las preguntas establecidas cuando se fijaron lo objetivos en el comienzo. Las respuestas lo guiarán a los siguientes pasos de la optimización. Luego de la optimización, es de vital importancia repetir la prueba para dar cuenta de cualquier anomalía que la optimización que pueda haber creado, ya que solucionar un problema a veces puede crear otro problema que no querrá descubrir en el medio de un aumento repentino.

2. Soluciones para los problemas generales que las pruebas revelan

NECESITA BALANCEO DE CARGA

Si los informes de tráfico del sitio revelan un aumento en la cantidad de conexiones denegadas durante la prueba de carga, es hora de revaluar su solución de balanceo de carga. Las conexiones denegadas son la primera señal de que la capacidad de su servidor es demasiado pequeña para soportar la cantidad de tráfico que su sitio recibe. La siguiente señal probablemente serán las llamadas o los correos electrónicos de reclamo de los visitantes porque no pueden acceder o realizar transacciones en el sitio.

La cantidad de balanceadores de carga que implemente se determina por su tráfico y objetivos de rendimiento, no existe una fórmula mágica. Usar los datos de la prueba de carga le ayudará a determinar la cantidad de balanceadores de carga y su ubicación. Cuando esté colocado en su lugar, realice otra prueba para confirmar que el balanceador de carga puede soportar la carga esperada.

NECESITA UNA MEJOR COMPRESIÓN
Implementar una compresión del servidor puede reducir el tamaño de las páginas de almacenamiento al reducir el tiempo de recuperación de datos del servidor y al hacer que un proceso del servidor web esté disponible más rápido. La mayoría de los navegadores y servidores web modernos pueden comprimir datos para enviarlos y descomprimirlos en el destino. Esto ayuda a disminuir los requisitos de ancho de banda pero puede aumentar las cargas del CPU.

Los archivos más pequeños permiten cargar las páginas más rápido. Las dos opciones más comunes que existen son minimizar su CSS y JavaScript al eliminar el espacio en blanco y aumentar la capacidad de lectura (con el uso de una herramienta como YUI Compressor) y reducir el tamaño de sus imágenes al eliminar datos innecesarios incorporados en ellas con una herramienta como smush.it.

NECESITA UNA CONTENT DELIVERY NETWORK (CDN)
Usar una red CDN puede ayudar a acelerar las cargas de páginas lentas. En una red CDN, la primera vez que un contenido es enviado a un usuario, una copia del contenido se almacena en los servidores al borde geográficamente más cercanos al usuario. Las solicitudes subsiguientes usan la copia almacenada, que acelera el tiempo de carga. Hospedar páginas de llegada u otras páginas estáticas con tráfico pesado en la red CDN ayuda a mantener una presencia web persistente y consistente. A medida que más personas visiten su sitio, la página de llegada será almacenada en caché en todo el mundo y, como resultado, los tiempos de carga mejorarán.

Publicar contenido estático en una CDN en lugar de en un servidor web es posible con servicios como Rackspace Cloud Files, creado con la tecnología de la red CDN de Akamai. W3 Total Cache y PressFlow también tienen la tecnología de red CDN incorporada.

NECESITA UN CÓDIGO MÁS EFICIENTE
Existen muchos servicios asociados con el comercio electrónico y lo social que pueden proporcionarle un código para colocar en el sitio web o en páginas particulares. Estos snippets de código, usados para compartir en redes sociales, análisis, aplicaciones, etc., son HTML/JavaScript. Muchos usan solicitudes externas de terceros, que se retrasan y no podrán almacenarse en caché por su cuenta. Donde sea posible, elija soluciones para los elementos comunes de las páginas que eviten código de terceros. Otra solución general para resolver JavaScript es cargar el código cuando el documento esté preparado (cuando el DOM esté completamente cargado) en lugar de incluirlo directamente en su marcado.

Los sitios con una base de datos pesada pueden beneficiarse de las optimizaciones de bases de datos, como los cambios de esquema y la indexación de columnas consultadas con frecuencia. Evite usar infraestructuras y bibliotecas excesivas.

NECESITA UN ALMACENAMIENTO DE PÁGINAS EN CACHÉ COMPLETO
El almacenamiento en caché es una forma sencilla de acelerar su aplicación o sitio web que puede ayudarlo con su tasa de rebote y, por consiguiente, salvarlo de una potencial pérdida de ingresos. Determine cuáles son los datos a los que accede con frecuencia y almacénelos en caché en la memoria para un acceso repetitivo de alta velocidad. Ya sea que su aplicación genere contenido estático para páginas web o almacene sesiones en caché, tiene que decidir cómo almacenar esos cachés. Puede almacenarlos en su sistema de archivos local o utilizar cachés de memoria distribuidos como los clústers Memcached.

NECESITA AUTOEXPANSIÓN
A pesar de sus mejores esfuerzos de planeación, su sitio puede experimentar aumentos repentinos que van más allá de la capacidad máxima planificada. Por ejemplo, un sitio puede por lo general ejecutar uno o dos servidores y, con los aumentos repentinos de tráfico, puede necesitar ocasionalmente un tercer servidor. Si ese aumento repentino es predecible, su equipo puede proporcionar un servidor extra con anticipación y desmantelarlo cuando ya no se necesite.

Si ese aumento repentino es impredecible, es posible que necesite conservar un tercer servidor para responder a ese aumento cuando o si ocurre. Con una herramienta de autoexpansión, como RightScale, el socio de Cloud Tools Marketplace de Rackspace, no necesita conservar ese tercer servidor. Al configurar el tráfico, el rendimiento y otras variables, el tercer servidor se lanza solo cuando es necesario y se desmantela automáticamente cuando los parámetros de lanzamiento cesan. Para conocer más herramientas de autoexpansión, visite Cloud Tools Marketplace de Rackspace.

NECESITA UNA NUBE HÍBRIDA
Todavía muchos piensan que si la nube no se usa en su totalidad, no se puede usar en absoluto. No es así. Una nube híbrida le permite comprar lo básico y alquilar el resto durante aumentos repentinos. Puede implementar los elementos que necesita para ejecutar su sitio ahora con la posibilidad de irrumpir en la nube para enfrentar aumentos repentinos de tráfico o para expandir la funcionalidad sin reestructurar o cambiar las plataformas.

Con Hybrid Cloud, una tienda de comercio electrónico puede aprovechar la eficiencia de la nube para el almacenamiento en caché, el almacenamiento de imágenes y videos o para otros elementos que no son críticos y usan muchos recursos, mientras que elementos como el procesamiento de pago y otros elementos del sitio sensibles a la seguridad se mantienen en la nube privada o el equipo local para cumplir con las normas PCI u otras normas de seguridad.

3. Planifique un aumento del éxito con Rackspace

Cuando la marca de estilo de vida Alex & Ani creó un anuncio para la Super Bowl de 2014, sabía que el rendimiento del sitio web era clave. "Cada segundo cuesta dinero. Por cada segundo que añade al proceso de carga, está reduciendo su tasa de conversión en un 7% y eso se suma", dijo Ryan Bonifacio, Vicepresidente de Estrategias Digitales de Alex & Ani. El anuncio atrajo a 28.000 personas al sitio web de Alex & Ani's, y cualquier retraso en la carga hubiera sido desastroso. Bonifacio vino a Rackspace porque estaba buscando un socio de hospedaje con la experiencia necesaria en ese área. "Maximizar el tiempo de funcionamiento fue uno de nuestros mayores requisitos al hacer la diligencia con los proveedores de hospedaje. Rackspace fue calificado como el mejor." dijo.

El ambiente de hospedaje de comercio electrónico de Rackspace está diseñado para proporcionarle a los clientes recursos que se expanden sin esfuerzo desde pequeños a grandes volúmenes de tráfico. Podemos ayudarlo con la tecnología que necesita a fin de desarrollar, evaluar y expandir su sitio para administrar y optimizar un aumento repentino de tráfico en lugar de perder clientes.

Referencias:

1https://www.internetretailer.com/2013/02/04/unwrapping-holidays



¿Este contenido fue útil?




© 2014 Rackspace US, Inc.

Excepto cuando se indique lo contrario, el contenido de este sitio está bajo una licencia Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License


Ver especificaciones de licencia y DESCARGO DE RESPONSABILIDAD