Rotação de servidores e migração de sessões
O autoescalonamento moderno na nuvem torna necessário estabelecer um tempo mínimo de rotação para os serviços. Sessões com duração superior a 8 horas podem ser desconectadas, pois podem estar em serviços que estão passando por um processo de expansão ou contração.
Este tópico inclui as seguintes seções:
- Serviços afetados pela rotação de servidores
- Monitoramento da rotação de servidores
- Migração automática de sessões
- Ativação da migração de sessão
- Como lidar com interrupções no serviço e eventos de rotação
- Acionando a migração de sessão
- Instalação e configuração da migração de sessões
- Perguntas frequentes
Serviços afetados pela rotação de servidores
Os serviços que continuam em operação durante a rotação de servidores são os seguintes:
- Sessão ao vivo,
- Chamadas SIP.
Todos os demais serviços são interrompidos durante a rotação.
Monitoramento da rotação de servidores
Você pode registrar uma URL de retorno de chamada para que os eventos da sessão sejam enviados a ela. Quando um grupo de servidores da Video API de uma de suas sessões estiver programado para ser substituído, um sessionNotification O evento é enviado para o seu endpoint de callback registrado.
Veja o Monitoramento de sessões documentação.
Se os clientes permanecerem conectados a uma sessão quando um conjunto de servidores for desligado devido à rotação de servidores, um sessionDestroyed O evento está definido para a sua URL de retorno de chamada. O reason propriedade do sessionDestroyed o evento está marcado para "serverRotation". E cada cliente conectado é desconectado da sessão e recebe um sessionDestroyed evento.
Os clientes que utilizam a versão 2.30.0 ou posterior dos SDKs do cliente da Video API podem permanecer automaticamente conectados a uma sessão quando os servidores dessa sessão são alternados. Consulte a próxima seção, Migração automática de sessões.
Para clientes que utilizam versões mais antigas dos SDKs do cliente, há medidas que podem ser tomadas em resposta a um sessionNotification evento para manter os clientes conectados. (Veja Resposta a eventos de notificação de sessão de rotação de servidores.)
Migração automática de sessões
O recurso de migração de sessão transfere, de forma contínua, todos os participantes de uma sessão para um novo servidor durante a rotação de servidores. Esse recurso garante a continuidade da sessão com o mínimo de interrupção para os participantes.
A migração de sessão está disponível na versão 2.30.0 ou posterior dos SDKs do cliente. Consulte a próxima seção, Ativação da migração de sessão nos clientes.
Os benefícios de habilitar a migração de sessões incluem maior confiabilidade, tempos de reconexão reduzidos e uma experiência ininterrupta para o usuário durante transições planejadas de servidor. Observe que apenas as sessões ativas são migradas. As gravações em andamento podem ser interrompidas durante a migração e precisarão ser reiniciadas manualmente — consulte Resposta a eventos de notificação de sessão de rotação de servidores.
Para obter instruções detalhadas de configuração e exemplos de código (incluindo SIP, Audio Connector, Video Connector e a API Migrate Session), consulte o Migração de sessões: instalação e configuração guia.
Ativação da migração de sessão
Ao inicializar uma sessão nos SDKs do cliente da Video API, é possível definir uma opção para que o cliente permaneça conectado à sessão durante a rotação de servidores.
Por padrão, a opção de migração de sessão está definida como false. Certifique-se de configurá-lo para true para habilitar a migração de sessão em cada cliente.
Defina o SetSessionMigration propriedade de um Session.Builder opor-se a true:
session = new Session.Builder(context, applicationId, sessionId){ SetSessionMigration = true }.Build();
Ligue para o otc_session_settings_set_session_migration() método, passando OTC_TRUE como segundo parâmetro:
otc_session_settings_set_session_migration(settings, OTC_TRUE);
Em seguida, passe o otc_session_settings struct como o settings parâmetro na chamada para o otc_session_new_with_settings() método.
Ligue para o otc_session_settings_set_session_migration() método, passando OTC_TRUE como segundo parâmetro:
otc_session_settings_set_session_migration(settings, OTC_TRUE);
Em seguida, passe o otc_session_settings struct como o settings parâmetro na chamada para o otc_session_new_with_settings() método.
Defina o sessionMigration propriedade de um OTSessionSettings opor-se a YES:
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.sessionMigration = YES;
Use este objeto `OTsessionSettings` ao chamar o [OTSession initWithApiKey:applicationId:delegate:settings:] método.
Passe true para o setSessionMigration() método do Session.Builder objeto usado para criar um objeto Session:
mSession = new Session.Builder(this, applicationId, sessionId)
.setSessionMigration(true)
// other options
.build();
Quando você chamar a OT.initSession() passe um objeto de opções com o sessionMigration propriedade definida como true:
const session = OT.initSession(
'12345abc', // your application ID
'1_MX40NzIwMzJ-clg1fn5-', // the session ID
{
sessionMigration: true,
},
);
Defina o sessionMigration propriedade do options prop do componente OTSession para true:
<OTSession
options={{
sessionMigration: true,
// other options
}}
/>
Como lidar com interrupções no serviço e eventos de rotação
Quando uma sessão é migrada após a rotação de servidores, muitos serviços continuam sem que seja necessária qualquer ação, conforme indicado na tabela a seguir. No entanto, os arquivos, as transmissões ao vivo e as instâncias do Experience Composer em andamento para a sessão são encerradas quando a sessão é migrada.
| 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. | |
Você pode monitorar a rotação de servidores nas sessões para saber quando ocorre a rotação de sessão. Após a migração da sessão, você pode iniciar novos arquivos, transmissões ao vivo ou instâncias do Experience Composer para a nova sessão.
Se houver arquivos ou transmissões em andamento para a sessão original, você poderá iniciar novos arquivos ou transmissões para a nova sessão. No caso das transmissões, será necessário enviar a nova URL da transmissão aos clientes que a estão assistindo.
Se os clientes na sessão não puderem usar a versão 2.30.0 ou posterior para habilitar migração de sessão, você precisará tomar medidas para reconectá-los após a rotação dos servidores. Quando os servidores da sessão forem alternados (uma hora após o envio do evento de notificação da sessão), os clientes conectados à sessão que não tiverem a migração de sessão habilitada serão forçados a se desconectar da sessão. Quando o servidor de aplicativos receber uma chamada de retorno de notificação de rotação de servidor, ele poderá tomar medidas para reconectar esses clientes a uma nova sessão:
-
Crie uma nova sessão da Video API usando a API REST da Video API ou um SDK de servidor da Video API.
-
Envie o ID da nova sessão aos clientes conectados a ela. Você pode usar a API REST de vídeo ou um SDK de servidor da Video API para enviar o sinal aos clientes conectados. Consulte esta documentação.
-
Os clientes devem se desconectar imediatamente da sessão original e se reconectar à nova sessão. Para uma transição mais suave entre as sessões e para minimizar qualquer tempo potencial de reconexão, os clientes podem permanecer conectados à sessão inicial e alternar a exibição do vídeo antes de se desconectarem da sessão inicial (ao se conectarem à nova sessão).
Acionando a migração de sessão
Você pode iniciar manualmente o processo de migração de sessão usando o migração de sessão API REST. Essa abordagem oferece maior flexibilidade e controle sobre as migrações de sessão, permitindo que você minimize interrupções durante operações de manutenção ou dimensionamento do back-end. Ao acionar a migração no momento mais adequado às suas necessidades operacionais, você pode garantir melhor a continuidade dos serviços que possam ser afetados durante o processo de migração de sessão. Para obter mais detalhes sobre quais serviços podem sofrer interrupções, consulte o interrupções no serviço seção.
Só é possível migrar a sessão se não houver nenhuma migração em andamento para essa sessão e se ela não tiver sido criada ou migrada recentemente.
Perguntas frequentes
O que é a rotação dos servidores da Video API? Com que frequência os servidores da Video API são atualizados? A escalabilidade do software em nuvem exige a capacidade contínua de alternar servidores. A Vonage mantém um intervalo de 8 horas para evitar a alternância excessiva de sessões de longa duração. As alternâncias podem ocorrer diariamente.
Existem algumas razões principais para a rotação de um servidor de mídia. As principais razões são: manutenção, atualizações de software, aplicação de patches de segurança, manutenção da infraestrutura e autoescalonamento elástico:
- Manutenção, segurança e novas atualizações de software — Os serviços são aprimorados regularmente. Isso pode incluir atualizações de software — que ocorrem com menos frequência —, correções de segurança ou atualizações de infraestrutura.
- Manutenção em nuvem de sistemas com problemas — Entre alertas de infraestrutura, detecção de possíveis anomalias ou procedimentos de infraestrutura para atualizar os sistemas em nuvem, os sistemas podem ser automaticamente colocados fora de serviço, respeitando os limites de 8 horas, para garantir que não haja problemas prolongados.
- Autoescala elástica — Os sistemas também são regularmente ativados e desativados para lidar com as cargas dentro das regiões e atender às necessidades de capacidade do modelo “follow the sun”. Assim, a longo prazo, servidores com carga reduzida podem ser incorporados para consolidar a infraestrutura.
Posso usar o mesmo ID de sessão para me reconectar depois que a sessão for desconectada devido à rotação de servidores?
Os clientes que utilizam a versão 2.30.0 ou posterior dos SDKs do cliente da Video API podem permanecer automaticamente conectados a uma sessão durante a rotação de servidores. Consulte Migração automática de sessões.
Caso nem todos os clientes possam utilizar a versão 2.30.0 ou posterior dos SDKs de cliente, é possível fazer com que eles se reconectem a uma sessão. Recomenda-se usar um novo ID de sessão para garantir que a nova sessão seja direcionada a uma nova instância do servidor. Se a sessão for desconectada devido à rotação de servidores, todos os clientes serão desconectados. Se o mesmo ID de sessão for usado, a reconexão será transferida para um novo servidor após o término da sessão, seguindo o evento sessionDestroyed.