Rotación de servidores y migración de sesiones
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
- Control de la rotación de servidores
- Migración automática de sesiones
- Activación de la migración de sesiones
- Gestión de las interrupciones del servicio y los eventos de rotación
- Activación de la migración de sesión
- Instalación y configuración de la migración de sesiones
- Preguntas frecuentes
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 se envía a su punto final de devolución de llamada registrado.
Véase el Control de la sesión documentación.
Si los clientes siguen conectados a una sesión cuando un conjunto de servidores se apaga debido a la rotación de servidores, un sessionDestroyed se establece en su URL de devolución de llamada. La dirección reason propiedad del sessionDestroyed El evento está programado para "serverRotation". Y 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, Permitir la migración de sesiones en los clientes.
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.
Fije el SetSessionMigration propiedad de un Session.Builder oponerse a true:
session = new Session.Builder(context, applicationId, sessionId){ SetSessionMigration = true }.Build();
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.
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.
Fije el sessionMigration propiedad de un OTSessionSettings oponerse a YES:
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.sessionMigration = YES;
Utiliza este objeto `OTsessionSettings` al llamar a la función [OTSession initWithApiKey:applicationId:delegate:settings:] método.
Pasar true en el setSessionMigration() método del Session.Builder objeto que se utiliza para crear un objeto Session:
mSession = new Session.Builder(this, applicationId, sessionId)
.setSessionMigration(true)
// other options
.build();
Cuando llamas al OT.initSession() pasar un objeto de opciones con el parámetro sessionMigration con el valor true:
const session = OT.initSession(
'12345abc', // your application ID
'1_MX40NzIwMzJ-clg1fn5-', // the session ID
{
sessionMigration: true,
},
);
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.
| Service | Continues without interuption |
|---|---|
| Clients connected with the client SDKs | Yes 1 |
| SIP clients | Yes |
| Audio Connector | Yes |
| Archives | Requires restart 2 |
| Live streaming broadcasts | Requires restart |
| Live captions | Requires restart |
| Experience Composer | Requires restart |
| 1 See Enabling session migration in clients. | |
| 2 Automatic archives restart automatically when the session migrates. | |
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 hay archivos o retransmisiones en curso correspondientes a la sesión original, puedes iniciar nuevos archivos o retransmisiones para la nueva sesión. En el caso de las retransmisiones, tendrás que enviar la nueva URL de la retransmisión a los clientes que la estén viendo.
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 de la nube de software requiere una capacidad continua de rotación de servidores. Vonage mantiene una ventana de 8 horas para evitar la rotación excesiva de 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».