Prácticas recomendadas para la entrega de contenido

En esta página, se proporcionan recomendaciones para optimizar y acelerar la publicación de contenido con Cloud CDN. Las secciones se dividen en varias áreas clave.

Cloud CDN usa un balanceador de cargas de aplicaciones externo como el origen del contenido que se puede almacenar en caché. Un balanceador de cargas de aplicaciones externo puede entregar una combinación de contenido creado de forma estática y dinámica a los usuarios a través de una dirección IP global de los siguientes tipos de backends:

Debido a la integración continua con Google Cloud, tienes varias formas de implementar Cloud CDN y administrar contenido. Usa las prácticas recomendadas que se enumeran a continuación para planificar y definir mejor la implementación. Para obtener más información, consulta Configura Cloud CDN.

Optimiza la tasa de aciertos de caché

Las siguientes prácticas recomendadas ayudan a optimizar la tasa de aciertos de caché.

Almacena en caché el contenido estático

Como práctica recomendada para mejorar el rendimiento, cuando habilitas Cloud CDN, debes elegir el modo de almacenamiento en caché correcto para la aplicación.

El método más flexible y, por lo general, preferido para administrar las reglas de caché es el uso del encabezado de control de caché. Si no estás familiarizado con el uso de encabezados de control de caché de origen, la práctica recomendada es permitir que Cloud CDN almacene en caché el contenido estático de forma automática.

Para almacenar en caché de forma automática las respuestas estáticas del origen, puedes usar la configuración --cache-mode=CACHE_ALL_STATIC (valor predeterminado). Esta configuración permite que Cloud CDN almacene en caché los tipos de contenido estático comunes cuando el origen no especifica ninguna directiva de almacenamiento en caché en los encabezados de respuesta. Asegúrate de que el contenido coincida con las categorías descritas anteriormente; de lo contrario, el contenido no se almacena en caché.

No almacenes en caché el contenido específico del usuario

En algunos casos, los navegadores pueden almacenar en caché contenido específico del usuario. No uses Cloud CDN para almacenar en caché contenido específico del usuario.

Usa claves de caché personalizadas para mejorar la tasa de aciertos de caché

Para el rendimiento y la escalabilidad, es importante optimizar la tasa de aciertos de caché. Según la configuración predeterminada, Cloud CDN usa la URL de solicitud completa para compilar la clave de caché. Para ayudar a optimizar la tasa de aciertos de caché, puedes usar las claves de caché personalizadas de modo que Cloud CDN no fragmente la caché de forma innecesaria.

Almacén de par clave-valor de Cloud CDN (haz clic para ampliar).

Las claves de caché personalizadas te permiten omitir o incluir cualquier combinación de protocolo, host y string de consulta. A continuación, se muestran algunos ejemplos de cuándo puedes usar claves de caché personalizadas:

  • Tienes dos hosts que se resuelven en la misma dirección IP y van al mismo servicio. En este ejemplo, todo el sitio web es el mismo en ambos hosts. De forma predeterminada, Cloud CDN almacena en caché dos copias debido al diferente encabezado Host: en las solicitudes HTTP. Con una clave de caché personalizada, puedes hacer que Cloud CDN ignore la parte del host de la solicitud y comparta las entradas de la caché.

  • En un ejemplo más específico, puedes tener dos sitios web en dominios diferentes que usen el mismo logotipo. El contenido del sitio web es diferente, pero puedes usar el mismo logotipo de la empresa en ambos dominios y tienes un servicio de backend dedicado que tiene contenido compartido. Cuando habilites Cloud CDN y personalices las claves de caché para el servicio de backend que contiene el logotipo, anula la selección de la casilla de verificación Host para que la caché ignore el dominio, pero almacene en caché el logotipo.

  • El logotipo debe almacenarse en caché, ya sea que se muestre a través de HTTP o HTTPS. Cuando personalices las claves de caché para el servicio de backend que contiene el logotipo, borra la selección de la casilla de verificación Protocolo para que las solicitudes a través de HTTP y HTTPS cuenten como coincidencias para la entrada de caché del logotipo.

Para aprender a personalizar las claves de caché, consulta Usa claves de caché.

Optimiza el rendimiento

Las siguientes prácticas recomendadas ayudan a optimizar el rendimiento.

Asegúrate de que la compatibilidad con el protocolo HTTP/3 y QUIC esté habilitada.

HTTP/3 es un protocolo de Internet de última generación. Se basa en QUIC, un protocolo desarrollado a partir del protocolo Google QUIC (gQUIC) original. HTTP/3 es compatible entre el balanceador de cargas HTTP(S) externo, Cloud CDN y los clientes.

Para aumentar el rendimiento con Cloud CDN, asegúrate de que HTTP/3 esté habilitado.

Usa el almacenamiento en caché negativo

El almacenamiento en caché negativo proporciona un control detallado sobre el almacenamiento en caché para errores o redireccionamientos comunes. Cuando Cloud CDN encuentra códigos de respuesta específicos, retiene esa respuesta en caché para un TTL configurado. Esto puede reducir la carga en los orígenes y mejorar la experiencia del usuario final mediante la reducción de la latencia de respuesta.

Optimiza la seguridad

Las siguientes prácticas recomendadas ayudan a optimizar la seguridad.

Usa Google Cloud Armor

Google Cloud Armor se integra en Cloud CDN para el contenido almacenado en caché y no almacenado en caché o con errores de caché. Una recomendación es usar Google Cloud Armor junto con Cloud CDN siempre que sea posible para aumentar la seguridad de las aplicaciones web.

Usa URL firmadas

Si usas URLs firmadas, ten en cuenta lo siguiente:

Cómo autenticar orígenes privados

La autenticación de origen ofrece una garantía sólida de que la solicitud proviene solo de tu propio servicio de backend configurado. También ofrece protección de datos en tránsito para la solicitud y protege contra el uso reutilizado de la parte firmada de la solicitud.

Te recomendamos que uses la autenticación de origen privado para los buckets de Amazon S3 o los almacenes de objetos compatibles. La autenticación de origen privado ayuda a garantizar que solo las conexiones de confianza accedan al contenido de tus orígenes privados y que los usuarios no accedan a ellos directamente.

Además, si los firewalls de origen impiden el acceso al origen, usa la lista de entidades permitidas de IP para asegurarte de que una solicitud provenga de Cloud CDN o del balanceador de cargas de aplicaciones externo. Sin embargo, esto no impide que otros clientes de Media CDN intenten acceder a tu contenido especificando tu origen en su configuración.

Optimiza la caché

Las siguientes prácticas recomendadas ayudan a optimizar la caché.

Optimiza los TTL para el almacenamiento en caché

Puedes configurar o anular los TTL para ajustar por cuánto tiempo Cloud CDN almacenará en caché tus respuestas y cuándo Cloud CDN volverá a validarlas.

También puedes definir un TTL orientado al cliente para aprovechar al máximo las memorias caché del navegador.

Para obtener más información, consulta Usa la configuración y las anulaciones de TTL.

Establece el vencimiento del contenido urgente

Cada fragmento de contenido en una caché de Cloud CDN tiene un plazo de vencimiento asociado, y es importante establecer un vencimiento que sea adecuado para el caso de uso. Debido a que los servidores de origen deben reenviar el contenido que vence en los servidores de caché, debes elegir el vencimiento con cuidado.

Un método para elegir el vencimiento es clasificar el contenido según la frecuencia con la que lo actualizas, por ejemplo:

  • Actualizaciones casi en tiempo real, como los feeds en vivo de eventos deportivos o el tráfico
  • Actualizaciones frecuentes, como información meteorológica semanal, diaria o por hora, o imágenes de noticias de primera plana
  • Actualizaciones poco frecuentes, como un logotipo de sitio web, CSS o archivos de JavaScript

A continuación, elige el vencimiento por categoría de contenido. Por ejemplo, un vencimiento de cinco segundos podría ser adecuado para las puntuaciones deportivas casi en tiempo real, y un vencimiento de una hora podría usarse para actualizaciones meteorológicas. Para el contenido almacenado en Cloud Storage, configura los plazos de vencimiento mediante los metadatos de Cache-Control. Cuando Compute Engine entrega el contenido, puedes controlar los plazos de vencimiento mediante la configuración del software del servidor web.

Los valores max-age y s-maxage especifican la hora de vencimiento en el encabezado de Cache-Control. La especificación HTTP define este encabezado. Por ejemplo, el siguiente encabezado de Cache-Control hace que el contenido asociado pueda leerse de forma pública y pueda almacenarse en caché con un vencimiento de la caché de 72 horas (259,200 segundos):

  Cache-Control: public, max-age=259200

Para maximizar el almacenamiento en caché, sigue los lineamientos de la Descripción general del almacenamiento en caché. Recuerda que los valores max-age y s-maxage del campo de metadatos de Cache-Control funcionan juntos de las siguientes maneras:

  • Los valores max-age y s-maxage se miden en segundos.
  • El valor s-maxage solo se aplica a las memorias caché compartidas, no a las memorias caché del navegador.
  • El valor max-age se aplica a todas las memorias caché, a menos que s-maxage lo anule.

En el caso del contenido que cambia con poca frecuencia o que debe cambiar junto con el contenido relacionado, a menudo resulta apropiado usar un plazo de vencimiento prolongado junto con las URL con versiones.

Usa URL con versiones para actualizar el contenido

El contenido del control de versiones entrega una versión diferente del mismo contenido. Para ello, lo quita de manera efectiva y muestra a los usuarios el contenido nuevo antes de que venza la entrada de la caché. Debido a que el control de versiones es gratuito, te recomendamos que uses el control de versiones como enfoque predeterminado para actualizar el contenido que puede almacenarse en caché.

Para establecer la versión del contenido, agrega un parámetro a la URL como un número de versión. Existen varias formas de incluir parámetros en las URL, como las que se enumeran a continuación:

  • Agrega una string de consulta: file.ext?v=100.

    En el caso de los bucket s de backend, cualquier string de consulta que se usa para el control de versiones debe especificarse en la configuración del bucket de backend. Si deseas obtener más información, consulta la Lista de inclusiones de string de consulta para las claves de caché de Cloud Storage.

  • Cambia el nombre del archivo: file.1.0.0.ext o file_v100.ext.

  • Cambia la ruta: /v100/file.ext.

Cuando agregas el parámetro, cambias el nombre del archivo y la URL. Este cambio obliga a la caché a ignorar cualquier entrada de caché existente.

Usa la invalidación con moderación para quitar el contenido

La invalidación quita el contenido de los servidores de caché distribuidos en Cloud CDN antes de que se produzca el vencimiento de la entrada de caché. La invalidación tiene coherencia eventual.

Te recomendamos utilizar la invalidación con moderación y solo como último recurso. Por ejemplo, la invalidación es útil cuando debes quitar el contenido por razones legales o debido a una carga accidental. De lo contrario, te recomendamos utilizar el control de versiones siempre que sea posible, o espera hasta que el contenido venza normalmente. Los servidores de caché de Cloud CDN expulsan de manera habitual el contenido al que se accede con poca frecuencia a fin de dejar lugar para el contenido nuevo. El contenido al que no se accede durante 30 días se quita de forma incondicional.

Las invalidaciones de caché tienen una tasa limitada.

Para obtener más información sobre la invalidación, consulta Descripción general de la invalidación de caché.

Optimiza la coherencia de los archivos subidos

Las siguientes prácticas recomendadas ayudan a optimizar la coherencia de las cargas de archivos.

Evita actualizar archivos existentes

En lugar de actualizar los archivos existentes, sube versiones nuevas.

Para los archivos nuevos, usa nombres únicos que puedan incluir números de versión o fechas. Si agregas un número de versión (por ejemplo, file_v2.css) o una fecha (por ejemplo, file_20230806.js) al nombre del archivo, te aseguras de que Cloud CDN recupere la versión correcta y actualizada. No se recomienda agregar un parámetro a la URL del archivo (por ejemplo, file.css?v=2) para forzar la recuperación de una versión nueva, ya que este enfoque no aborda el riesgo de almacenar en caché una actualización de archivo de origen no atómico, en la que aún se pueden almacenar en caché archivos parciales o incompletos.

Es fundamental subir versiones nuevas de las dependencias antes de subir los archivos que hacen referencia a ellas. Esta práctica ayuda a garantizar que todas las referencias sean a archivos completos y actualizados, lo que reduce el riesgo de entregar archivos truncados o parcialmente actualizados.

Realiza actualizaciones atómicas en los archivos

Cuando sea necesario actualizar los archivos existentes, hazlo de forma atómica.

Si se accede a un archivo y se almacena en caché antes de que se complete una carga, es posible que se almacene en caché como un archivo incompleto o truncado. Por ejemplo, un archivo, como /index.html, no puede tener un nombre único, pero puede apuntar a otros archivos que sí lo tienen.

Si subes un archivo con su nombre de destino, es posible que se almacenen en caché archivos incompletos cuando se acceda a ellos durante la carga. En su lugar, sube el archivo con un nombre temporal y cámbiale el nombre al nombre de destino solo después de que se complete la carga. Esta práctica ayuda a garantizar que el archivo esté disponible de forma completa y de inmediato cuando se haga referencia a él.

Cuando se actualizan los archivos existentes, la caché de rango de bytes puede hacer que Cloud CDN retenga rangos del archivo anterior después de subir el archivo nuevo. Si Cloud CDN tiene rangos almacenados en caché del archivo anterior, las solicitudes de fragmentos faltantes pueden generar respuestas parciales. Esto sucede porque Cloud CDN detecta que el archivo de origen cambió (porque cambia etag o last-modified), borra el contenido inactivo, desconecta las descargas en curso y genera un error, lo que le solicita al cliente que vuelva a intentarlo. Para mitigar este problema, emite invalidaciones para los archivos almacenados en caché de rango de bytes que se están actualizando.

Optimiza Monitoring y Logging

Las siguientes prácticas recomendadas ayudan a optimizar la supervisión y el registro.

Asegúrate de que los registros estén habilitados para Cloud CDN

Una práctica recomendada para administrar Cloud CDN es asegurarse de que el registro esté habilitado para todos los backends habilitados de Cloud CDN.

Usa el panel de supervisión personalizado para Cloud CDN

Para garantizar una mayor confiabilidad y un mayor rendimiento, se recomienda revisar con regularidad las métricas de supervisión relacionadas con Cloud CDN. Recomendamos comenzar con el panel de supervisión personalizado de Cloud CDN.

Revisa las pruebas de rendimiento de terceros

Revisa los informes de proveedores de terceros, como los informes de disponibilidad, latencia y capacidad de procesamiento que proporciona Citrix Radar.