
Hospedagem em nuvem popular A DigitalOcean lançou recentemente seu novo mercado, vendendo imagens pré-configuradas que podem ajudar a implantar rapidamente um servidor de aplicativos. É muito parecido com o AWS, mas o DO é para aqueles que já usam os serviços desse provedor. Vamos ver como implantar um servidor simples para streaming do WebRTC com uma conta DO por uma taxa de US $ 10 / mês com base no Flashphoner WebCallServer e como esse servidor pode ser útil.
Implantação
Digite a conta DO, escolha a imagem do Flashphoner WebCallServer no Marketplace e pressione "Criar gota do servidor de chamadas da Web do Flashphoner".

Escolha o desempenho do servidor e o plano de preços. O DO oferecerá automaticamente um produto de segmento intermediário, mas estamos interessados no preço mínimo.

Escolha a região de localização do datacenter, por exemplo, Frankfurt.

Escolha o tipo de autenticação, por exemplo, senha descartável.

Especifique o número de servidores (estamos interessados em um servidor por enquanto) e nomeie o servidor. Este nome será registrado entre outros locais em / etc / hostname.
Pressione "Criar gota"

Assim que o servidor for criado, ele será iniciado automaticamente. Agora podemos nos conectar a ele através do SSH e modificar a senha se a senha descartada tiver sido escolhida como método de autenticação. Uma breve descrição do Flashphoner WebCallServer com links para a documentação será exibida no console.

"Este é um teste. Você pode me ver?"
Quando o Flashphoner WebCallServer é iniciado, ele está no modo pronto para o trabalho, uma licença de avaliação de 30 dias é ativada automaticamente. A interface da Web é usada para testar as funções principais. Vamos apenas verificar a publicação e a reprodução do fluxo do WebRTC.
Abra no navegador a página https: // droplet_ip: 8444 / admin / . O servidor é enviado com certificado autoassinado por padrão; portanto, precisaremos confirmar a exceção de segurança. Os certificados podem ser substituídos posteriormente pelos seus. Digite o nome de usuário e a senha ( demo por padrão).

Escolha o exemplo de transmissão bidirecional na barra lateral, pressione "Conectar" e depois "Publicar". Para reproduzir o stream, pressione "Play".

Por um punhado de dólares
O que um servidor de US $ 10 / mês pode fazer como plataforma de hardware para streaming WebRTC? Vamos ver o que a Digital Ocean oferece em termos de processador
lscpu

e memória
free -h

Executando testes de carga no servidor, podemos ver que os recursos de desempenho do servidor não são tão pequenos.
Como exemplo, publicaremos uma amostra de fluxo e veremos quantos usuários poderão publicar esse fluxo simultaneamente, não excedendo 90% dos recursos do processador:
Com várias publicações simultâneas, o número máximo de fluxos processados permanece o mesmo; quando 7 fluxos são publicados, até 10 espectadores podem se inscrever em cada um.
Suponha que precisamos transcodificar o fluxo no servidor para reduzir a resolução ou alinhar o FPS. Para fazer isso, vamos verificar o número máximo de publicações:
Dessa maneira, o servidor com o menor preço no DO com os parâmetros 1 núcleo da CPU, 2 Gb de RAM e 2 TB de tráfego é adequado não apenas para testar o fluxo WebRTC, mas também para pequenos projetos. Por exemplo, é possível
- fornecer um fluxo via WebRTC a partir de uma câmera IP, a fim de garantir vigilância interna por vídeo básica;
- organizar um webinar para uma equipe de pequenas empresas;
- implante seu próprio rádio na Internet (os fluxos de áudio requerem menos recursos do processador).
Além disso, este servidor pode ser visto como plataforma de referência para a estimativa de escala. É com isso que trataremos mais adiante.
"Eu mereço mais!"
Na maioria das vezes, as regras são bastante simples: não há muitos núcleos nem muita memória. Dependendo do número pretendido de usuários, as recomendações de configuração do DO serão as seguintes:
Se for planejado um aumento adicional no número de usuários, precisaremos implantar o servidor de borda da CDN que projeta 1 por 2000 usuários. Suponha que precisamos entregar um vídeo em HD, o número pretendido de visualizadores é 10000. Nesse caso, serão necessários 2 servidores Origin para publicação e 5 servidores Edge para visualização.

Exemplo de configuração:
cdn_enabled=true cdn_ip=origin1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin
cdn_enabled=true cdn_ip=origin2.flashponer.com cdn_point_of_entry=origin1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin
- Borda 1 - Borda 5 (aqui
cdn_ip
apenas o endereço do servidor no parâmetro cdn_ip
)
cdn_enabled=true cdn_ip=edge1.flashphoner.com cdn_point_of_entry=origin1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge
A CDN também pode ser útil se os usuários estiverem geograficamente dispersos. Por exemplo, nossos públicos-alvo estão sediados na Europa e na América.

Exemplo de configuração:
cdn_enabled=true cdn_ip=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin cdn_groups=EU
cdn_enabled=true cdn_ip=origin_us.flashponer.com cdn_point_of_entry=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin cdn_groups=US
cdn_enabled=true cdn_ip=edge1_eu.flashphoner.com cdn_point_of_entry=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge cdn_groups=EU
cdn_enabled=true cdn_ip=edge1_us.flashphoner.com cdn_point_of_entry=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge cdn_groups=US
Quanto maior o número de espectadores, mais diversificados são os dispositivos para reprodução e os canais para esses dispositivos. Para fornecer boa qualidade de transmissão para vários dispositivos, provavelmente será necessário transcodificar o vídeo, o que pode ser imposto em servidores especiais de Transcoder.

Exemplo de configuração:
cdn_enabled=true cdn_ip=origin.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin cdn_groups=default
cdn_enabled=true cdn_ip=transcoder_eu.flashponer.com cdn_point_of_entry=origin.flashponer.com cdn_nodes_resolve_ip=false cdn_role=transcoder cdn_groups=EU
cdn_enabled=true cdn_ip=edge1_eu.flashphoner.com cdn_point_of_entry=origin.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge cdn_groups=EU
Como descobrimos durante o teste, o número de núcleos do processador é essencial para fins de transcodificação. A configuração mais adequada na linha de configuração otimizada para CPU é a mais cara - 32 vCPU, 64 Gb de RAM. Ao mesmo tempo, os preços para configurações de CPU semelhantes em quantidade e com maior memória em outras linhas podem ser significativamente mais altos. Infelizmente, não é possível economizar dinheiro com transcodificadores: como o vídeo é codificado quadro a quadro, é preciso haver espaço de memória suficiente para todas as imagens e processadores suficientes para processar todos os fluxos.
Durante a implantação da CDN, a criação simultânea de vários servidores com a mesma configuração será útil. No entanto, no caso de servidores Edge e Transcoder do mesmo tipo CDN dispersos geograficamente, será necessário hospedar-se em diferentes datacenters.
Conclusão
Para concluir, implantamos e testamos um servidor pequeno para streaming de vídeo WebRTC de baixa latência na Digital Ocean e descobrimos que um servidor com configuração mínima é adequado não apenas para testes, mas também para pequenos projetos. Obtivemos os dados de dimensionamento dependendo do número pretendido de visualizadores e abordamos o assunto da implantação da CDN, que, como tal, merece ser discutida em um artigo separado. Para continuar, por favor, fique conosco.
Imagem do Flashphoner WebCallServer no DigitalOcean Marketplace - imagem do Web Call Server no DigitalOcean.
CDN para streaming WebRTC de baixa latência - rede de entrega de conteúdo baseada em Web Call Server.