
L'hĂ©bergement cloud populaire DigitalOcean a rĂ©cemment lancĂ© son nouveau marchĂ© vendant des images prĂ©configurĂ©es qui peuvent aider Ă dĂ©ployer rapidement un serveur d'applications. C'est un peu comme AWS, mais DO est pour ceux qui utilisent dĂ©jĂ les services de ce fournisseur. Voyons comment dĂ©ployer un serveur simple pour la diffusion WebRTC avec un compte DO moyennant des frais de 10 $ / mois basĂ©s sur Flashphoner WebCallServer et comment un tel serveur peut ĂȘtre utile.
Déploiement
Entrez le compte DO, choisissez l'image Flashphoner WebCallServer dans Marketplace et appuyez sur "Créer une droplet Flashphoner Web Call Server".

Choisissez les performances du serveur et le plan tarifaire. DO proposera automatiquement un produit de milieu de gamme, mais nous sommes intéressés par le prix minimum.

Choisissez la région d'emplacement du centre de données, par exemple, Francfort.

Choisissez le type d'authentification, par exemple, un mot de passe Ă usage unique.

Spécifiez le nombre de serveurs (nous sommes intéressés par un serveur pour l'instant) et nommez le serveur. Ce nom sera enregistré parmi d'autres emplacements dans / etc / hostname.
Appuyez sur "Créer une goutte"

DÚs que le serveur est créé, il démarre automatiquement. Nous pouvons maintenant nous y connecter via SSH et modifier le mot de passe si un mot de passe à usage unique a été choisi comme méthode d'authentification. Une brÚve description de Flashphoner WebCallServer avec des liens vers la documentation sera affichée dans la console.

"Ceci est un test. Pouvez-vous me voir?"
Au moment oĂč Flashphoner WebCallServer est dĂ©marrĂ©, il est en mode prĂȘt Ă l'emploi, une licence d'essai de 30 jours est activĂ©e automatiquement. L'interface Web est utilisĂ©e pour tester les fonctions clĂ©s. Nous allons simplement vĂ©rifier la publication et la lecture du flux WebRTC.
Ouvrez dans le navigateur la page https: // droplet_ip: 8444 / admin / . Le serveur est livrĂ© avec un certificat auto-signĂ© par dĂ©faut; par consĂ©quent, nous devrons confirmer l'exception de sĂ©curitĂ©. Les certificats peuvent ĂȘtre remplacĂ©s ultĂ©rieurement par les vĂŽtres. Entrez le nom d'utilisateur et le mot de passe ( dĂ©mo par dĂ©faut).

Choisissez l'exemple de streaming bidirectionnel dans la barre latérale, appuyez sur "Connecter", puis sur "Publier". Pour lire le flux, appuyez sur "Play".

Pour une poignée de dollars
Que peut faire un serveur à 10 $ / mois en tant que plate-forme matérielle pour la diffusion WebRTC? Voyons ce que Digital Ocean offre en termes de processeur
lscpu

et mémoire
free -h

En exécutant des tests de charge sur le serveur, nous pouvons voir que les capacités de performances du serveur ne sont pas si petites.
Par exemple, nous allons publier un échantillon de flux et voir combien d'utilisateurs pourront publier ce flux simultanément sans dépasser 90% des ressources du processeur:
Avec plusieurs publications simultanĂ©es, le nombre maximum de flux traitĂ©s reste le mĂȘme; lorsque 7 flux sont publiĂ©s, jusqu'Ă 10 tĂ©lĂ©spectateurs peuvent s'abonner Ă chacun.
Supposons que nous devions transcoder le flux sur le serveur afin de réduire la résolution ou d'aligner le FPS. Pour ce faire, nous allons vérifier le nombre maximum de publications:
De cette maniĂšre, le serveur avec le prix le plus bas sur DO avec les paramĂštres 1 cĆur de processeur, 2 Go de RAM, 2 To de trafic convient non seulement pour tester le streaming WebRTC mais aussi pour les petits projets. Par exemple, il est possible de
- fournir un flux via WebRTC à partir d'une caméra IP afin d'assurer une surveillance vidéo interne de base;
- organiser un webinaire pour le personnel d'une petite entreprise;
- déployez votre propre radio Internet (les flux audio nécessitent moins de ressources processeur).
En outre, ce serveur peut ĂȘtre considĂ©rĂ© comme une plate-forme de rĂ©fĂ©rence pour l'estimation de la mise Ă l'Ă©chelle. C'est ce dont nous traiterons plus loin.
"Je mérite plus!"
Pour la plupart, les rĂšgles sont assez simples: il n'y a pas trop de cĆurs et trop de mĂ©moire. Selon le nombre d'utilisateurs prĂ©vu, les recommandations de configuration DO seront les suivantes:
Si une nouvelle augmentation du nombre d'utilisateurs est prévue, nous devrons déployer le serveur CDN projetant 1 serveur Edge pour 2 000 utilisateurs. Supposons que nous devions fournir une vidéo HD, le nombre de téléspectateurs prévu est de 10000. Dans ce cas, 2 serveurs Origin pour la publication et 5 serveurs Edge pour la visualisation seront nécessaires.

Exemple de configuration:
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
- Edge 1 - Edge 5 (ici, nous modifions uniquement l'adresse du serveur dans le paramĂštre
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
Le CDN peut Ă©galement ĂȘtre utile si les utilisateurs sont dispersĂ©s gĂ©ographiquement. Par exemple, nos publics cibles sont basĂ©s en Europe et en AmĂ©rique.

Exemple de configuration:
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
Plus le nombre de tĂ©lĂ©spectateurs est grand, plus les appareils de lecture et les canaux vers ces appareils sont diversifiĂ©s. Pour fournir une bonne qualitĂ© de diffusion Ă divers appareils, il sera trĂšs probablement nĂ©cessaire de transcoder la vidĂ©o, ce qui peut ĂȘtre imposĂ© sur des serveurs Transcoder spĂ©ciaux.

Exemple de configuration:
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
Comme nous l'avons constatĂ© au cours du test, le nombre de cĆurs de processeur est essentiel aux fins du transcodage. La configuration la plus appropriĂ©e dans la ligne de configuration optimisĂ©e pour le processeur est la plus chĂšre - 32 vCPU, 64 Go de RAM. Dans le mĂȘme temps, les prix des configurations de CPU similaires en quantitĂ© et avec une plus grande mĂ©moire dans d'autres lignes peuvent ĂȘtre considĂ©rablement plus Ă©levĂ©s. Malheureusement, on ne parvient pas Ă Ă©conomiser de l'argent sur les transcodeurs: comme la vidĂ©o est encodĂ©e image par image, il doit y avoir suffisamment d'espace mĂ©moire pour toutes les images et suffisamment de processeurs pour traiter tous les flux.
Pendant le dĂ©ploiement CDN, la crĂ©ation simultanĂ©e de plusieurs serveurs avec la mĂȘme configuration sera utile. Cependant, dans le cas de serveurs Edge et Transcoder CDN de mĂȘme type dispersĂ©s gĂ©ographiquement, ils devront ĂȘtre hĂ©bergĂ©s dans diffĂ©rents centres de donnĂ©es.
Conclusion
Pour conclure, nous avons dĂ©ployĂ© et testĂ© un petit serveur pour le streaming vidĂ©o WebRTC Ă faible latence sur Digital Ocean et avons constatĂ© qu'un serveur avec une configuration minimale est un bon choix non seulement pour les tests mais aussi pour les petits projets. Nous avons obtenu les donnĂ©es de mise Ă l'Ă©chelle en fonction du nombre prĂ©vu de tĂ©lĂ©spectateurs et avons abordĂ© le sujet du dĂ©ploiement CDN, qui en tant que tel mĂ©rite d'ĂȘtre discutĂ© dans un article sĂ©parĂ©. Pour continuer, veuillez rester avec nous.
Image Flashphoner WebCallServer dans DigitalOcean Marketplace - image du serveur d'appels Web dans DigitalOcean.
CDN pour le streaming WebRTC à faible latence - Réseau de distribution de contenu basé sur le serveur d'appels Web.