¿Qué tipo de infraestructura necesito para ejecutar un servidor interno que entregue video a 10,000 suscriptores?

El número total de suscriptores no es una buena medida para tratar de estimar qué tipo de infraestructura necesitará. Necesita saber la siguiente información.

  • El número promedio y máximo de suscriptores concurrentes (es decir, cuántas personas descargarán videos al mismo tiempo)
  • La tasa de bits deseada para los videos. Esto dependerá de la calidad (relación de compresión, resolución, profundidad de color y velocidad de fotogramas) del video que desea publicar. Como regla general, 30 KB por segundo para video de 320 × 240 dará un buen resultado (rentable). Para 640 × 360 eso será alrededor de 70 KB por segundo. A modo de comparación, la calidad del DVD es de aproximadamente 500 KB por segundo.
  • Cuántos videos y cuánto duran. Esto le permitirá calcular cuánto espacio en disco necesitará.
  • Cuántos minutos totales de video se miran en un mes.

Deberá multiplicar la tasa de bits de sus videos por la cantidad máxima de suscriptores concurrentes que desea admitir para calcular el ancho de banda máximo que necesita. Asegúrese de agregar un factor de “seguridad” para asegurarse de tener alguna reserva (sugeriría al menos duplicar su estimación)

Multiplique la tasa de bits por la cantidad total de horas de video que desea almacenar en su servidor. Nuevamente agregue un margen de seguridad para una buena medida.

Multiplique la tasa de bits por la cantidad total de minutos de video que se verán cada mes para calcular la cantidad total de transferencia de datos que necesitará de su proveedor de alojamiento.

Entonces, agreguemos algunos supuestos razonables.

Digamos que tiene un total de 10 horas de video 640 × 360 a una velocidad de bits de 100K por segundo.
Tendrá un máximo de 50 personas viendo videos en cualquier momento y cada uno de sus suscriptores mirará un * promedio * de 30 minutos (1800 segundos) de video por mes.

Eso significa:

Ancho de banda máximo = 50 personas x 100KBytes x 2 (seguridad) = 10 MBytes por segundo

Almacenamiento total = 360,000 segundos (10 horas) x 100KBytes = 36 GigaBytes + un margen de seguridad, digamos 50 GigaBytes

Transferencia de datos = 10,000 suscriptores x 1800 segundos x 100KB = 1.8 Terabytes por mes.

El hardware para lo anterior sería alcanzable por un costo relativamente modesto en el mundo occidental.

Un único servidor decente (no administrado) en Europa con una conexión de ethernet gigabit le costará entre 100 y 200 euros al mes. Este costo puede variar considerablemente en su país. También presumiblemente necesitará a alguien que lo apoye / administre por usted.

Deberá configurar el software de transmisión en el servidor. Esto se puede hacer con el módulo de transmisión nginx mp4 o el módulo Apache H264.

Es posible que desee algún tipo de sistema de administración de contenido para administrar la carga y presentación del video. IMO Drupal sería ideal para esto.

Es posible que desee investigar un programa llamado FFmpeg para procesar sus videos automáticamente. (es decir, agregue una marca de agua con su nombre de dominio, convierta automáticamente a diferentes formatos de video, etc.)

En cuanto a lidiar con el escalado de los aumentos repentinos de “registros”, no serán los registros los que causen un problema. La transmisión de video será el cuello de botella que estará limitado por el ancho de banda máximo de la conexión a Internet de sus servidores (o, para el caso, la “red troncal de Internet” de su país). No podrá escalar rápidamente su ancho de banda bajo demanda, por lo que debe comprar la conexión más rápida que pueda pagar razonablemente.

Como medida adicional, puede programar su servidor para que transmita versiones de menor velocidad de bits de su video si / cuando la demanda estuvo cerca de maximizar su conexión.

También hay un estándar emergente llamado WebRTC que permite conexiones entre pares entre navegadores. Esto * posiblemente * podría usarse para distribuir video entre visitantes de manera similar al mecanismo utilizado por el popular programa de intercambio de archivos, Bittorrent. Pero esto es muy avanzado y debe esperar pagar costos de desarrollo significativos y continuos si decide investigar esta ruta.

En cuanto a los costos totales, es difícil de decir porque el costo de la mano de obra calificada es muy variable y sería, con mucho, el mayor costo. Si alguien me pidiera que construyera algo como esto, estimaría que el costo sería de £ 50K GBP a £ 150K GBP. (Más si desea explorar la oportunidad que ofrece WebRTC)

Esto depende del contenido que vaya a transmitir y el ancho de banda que se utilizará.

También debe pensar en el acceso si será al mismo tiempo o usar alguna probabilidad para saber cuánto usuario concurrente obtendrá acceso al mismo tiempo.