Recientemente ayudó a algunas estaciones de vídeo para hacer la optimización de la arquitectura, pisó el hoyo a dudar de la vida. Un padre siempre se quejaba: "¿Por qué no gastar menos dinero, el usuario todavía escupir tarjeta en PPT?" Después de comprobar el enlace para encontrar que el 90% de los problemas en la estrategia de almacenamiento en caché CDN - ya sea la ruptura de caché conduce a la explosión de la presión de la estación de origen, o el mecanismo de precarga es una farsa.
Hoy en día, incluso los CDN tienen que "evitar compañeros de equipo". La configuración por defecto de algunos proveedores de servicios es simplemente malo, no se mueve de nuevo a la fuente para tirar del flujo, los costos de ancho de banda de la estación de origen se dispararon más rápido que un cohete. He encontrado que con la estrategia de almacenamiento en caché derecho puede cortar directamente el costo de ancho de banda a la mitad, el tiempo de búfer para reducir 80%. hoy hablar de este conjunto de combinaciones - segmentado almacenamiento en caché + precarga, absolutamente llevar el tráfico, la última experiencia de la gran mudanza.
En primer lugar, echemos agua fría: no creas en esas propagandas metafísicas de "aceleración del sitio completo con un solo clic". El tráfico de vídeo y la página web no es la misma cosa, el tráfico de ráfaga, larga conexión, el corte de archivos de gran tamaño, que pueden ser las reglas tradicionales de almacenamiento en caché hacia abajo. He visto el caso más escandaloso: una plataforma con una caché CDN ordinaria archivos MP4, el pico 95% solicitud de penetración caché, la estación de origen directamente golpeó el tiempo de inactividad. ¡Más tarde se encontró que los nodos CDN no se adaptan a la solicitud de Rango, cada cliente para volver a subir todo el video!
La caché segmentada es lo que se necesita en la era del vídeo. El principio es sencillo: dividir el archivo de vídeo en varios segmentos pequeños (como la segmentación ts de HLS o la estructura moov/mdat de MP4) y gestionar la caché y la política de caducidad en función de la granularidad del segmento. Por ejemplo, el primer minuto de contenido en caché durante 24 horas, la parte central de la caché durante 2 horas, el final de la caché durante 10 minutos... al fin y al cabo, lo normal es que el usuario se salte el final de la película.
Tomando como ejemplo el protocolo HLS, una configuración optimizada de Nginx tendría que escribirse así:
Este es el punto clave.proxy_cache_keyAsegúrate de traerlo.$slice_range¡Este es el paso que muchos Ops se pierden! Muchos O & M se perdió este paso, lo que resulta en diferentes solicitudes Range sobrescribir las cachés de los demás, en lugar de desencadenar la confusión. Sugiero el uso de la prueba de nodo de la familia CDN07, su apoyo a las solicitudes Range que algunos de los principales fabricantes son todavía estables, medido millones de concurrente tasa de aciertos de caché se puede mantener en 92% o más.
La segmentación no es suficiente, la precarga es la experiencia asesina. Sin embargo, las soluciones de precarga de 90% se basan en la "precarga ciega": los usuarios sólo ven 10 segundos, y es un desperdicio de ancho de banda almacenar toda la película en caché local. La mejor solución es combinarla con el análisis del comportamiento del usuario: 5 segundos después del comienzo de la película, hay que precargar el siguiente segmento, y a mitad de la película, la ventana de precarga se ajusta dinámicamente en función de la velocidad de la red. En un entorno de red débil, incluso hay que bajar a 144p para garantizar la fluidez.
Compartiremos la lógica de nuestro algoritmo de precarga de desarrollo propio:
No subestime estas líneas de código, la prueba real puede presionar la tasa de retraso por debajo de 3%. En particular, los nodos de borde de la familia CDN5 con esta estrategia, incluso en la escena de metro pico de la tarde, también puede hacer un segundo búfer abierto + cero.
A los ataques DDoS les gusta centrarse en la CDN de vídeo, porque el tráfico es grande y fácil de amplificar el efecto del ataque. Se recomienda vincular el parámetro de autenticación a la clave de caché:
Esta solicitud de token ilegal no volverá a la fuente en absoluto, y será interceptada directamente en el nodo front-end. El año pasado, este conjunto de soluciones para ayudar a una plataforma en vivo para resistir 800Gbps ataques CC, el ancho de banda de origen casi sin fluctuaciones.
Marca, una comparación exhaustiva de los tres: CDN5 tiene la capacidad de defensa más fuerte, viene con WAF y garantía de expansión de ancho de banda, pero el precio es alto; CDN07 programación inteligente para hacer difícil, especialmente en el extranjero nodos de control de latencia es excelente; 08Host pertenece al carnicero precio-rendimiento, la línea BGP doméstica es estable, adecuado para equipos pequeños y medianos con presupuestos ajustados. Si la búsqueda de la última experiencia, usted puede participar en la programación mixta - áreas clave con CDN5 para llevar a los ataques, los usuarios de ultramar ir CDN07, contenido ordinario objeto de dumping a 08Host.
Por último, un dato bomba: después de que una aplicación de vídeo corto con 10 millones de actividades mensuales accediera a la estrategia combinada, el coste del ancho de banda de la estación de origen bajó de 370.000 a 150.000 al mes, y el tiempo medio de almacenamiento en búfer bajó de 2,1 segundos a 0,4 segundos. ¿Mejora de la satisfacción del usuario? Es suficiente para que la valoración de la App Store se dispare de 3,2 a 4,7.
Optimización de vídeo es un negocio que muere rápidamente en el papel. Realmente quieren resolver el problema, tiene que sostener el instrumento en cuclillas sala de máquinas, paquetes de captura para analizar cada RTT. los que hablan de "caché global" de los expertos, se recomienda tirar directamente - que probablemente incluso Rango solicitud y Contenido-Longitud no se pueden distinguir.
Por cierto, algunos clientes tienen que comprar un CDN con "protección ultra alta pero sin caché" por un precio barato, y luego se sorprenden por la factura del tráfico y se colapsan. Recuerde, protección y aceleración es una relación simbiótica, separar es una canallada.
Compruebe ahora la configuración de su CDN. Si encuentra que elX-Cache-StatusUna pizca de MISS ahí, date prisa y no te guste la caché segmentada y la precarga. Ahorrar suficiente dinero para dar al equipo de medio año de bonificación.

