La importancia de usar una cache o CDN y configurarla correctamente
Uno de mis proyectos personales tenía un uso alto de lecturas en base de datos (MySQL). Me parecía raro ya que tiene niveles de tráfico bajos, por lo que decido revisar la configuración de la caché de la página en el CDN.
La imagen anterior es una gráfica donde el eje X muestra el tiempo y el eje Y es el número de tuplas obtenidas de base de datos. Como puedes apreciar, hay un cambio de tendencia drástico debido a la mejora en la configuración de la caché, que reduce enormemente el número de tuplas obtenidas por segundo.
Esta es la verdadera importancia de configurar correctamente la caché: puedes reducir tu factura de base de datos, así como de cómputo (y también reducir las emisiones de CO2 al consumir menos electricidad 😉).
Normalmente las cachés de una web se realizan mediante un CDN o Content Delivery Network, que básicamente son un conjunto de servidores distribuidos por el mundo (lo más cerca posible a los usuarios finales), para almacenar contenido y servirlo lo más rápido que se pueda. Un ejemplo puede ser Cloudflare o Cloudfront de AWS. Otra opción es usar cachés internas como memcached o redis, para almacenar contenidos costosos a nivel de cómputo de tu API.
El problema en mi sitio se producía debido a que tenía una configuración de caché de un minuto, por lo que al tener poco tráfico prácticamente cada visita requería renderizar la vista y consultar la base de datos. La solución para reducir el uso de base de datos, ha sido incrementar el tiempo de caché de cada página, ya que el contenido no se actualiza tan frecuentemente.
En próximas entregas hablaremos en profundidad de cómo configurar una caché.
Si te ha resultado útil este artículo agradecería si te suscribes a mi newsletter. Recibirás contenido exclusivo de calidad y también me ayudarás enormemente. Cada suscripción apoya el trabajo que realizo y me permite conocer mejor los temas que te interesan, de forma que puedo mejorar los conocimientos que comparto contigo.