Rotation des serveurs et migration des sessions
La mise à l'échelle automatique des nuages modernes rend nécessaire l'établissement d'une durée de rotation minimale pour les services. Les sessions qui durent plus de 8 heures risquent d'être déconnectées, car elles peuvent résider dans des services qui sont en train de se déconnecter ou de se reconnecter.
Cette rubrique comprend les sections suivantes :
- Services concernés par la rotation des serveurs
- Contrôle de la rotation des serveurs dans les sessions
- Migration automatique des sessions
- Activation de la migration de session dans les clients
- Perturbations des services et réponse aux notifications de rotation des serveurs
- Déclenchement de la migration de session
- FAQ
Services concernés par la rotation des serveurs
Les services qui continuent à fonctionner selon le principe de la rotation des serveurs sont les suivants :
- Session en direct,
- Appels SIP.
Tous les autres services sont arrêtés lors de la rotation.
Contrôle de la rotation des serveurs dans les sessions
Vous pouvez enregistrer une URL de rappel pour que les événements de session soient envoyés à votre URL de rappel. Lorsqu'une rotation d'un groupe de serveurs Video API pour l'une de vos sessions est programmée, un message d'alerte sessionNotification est envoyé à votre point de rappel enregistré.
Voir le Suivi de la session documentation.
Si les clients restent connectés à une session alors qu'un ensemble de serveurs est arrêté en raison de la rotation des serveurs, un sessionDestroyed est défini sur votre URL de rappel. L'événement reason de la propriété sessionDestroyed est réglé sur "serverRotation". Et chaque client connecté est déconnecté de la session et reçoit un sessionDestroyed événement.
Les clients utilisant la version 2.30.0 ou ultérieure des SDK clients de l'API Video peuvent rester automatiquement connectés à une session lorsque les serveurs de la session changent. Voir la section suivante, Migration automatique des sessions.
Pour les clients utilisant des versions plus anciennes des SDK clients, il existe des mesures à prendre en réponse à un message de type sessionNotification pour que les clients restent connectés. (Voir Réponse aux événements de notification de la session de rotation du serveur.)
Migration automatique des sessions
La fonction de migration de session permet de transférer en toute transparence tous les participants à une session vers un nouveau serveur lors de la rotation des serveurs. Cette fonction assure la continuité de la session avec un minimum de perturbations pour les participants.
La migration de session est disponible à partir de la version 2.30.0 des SDK clients. Voir la section suivante, Activation de la migration de session dans les clients.
L'activation de la migration de session a pour avantage d'améliorer la fiabilité, de réduire les temps de reconnexion et d'offrir aux utilisateurs une expérience ininterrompue lors des transitions de serveur planifiées. Notez que seules les sessions en direct sont migrées. Les enregistrements en cours peuvent être interrompus pendant la migration et devront être redémarrés manuellement. Réponse aux événements de notification de la session de rotation du serveur.
Activation de la migration de session dans les clients
Lorsque vous initialisez une session dans les SDK clients de l'API Video, vous pouvez définir une option pour qu'un client reste connecté à la session pendant la rotation du serveur.
Par défaut, l'option de migration de session est définie sur false. Veillez à le régler sur true pour activer la migration de session dans chaque client.
Régler le SetSessionMigration d'un Session.Builder à l'objet true:
session = new Session.Builder(context, applicationId, sessionId){ SetSessionMigration = true }.Build();
Appeler le otc_session_settings_set_session_migration() en passant par la méthode OTC_TRUE comme deuxième paramètre :
otc_session_settings_set_session_migration(settings, OTC_TRUE);
Passez ensuite le otc_session_settings en tant que structure settings dans l'appel à la fonction otc_session_new_with_settings() méthode.
Appeler le otc_session_settings_set_session_migration() en passant par la méthode OTC_TRUE comme deuxième paramètre :
otc_session_settings_set_session_migration(settings, OTC_TRUE);
Passez ensuite le otc_session_settings en tant que structure settings dans l'appel à la fonction otc_session_new_with_settings() méthode.
Régler le sessionMigration d'une propriété OTSessionSettings à l'objet YES:
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.sessionMigration = YES;
Utilisez cet objet OTsessionSettings lorsque vous appelez la fonction [OTSession initWithApiKey:applicationId:delegate:settings:] méthode.
Passez true dans le setSessionMigration() de la méthode Session.Builder que vous utilisez pour créer un objet Session :
mSession = new Session.Builder(this, applicationId, sessionId)
.setSessionMigration(true)
// other options
.build();
Lorsque vous appelez le OT.initSession() transmettre un objet d'options avec l'attribut sessionMigration est définie comme étant la propriété true:
const session = OT.initSession(
'12345abc', // your application ID
'1_MX40NzIwMzJ-clg1fn5-', // the session ID
{
sessionMigration: true,
},
);
Régler le sessionMigration de la propriété options de la composante OTSession à true:
<OTSession
options={{
sessionMigration: true,
// other options
}}
/>
Perturbations des services et réponse aux notifications de rotation des serveurs
Lorsqu'une session migre après la rotation des serveurs, de nombreux services se poursuivent sans qu'aucune action ne soit nécessaire, comme indiqué dans le tableau suivant. Cependant, les archives, les diffusions en direct et les instances d'Experience Composer en cours pour la session s'arrêtent lorsque la session migre.
| 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. | |
Vous pouvez surveiller la rotation des serveurs dans les sessions pour savoir quand la rotation de la session a lieu. Lors de la migration de la session, vous pouvez démarrer de nouvelles archives, des diffusions en direct ou des instances d'Experience Composer pour la nouvelle session.
Si des archives ou des diffusions sont en cours pour la session initiale, vous pouvez lancer de nouvelles archives ou diffusions pour la nouvelle session. Dans le cas des diffusions, vous devrez envoyer la nouvelle URL de diffusion aux clients qui consomment la diffusion.
Si les clients de la session ne peuvent pas utiliser la version 2.30.0 ou une version ultérieure pour activer la fonction migration des sessionsvous devrez prendre des mesures pour les reconnecter après la rotation des serveurs. Lorsque les serveurs de la session sont remplacés (une heure après l'envoi de l'événement de notification de session), les clients connectés à la session et pour lesquels la migration de session n'est pas activée sont contraints de se déconnecter de la session. Lorsque votre serveur d'application reçoit un rappel de notification de session de rotation des serveurs, il peut prendre des mesures pour reconnecter ces clients à une nouvelle session :
Créez une nouvelle session API Video à l'aide de l'API Video REST ou d'un SDK de serveur API Video.
Envoyez l'ID de la nouvelle session aux clients connectés à la session. Vous pouvez utiliser l'API Video REST ou un SDK de serveur API Video pour envoyer le signal aux clients connectés. Voir cette documentation.
Les clients doivent immédiatement se déconnecter de la session initiale et se reconnecter à la nouvelle session. Pour une transition plus transparente entre les sessions et pour minimiser le temps de reconnexion potentiel, les clients peuvent rester connectés à la session initiale et changer d'affichage vidéo avant de se déconnecter de la session initiale (lors de la connexion à la nouvelle session).
Déclenchement de la migration de session
Vous pouvez lancer manuellement le processus de migration de session à l'aide de la fonction migration des sessions API REST. Cette approche vous offre une plus grande flexibilité et un meilleur contrôle sur les migrations de sessions, ce qui vous permet de minimiser les interruptions pendant les opérations de maintenance ou de mise à l'échelle du backend. En déclenchant la migration à un moment qui correspond le mieux à vos besoins opérationnels, vous pouvez mieux assurer la continuité des services susceptibles d'être affectés au cours du processus de migration des sessions. Pour plus de détails sur les services susceptibles d'être interrompus, reportez-vous à la section les interruptions de service section.
Vous ne pouvez migrer la session que si aucune migration n'est en cours pour cette session et si la session n'a pas été créée ou migrée récemment.
FAQ
Qu'est-ce que la rotation des serveurs de l'API Video ? À quelle fréquence les serveurs de l'API Video sont-ils mis à jour ? L'évolutivité du nuage logiciel exige une capacité continue de rotation des serveurs. Vonage maintient une fenêtre de 8 heures pour éviter une rotation excessive des sessions de longue durée. Les rotations peuvent être quotidiennes.
Il y a quelques raisons principales pour lesquelles un serveur de médias doit être renouvelé. Il s'agit principalement de la maintenance, des mises à jour logicielles, des correctifs de sécurité, de l'entretien de l'infrastructure et de l'autoscaling élastique :
- Maintenance, sécurité et nouvelles mises à jour logicielles - Les services sont régulièrement améliorés. Il peut s'agir de mises à jour de logiciels, moins fréquentes, de correctifs de sécurité ou de mises à jour de l'infrastructure.
- Maintenance des systèmes en nuage - Entre les alertes d'infrastructure, la détection d'éventuelles anomalies ou les procédures d'infrastructure visant à rafraîchir les systèmes en nuage, les systèmes peuvent être mis automatiquement hors service, en respectant les limites de 8 heures, afin de s'assurer qu'il n'y a pas de problèmes prolongés.
- Mise à l'échelle automatique élastique - Les systèmes sont également régulièrement mis à l'échelle pour gérer les charges au sein des régions et pour gérer les capacités de "suivi du soleil". Ainsi, à long terme, les serveurs peu chargés peuvent être redimensionnés pour consolider l'infrastructure.
Puis-je utiliser le même identifiant de session pour me reconnecter lorsqu'une session est déconnectée en raison de la rotation du serveur ?
Les clients utilisant la version 2.30.0 ou ultérieure des SDK clients de Video API peuvent rester automatiquement connectés à une session pendant la rotation du serveur. Voir Migration automatique des sessions.
Si tous les clients ne peuvent pas utiliser la version 2.30.0 ou une version ultérieure des SDK clients, vous pouvez leur demander de se reconnecter à une session. Il est recommandé d'utiliser un nouvel identifiant de session pour s'assurer que la nouvelle session est dirigée vers une nouvelle instance de serveur. Si la session est déconnectée en raison d'une rotation du serveur, tous les clients seront déconnectés. Si le même identifiant de session est utilisé, la reconnexion sera déplacée vers un nouveau serveur après la fin de la session, en suivant la procédure suivante événement sessionDestroyed.