¿Tiempo del primer byte vs CDN?

¿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?

La CDN será más lenta hasta que almacene los recursos en caché. Es posible que debas esperar un tiempo antes de realizar cualquier prueba.

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.

¿Pero estamos hablando de una situación una vez que agreguemos la dirección del CDN a nuestro archivo app.yml o no?

¿Y cuál es la razón para usar un subdominio para la dirección del CDN? Es decir, ¿por qué no puede ser DISCOURSE_CDN_URL: //637763234.cdn-provider.com y debe ser discourse-cdn.example.com??

Sí, lo sé, pero estoy verificando con diferentes herramientas de prueba desde muchas regiones del mundo. ¡Y la CDN es siempre más lenta!

¿Estás hablando del TTFB en qué ruta exactamente?

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.

¿Puedes explicar exactamente a qué te refieres?

Estoy dando los resultados para el foro de prueba. (por cierto, acaba de salir un poco más rápido) // Pero solo es en un dominio nuevo sin contenido.

y para el creado en CloudFront

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.

¿Y hay alguna diferencia si estos recursos (activos estáticos) se mantienen en S3?

No, no hay ninguno. La CDN almacenará en caché esos recursos de S3 cuando sea necesario.

Eso es simplemente una dirección de vanidad, no es necesaria en absoluto.

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/.

¿Entonces cómo se supone que debo analizarlo?