Devlog #6: Optimización de la BBDD de Foxize Cloud
En Foxize Cloud hemos implementado Memcached en la infraestructura de código de la plataforma, con el objetivo de mejorar el rendimiento de las páginas de los clientes.
¿Qué ocurría hasta ahora?
Cada vez que realizas una acción en tu plataforma de formación, o un usuario tiene actividad en la plataforma, se envían solicitudes a nuestra base de datos para hacer las acciones correspondientes y esperadas.
AWS (Amazon Web Sevices) Load Balancer recibe las solicitudes y las traslada a Kubernetes. A través de los nodos de Kubernetes, se despliega una serie de acciones para llevar a cabo la solicitud.
Para hacer ciertas acciones, tiene que consultar la información alojada en las bases de datos de Foxize Cloud: la Database Central y las bases de datos de cada cliente.
Hasta ahora, cualquier consulta pasaba directamente por la database central, es decir, cada vez tenía que cargar de nuevo la información solicitada. Esto hacía que, por ejemplo, las páginas tardaran más en cargar.
¿Cómo hemos mejorado la infraestructura de Foxize Cloud?
Gracias a la nueva adición de Memcached, las solicitudes no se hacen directamente a las bases de datos, sino que primero pasa por este intermediario. Memcached, al igual que otros caché, guarda aquella información que ha sido previamente usada, para recuperarla en próximas solicitudes. Así, no es necesario acceder a la base da datos y cargarlas de trabajo. En el caso de que no tenga esos datos guardados, conecta con la base de datos y lo carga.
Esto alivia el trabajo de las bases de datos, y en consecuencia, hace que los procesos sean más rápidos.
Beneficios para clientes de Foxize Cloud
Los cambios en la infraestructura de la plataforma, aunque no son visibles a simple vista, sí que ofrecen grandes beneficios para los usuarios con respecto al rendimiento:
- Rapidez en la carga de las páginas
- Más estabilidad en las páginas
- Minimizar el riesgo de caída por sobrecarga de peticiones (como números de usuarios conectados simultáneamente).
- Mejor posicionamiento en buscadores (Google mide la velocidad de carga de una página).
Cómo puedes ver en la siguiente imagen, el tiempo de carga por cada petición se ha reducido significativamente y, además, es mucho más estable (no tiene picos grandes).