Rotación de servidores y migración de sesiones
Buenas prácticas para gestionar las rotaciones de los servidores de la Video API y conseguir que los clientes se vuelvan a conectar automáticamente cuando se produzcan.
El autoescalado moderno de la nube hace necesario establecer un tiempo mínimo de rotación de los servicios. Las sesiones que duren más de 8 horas podrían desconectarse, ya que pueden residir en servicios que se están escalando hacia fuera o hacia dentro.
Este tema incluye las siguientes secciones:
Servicios afectados por la rotación de servidores
Los servicios que siguen funcionando con la rotación de servidores son los siguientes:
- Sesión en directo
- Llamadas SIP
Todos los demás servicios se detienen en el momento de la rotación.
Control de la rotación de servidores
Puede registrar una URL de devolución de llamada para que los eventos de sesión se envíen a su URL de devolución de llamada. Cuando se programa la rotación de un grupo de servidores de la Video API para una de sus sesiones, se envía un sessionNotification El evento se envía a tu punto final de llamada de retorno registrado.
Consulta el Control de la sesión documentación.
Si los clientes permanecen conectados a una sesión cuando un conjunto de servidores se apaga debido a la rotación de servidores, un sessionDestroyed El evento se envía a tu URL de devolución de llamada. El reason propiedad del sessionDestroyed El evento está programado para "serverRotation". Cada cliente conectado se desconecta de la sesión y recibe un sessionDestroyed evento.
Los clientes que utilicen la versión 2.30.0 o posterior de los SDK de cliente de la Video API pueden permanecer conectados automáticamente a una sesión cuando se produzca una rotación de los servidores de dicha sesión. Consulte la siguiente sección, Migración automática de sesiones.
Para los clientes que utilicen versiones anteriores de los SDK de cliente, hay una serie de medidas que pueden tomar ante un sessionNotification para mantener a los clientes conectados. (Véase Respuesta a eventos de notificación de sesión de rotación de servidor.)
Migración automática de sesiones
La función de migración de sesiones transfiere sin problemas a todos los participantes de una sesión a un nuevo servidor durante la rotación de servidores. Esta función garantiza la continuidad de la sesión con una interrupción mínima para los participantes.
La migración de sesiones está disponible en la versión 2.30.0 o posteriores de los SDK de cliente. Consulte la siguiente sección, Activación de la migración de sesiones.
Las ventajas de habilitar la migración de sesiones incluyen una mayor fiabilidad, tiempos de reconexión reducidos y una experiencia de usuario ininterrumpida durante las transiciones de servidor planificadas. Tenga en cuenta que sólo se migran las sesiones activas. Las grabaciones en curso pueden interrumpirse durante la migración y tendrán que reiniciarse manualmente. Respuesta a eventos de notificación de sesión de rotación de servidor.
Para obtener instrucciones detalladas de configuración, ejemplos de código (incluidos SIP, Audio Connector, Video Connector y Migrate Session API), consulte la página Migración de sesiones: instalación y configuración guía.
Activación de la migración de sesiones
Al inicializar una sesión en los SDK de cliente de la Video API, puedes configurar una opción para que el cliente permanezca conectado a la sesión durante la rotación de servidores.
Por defecto, la opción de migración de sesión está configurada en false. Asegúrese de ponerlo en true para habilitar la migración de sesión en cada cliente.
Client SDK para cliente web (OpenTok.js)
Cuando llame OT.initSession(), pasa un objeto de opciones con el sessionMigration con el valor true:
const session = OT.initSession(
'12345', // your application ID
'1_MX40NzIwMzJ-clg1fn5-', // the session ID
{
sessionMigration: true,
},
);
Client SDK para clientes de Android
Pasar true en el setSessionMigration() método del Session.Builder objeto que se utiliza para crear un objeto Session:
mSession = new Session.Builder(this, apiKey, sessionId)
.setSessionMigration(true)
// other options
.build();
Client SDK para clientes iOS
Fije el sessionMigration propiedad de un OTSessionSettings oponerse a YES:
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.sessionMigration = YES;
Utiliza esto OTSessionSettings objeto al llamar a la [OTSession initWithApiKey:sessionId:delegate:settings:] método.
Client SDK para clientes de Windows
Fije el SetSessionMigration propiedad de un Session.Builder oponerse a true:
session = new Session.Builder(context, apiKey, sessionId){ SetSessionMigration = true }.Build();
SDK para clientes de Linux y macOS
Llame al otc_session_settings_set_session_migration() introduciendo OTC_TRUE como segundo parámetro:
otc_session_settings_set_session_migration(settings, OTC_TRUE);
A continuación, pase el otc_session_settings struct como el settings parámetro en la llamada a la otc_session_new_with_settings() método.
Client SDK de React Native
Fije el sessionMigration propiedad del options prop del componente OTSession a true:
<OTSession
options={{
sessionMigration: true,
// other options
}}
/>
Gestión de las interrupciones del servicio y los eventos de rotación
Cuando una sesión se migra tras una rotación de servidores, muchos servicios continúan sin que sea necesario realizar ninguna acción, tal y como se indica en la siguiente tabla. Sin embargo, los archivos, las retransmisiones en directo y las instancias de Experience Composer en curso para esa sesión finalizan cuando la sesión se migra.
| Servicio | Continúa sin interrupción |
|---|---|
| Clientes conectados mediante los SDK de cliente | Sí 1 |
| Clientes SIP | Sí |
| Conector de audio | Sí |
| Archivos | Es necesario reiniciar 2 |
| Retransmisiones en directo | Es necesario reiniciar el sistema |
| Subtítulos en directo | Es necesario reiniciar el sistema |
| Experiencia con Composer | Es necesario reiniciar el sistema |
| 1 Véase Permitir la migración de sesiones en los clientes. | |
| 2 Archivos automáticos reiniciarse automáticamente cuando se migre la sesión. |
Puedes controlar la rotación de servidores en las sesiones para saber cuándo se produce la rotación de sesión. Tras la migración de la sesión, puede iniciar nuevos archivos, retransmisiones en directo o instancias de Experience Composer para la nueva sesión.
Si los clientes de la sesión no pueden utilizar la versión 2.30.0 o posterior para activar migración de sesionesEn caso contrario, deberá tomar medidas para volver a conectarlos tras la rotación de servidores. Cuando se rotan los servidores de la sesión (una hora después de que se envíe el evento de notificación de sesión), los clientes conectados a la sesión que no tengan activada la migración de sesión se verán obligados a desconectarse de la sesión. Cuando su servidor de aplicaciones recibe una llamada de retorno de notificación de sesión de rotación de servidor, puede tomar medidas para reconectar a estos clientes a una nueva sesión:
-
Crea una nueva sesión de la Video API mediante la API REST de la Video API o un SDK de servidor de la Video API.
-
Envíe el ID de sesión de la nueva sesión a los clientes conectados a la sesión. Puede utilizar la API REST de Video o un SDK de servidor de Video API para enviar la señal a los clientes conectados. Consulte esta documentación.
-
Los clientes deben desconectarse inmediatamente de la sesión original y volver a conectarse a la nueva sesión.
Para que la transición entre sesiones sea más fluida y para reducir al mínimo el tiempo de reconexión, los clientes pueden permanecer conectados a la sesión inicial y cambiar la visualización de vídeo antes de desconectarse de la sesión inicial (al conectarse a la nueva sesión).
Activación de la migración de sesión
Puede iniciar manualmente el proceso de migración de sesión utilizando la función migración de sesiones API REST. Este enfoque le proporciona una mayor flexibilidad y control sobre las migraciones de sesión, permitiéndole minimizar las interrupciones durante las operaciones de mantenimiento o escalado del backend. Al activar la migración en el momento que mejor se adapte a sus necesidades operativas, podrá garantizar mejor la continuidad de los servicios que puedan verse afectados durante el proceso de migración de sesiones. Para obtener más información sobre los servicios que pueden sufrir interrupciones, consulte la sección interrupciones del servicio sección.
Sólo puede migrar la sesión si no hay ninguna migración en curso para esa sesión y si la sesión no se ha creado o migrado recientemente.
Preguntas frecuentes
¿En qué consiste la rotación de servidores de la Video API? ¿Con qué frecuencia se actualizan los servidores de la Video API?
La escalabilidad del software en la nube requiere una capacidad continua para rotar servidores. Vonage mantiene un margen de 8 horas para evitar una rotación excesiva de las sesiones de larga duración. Las rotaciones pueden producirse a diario.
Hay varias razones principales para rotar un servidor multimedia. Los motivos principales son el mantenimiento, las actualizaciones de software, los parches de seguridad, el mantenimiento de la infraestructura y el autoescalado elástico:
-
Mantenimiento, seguridad y nuevas actualizaciones de software: los servicios se mejoran periódicamente. Puede tratarse de actualizaciones de software —que son menos frecuentes—, parches de seguridad o actualizaciones de la infraestructura.
-
Mantenimiento en la nube de sistemas con problemas - Entre las alertas de la infraestructura, la detección de posibles anomalías o los procedimientos de la infraestructura para refrescar los sistemas en la nube, los sistemas pueden ponerse automáticamente fuera de servicio, respetando los límites de 8 horas, para garantizar que no haya problemas prolongados.
-
Autoescalado elástico: los sistemas también se activan y desactivan periódicamente para gestionar las cargas dentro de las regiones y dar respuesta a las necesidades de capacidad que implican el servicio ininterrumpido («follow the sun»). Por ello, a largo plazo, los servidores con poca carga pueden incorporarse al sistema para consolidar la infraestructura.
¿Puedo utilizar el mismo ID de sesión para volver a conectarme una vez que la sesión se haya desconectado debido a la rotación de servidores?
Los clientes que utilicen la versión 2.30.0 o posterior de los SDK de cliente de la Video API pueden permanecer conectados automáticamente a una sesión durante la rotación del servidor. Consulte Migración automática de sesiones.
Si no todos los clientes pueden utilizar la versión 2.30.0 o posterior de los SDK de cliente, puedes hacer que se vuelvan a conectar a una sesión. Se recomienda utilizar un nuevo ID de sesión para garantizar que la nueva sesión se dirija a una nueva instancia del servidor. Si la sesión se desconecta debido a la rotación de servidores, todos los clientes quedarán desconectados. Si se utiliza el mismo ID de sesión, la reconexión se trasladará a un nuevo servidor una vez finalizada la sesión, siguiendo el Evento «sessionDestroyed».