El blog de LiveCommerce

Un blog de comercio electrónico y tiendas online

El santo grial para que tu ecommerce cargue en menos de 0.1 segundos

Hola, ¡muy buenas a todos!

Hoy quería hablaros de uno de los aspectos más importantes de cualquier ecommerce y que muchas veces parece algo esotérico. Conozco a personas que no saben porque su ecommerce carga lento y lo peor de todo, que su departamento técnico tampoco lo sabe.

Muchos de los que tenéis ecommerce habréis sufrido o estáis sufriendo la lentitud de carga de vuestra tienda online. Con éste artículo, que además va acompañado de un video muy interesante, lo que pretendo es explicar que aspectos debéis considerar para conseguir las velocidades de carga que conseguimos nosotros con ShopinCloud.

El artículo va dirigido a personas sin grandes conocimientos técnicos o a programadores que no han dado todavía con la tecla adecuada. 

¡Pues bien! Vamos a empezar.

Primero de todo os pondré el video que acompaña a éste cartículo y debajo el resumen explicativo de las partes más importantes.

5 claves para que tu ecommerce cargue en menos de 0.1 segundos.


Encontraréis el video en nuestro canal de Youtube: https://youtu.be/q06ZGhw59bM

Punto 1: Base de datos

Las consultas a base de datos son uno de los motivos principales por los cuales tu ecommerce puede cargar lento.

Debemos saber que número de consultas se hacen en cada una de nuestras páginas y cual de ellas puede estar siendo la causante de la lentidud de carga.

Consultas que superen los 0.05 segundos deben analizarse
y ver si se puede mejorar o tratar de otra forma.
La base de datos es un archivo que se almacena en el disco duro de nuestro servidor, y el disco duro es el principal causante de los cuellos de botella en nuestro servidor o simplemente provcar que nuestra tienda online vaya lenta. Esto es debido a que el acceso a disco es muy caro, por ello debemos debemos hacer el menor número de consultas posible y tener monitorizadas y controladas las que hagamos.

Hay que mantener un equilibrio entre la arquitectura de nuestro software y el performance que deseamos. Los software complejos y muy modulares conllevan un coste de recursos que debemos aprender a gestionar.

Punto 2: OPCache.

OPCache es una tecnología de PHP que ahorra lecturas a disco y procesamiendo de la CPU.

Como hemos dicho anteriormente, el disco duro es uno de los principales responsables de ralentizar tu ecommerce
la tecnología OPCache se encarga de guardar en memoria RAM los archivos PHP precompilados que necesita tu ecommerce para no tener que irlos a buscar al disco duro y compilarlos cada vez que se carga una página.

Cada vez más, los software de ecommerce son más potentes, están mejor organizados, tienen más funcionalidades y todos estas características aumentan el número de archivos que almacena el software y que necesita para su correcto funcionamiento.

Sobretodo para ecommerce con un elevado volúmen de visitas, es fundamental que habléis con vuestro departamento técnico y le preguntéis si están utilizando OPCcaché.

Pongo aquí el enlace para que podáis informaros en mayor detalle:
http://php.net/manual/es/intro.opcache.php

Punto 3: Cachear consultas a Base de datos.

Como ya he dicho, las consultas a base de datos tienen un coste importante para el servidor ya que deben acceder constantemente al disco.

Todas las Bases de datos, en concreto MySQL (que es la que utiliza ShopinCloud, Prestashop y Magento), disponen de opciones de configuración para mejorar el rendimiento de las consultas. Algunas de las opciones están relacionas con cachear las consultas. No obstante, en éste punto no quiero hablar de esas opciones de configuración que darían para escribir un libro. Al decir cachear consultas a base de datos, me refiero a que sea vuestro propio software el que se encargue de cachear aquellas consultas que sepáis que consumen más que el resto y que las respuestas de esas consultas no varían mucho con el paso del tiempo.
Para cachear consultas ShopinCloud utiliza APC. Existen otros sistemas de caché, pero hemos observado que para ecommerce que no requiren de varios servidores, la tecnología APC caché es perfecta.

No se os ocurra utilizar caché de disco (guardar archivos en el disco duro), porque estaríamos en las mismas. La caché se debe guardar en memoria RAM.

Punto 4: Cachear bloques de HTML.

Veamos que significa éste punto con un ejemplo.

En tu ecommerce probablemente tengas un menú de navegación de las categorías de todos tus productos. A éste menú de categorías, nosotros le llamamos menú de navegación principal (MNP), lo adelanto para que sepáis que significan las siglas MNP.

Si analizamos detalladamente los procesos que necesita tu software de ecommerce para cargar el MNP nos daremos cuenta de que es una operación que consume tiempo y recursos. Veamos un breve resumen de dichos procesos:

 - Acceder a Base de datos y realizar varias consultas según el software de ecommerce que tengas.
 - Procesar la información de base de datos y convertirla en arrays aptos para trabajar.
 - Enviar los datos procesados a un archivo de la plantilla que será el que nos devuelva el HTML resultante.

¿Y si evitamos que el ecommerce tenga que hacer estas operaciones cada vez que alguien solicita una página? Nos estaremos ahorrando muchos recursos, ¿cierto?

Si guardamos en caché el HTML resultante de MNP y cada vez que lo necesitemos lo vamos a buscar a la caché, nos ahorarremos el tiempo y el consumo de recursos que se necesitan para montarlo.

Si esto mismo lo hacemos con el resto de bloques que tengamos en las páginas de ecommerce estaremos mejorando de forma espectacular la velocidad del ecommerce y consumiendo muchos menos recursos.

Para ello, debemos analizar como dividir en bloques HTML los elementos que forman las páginas de nuestro ecommerce.

Punto 5: El santo grial, FPC.

Si estás decido a que tu ecommerce cargue como los mejores, tienes que leer éste punto.

Las siglas en inglés FPC (Full Page Caché) significan Cacheo Completo de Página.

El FPC es una técnica que lo que hace es cachear el HTML resultante de toda la página y relacionarlo con su URL.

Cada vez que un usuario visita la URL, lo primero que hace el sistema es consultar si existe una página cacheada asociada a esta URL. Si existe la devolverá y conseguiremos una velocidad de carga extraordinaria.

Los 0.01 segundos que todo el mundo sueña conseguir.

Esta tecnica al igual que la de cachear bloques de HTML, no son faciles de implementar.
No voy a extenderme mucho porque podría hablar largo y tendido sobre éste tema, pero si quiero haceros entender cuales son las complejidades que presenta.

Veamos algunas de las complejidades que encontramos al implementar esta técnica:

La misma URL puede devolver un HTML con varias diferencias según el cliente o zona desde la que se visite.
Por ejemplo, si tu ecommerce ofrece la posibilidad de configurar diferentes precios por grupos de clientes, tendremos que la misma URL debe cargar un producto con precio X para un cliente y con precio Y para otro cliente.

Este es uno de los múltiples problemas con los que nos podemos encontrar para implementar esta tecnología. Y una de las formas de resolver éste problema es cachear la misma URL varias veces dependiendo el cliente que se conecte. Pero debemos tener cuidado del espacio en memoria que conlleva hacer esto.

Para implementar estas técnicas es necesario que te pongas en contacto con tu departamento técnico.
En LiveCommerce, gracias a nuestro software ShopinCloud todo esto lo tenemos por la mano. han sido miles las horas dedicadas a conseguir velocidadades inferiores a 0.1 segundos. Y seguimos trabajando y mejorando.

- - -

Y hasta aquí el artículo de hoy, no quiero extenderme más.

Si tienes alguna consulta referente a éste tema, no dudes en ponerte en contacto con nosotros o escribirnos un comentario aquí debajo. Entre todos podemos ayudar a aquellos que tengan éste problema.
Compártelo:

¿Tienes alguna consulta?

Si tienes alguna pregunta o sabes la respuesta sobre algún comentario, no dudes en contribuir.
Responderemos rápidamente.
Puedes utilizar etiquetas BBCode para escribir negrita, enlaces, imágenes, etc...
Más información en la página oficial de BBCOde http://www.bbcode.org/ Ejemplo:
[url=http://google.com]links[/url], [color=red]colores[/color] [b]negrita[/b]...

¿Has visto los videos en nuestro canal de Youtube?

En nuestro canal de Youtube publicamos periódicamente mejoras y funcionalidades del software de ecommerce.