Hay varias cosas que uno puede hacer para mejorar la capacidad de respuesta percibida por los clientes de un sitio web y aquí hay algunas (las que recuerdo) que hacemos en Flipkart:
- En primer lugar, una prueba de cascada en el sitio cargando como esta: www.flipkart.com – 04/04/15 17:20:09 puede decirle cómo se cargan los activos estáticos (imágenes, JS, CSS) y el contenido dinámico (marcado) en su página web y qué se puede optimizar. También utilizamos herramientas como: HTTP Archive – http://www.flipkart.com/ para comprender los tiempos de carga percibidos por el usuario en el sitio.
- La mayor latencia se encuentra en la red pública (empresa de telecomunicaciones, ISP) antes / después de que la página de solicitud-respuesta golpea / abandona el centro de datos que aloja Flipkart. El contenido estático se acelera al mantenerlo en las redes más cercanas al cliente final. Esto se hace usando CDN.
- Cada página del sitio web (página de inicio, página de detalles del producto, etc.) tiene mucho contenido y el orden de recuperación, la representación puede optimizarse. Por ejemplo, nos centramos en optimizar el contenido “por encima del pliegue”. En ciertas páginas también tenemos tiempos de espera difíciles en contenido opcional. De hecho, nuestro motor de interfaz de usuario representaría la página si todos los datos obligatorios están disponibles e ignoraría los opcionales bajo alta carga / cuando la latencia de los servicios posteriores es alta.
- Medimos las latencias percibidas por el usuario y las devoluciones utilizando balizas del lado del cliente. Esto nos dice si los usuarios no esperan a que se carguen ciertas páginas porque está funcionando mal. También medimos la base de usuarios dividida por el tipo de ancho de banda desde el que acceden a Flipkart. Esto se usa para optimizar cosas como: mostrar texto antes de la imagen, usar imágenes de menor resolución, etc. (en dispositivos móviles, por ejemplo).
- También medimos percentiles como la mediana, los percentiles 90 y 99, ambos vistos por el usuario utilizando técnicas como RUM e instrumentación del lado del servidor. Esto nos informa sobre los mejores y peores escenarios y luego presenta técnicas para optimizarlo. Intentamos mantener las latencias del lado del servidor (es decir, después de que la solicitud llega a nuestros servidores) a unos cientos de milisegundos.
- Hacemos una serie de cosas en el extremo de los servicios / servidores, como el almacenamiento en caché, el uso de almacenes de datos apropiados, tiempos de ejecución de servicios altamente concurrentes, etc. para reducir las latencias del lado del servidor. Sin embargo, esto no está directamente relacionado con la pregunta sobre el ancho de banda bajo y, por lo tanto, no entra en detalles.
- Aquí hay una gran charla de uno de nuestros ingenieros frontales en una conferencia. Cubre las latencias percibidas por el usuario: todo sobre el rendimiento web percibido – Meta Refresh 2014. Lamentablemente no pude encontrar el video de la charla, pero las diapositivas están aquí: Meta Refresh 2014
Como mencioné al principio, estas son solo algunas de las muchas técnicas utilizadas. Lo muy importante es medir, medir y luego medir un poco más. Luego, optimice las latencias percibidas por el usuario.
- ¿Por qué Internet 2G es muy lento?
- ¿JioFi ofrece buena velocidad de internet?
- ¿Dónde puedo obtener Internet de alta velocidad gratis en Delhi?
- ¿Cuál es la velocidad actual de Internet en ISRO, en comparación con los 91GBps en la NASA?
- ¿Es mejor comprar un adaptador WiFi de 1200 mbps o un adaptador Powerline de 200 mbps por el mismo precio?