¿Cuáles son las diferencias entre cargar una página usando un CDN y qué tipo de proveedores estás utilizando?
Tengo tiempos de carga mucho más largos al usar el CDN. ¿Puedo estar haciendo algo mal o hay algo que no conozco? ¿Quizás debería configurar algunas opciones que no conozco?
Bueno, la primera pista… gracias a .
Un poco. ¿Cuánto? ¿Estamos hablando de días, semanas?
¿Deberíamos forzar la carga del payload en HTTPS o más bien en HTTP? Lo pregunto porque hay diferencias en la carga. ¿De qué depende si la página se carga por completo o parece que el JavaScript original no se haya cargado??
El plazo dependerá de cómo interactúen los usuarios con el sitio. Los activos más descargados se cargarán en la caché de la CDN y serán más rápidos si estás más cerca del servidor de la CDN que del servidor original.
Si tienes el centro de datos cerca de ti y el servidor de la CDN está a 1000 km de distancia, siempre será más lento. La idea de la CDN es ofrecer un mejor servicio a una audiencia geográficamente diversa, no mejorar las visitas centralizadas.
El TTFB para un recurso estático (como un archivo JS o una imagen JPG subida por un usuario) siempre será rápido al usar una CDN, ya que la latencia de los múltiples PoP solo ayuda en ese caso.
Por otro lado, no tiene sentido comparar el TTFB de las rutas dinámicas, ya que nuestro DISCOURSE_CDN_URL no las cubre de todos modos.
Lo que estás viendo es simplemente una variación normal. La CDN no tendrá ningún impacto en el tiempo hasta el primer byte en la raíz de tu instancia de Discourse ni en ninguna otra ruta dinámica. Una CDN solo servirá los activos estáticos.
Esperaba que la CDN acelerara la carga de la página, pero supongo que será insignificante.
¿Existen otras formas mucho más efectivas de acelerar la carga de la página para diferentes partes del mundo, además de aumentar los recursos de RAM y CPU?
TTFB es el tiempo que tarda el servidor de la aplicación en enviar una respuesta 200. No puedes mejorarlo usando una CDN, ya que la CDN solo sirve activos.
Acelerarás la página, pero no el primer byte. Acelerarás la carga de contenido multimedia (imágenes, PDF, videos) y de JavaScript. Esto mejorará la agilidad del sitio, pero todo el contenido dinámico deberá cargarse desde el servidor central.
Por lo tanto, por ejemplo, los avatares de los usuarios cargarán más rápido, pero no los títulos de los temas.
Dado que Discourse bloquea la renderización a la espera de JS y CSS, aún podrás hacer que la página sea interactiva más rápido aprovechando una CDN.
Realizar este tipo de análisis requiere un poco más que ejecutar a ciegas Lighthouse y WebPageTest, elegir un resultado y obsesionarse con él.
Si tu prioridad es tener una página con una puntuación más alta en esas herramientas, te recomiendo ejecutar un blog impulsado por herramientas como https://jekyllrb.com/.