
Das beliebte Cloud-Hosting DigitalOcean hat vor kurzem seinen neuen Marktplatz mit vorkonfigurierten Images lanciert, mit denen sich ein Anwendungsserver schnell bereitstellen lässt. Es ähnelt AWS, aber DO ist für diejenigen gedacht, die bereits die Dienste dieses Anbieters nutzen. Sehen wir uns an, wie Sie einen einfachen Server für WebRTC-Streaming mit einem DO-Konto für eine Gebühr von 10 USD / Monat basierend auf Flashphoner WebCallServer bereitstellen und wie ein solcher Server verwendet werden kann.
Bereitstellung
Geben Sie das DO-Konto ein, wählen Sie das Flashphoner WebCallServer-Image im Marketplace aus und klicken Sie auf "Flashphoner Web Call Server-Droplet erstellen".

Wählen Sie die Serverleistung und den Preisplan. DO wird automatisch ein Produkt im mittleren Segment anbieten, aber wir sind am Mindestpreis interessiert.

Wählen Sie die Standortregion des Rechenzentrums aus, z. B. Frankfurt.

Wählen Sie den Authentifizierungstyp aus, z. B. Einmalpasswort.

Geben Sie die Anzahl der Server an (wir sind vorerst an einem Server interessiert) und benennen Sie den Server. Dieser Name wird unter anderem in / etc / hostname registriert.
Drücke "Create droplet"

Sobald der Server erstellt ist, wird er automatisch gestartet. Jetzt können wir eine Verbindung über SSH herstellen und das Kennwort ändern, wenn als Authentifizierungsmethode ein Einmalkennwort ausgewählt wurde. In der Konsole wird eine kurze Beschreibung des Flashphoner WebCallServers mit Links zur Dokumentation angezeigt.

"Das ist ein Test. Kannst du mich sehen?"
Wenn der Flashphoner WebCallServer gestartet wird, ist er vollständig betriebsbereit und eine 30-Tage-Testlizenz wird automatisch aktiviert. Über das Webinterface werden die wichtigsten Funktionen getestet. Wir werden nur die Veröffentlichung und die Wiedergabe des WebRTC-Streams überprüfen.
Öffnen Sie im Browser die Seite https: // droplet_ip: 8444 / admin / . Der Server wird standardmäßig mit selbstsigniertem Zertifikat geliefert. Aus diesem Grund müssen wir die Sicherheitsausnahme bestätigen. Die Zertifikate können später durch Ihre eigenen ersetzt werden. Geben Sie den Benutzernamen und das Passwort ein (standardmäßig Demo ).

Wählen Sie das Two-Way-Streaming-Beispiel in der Seitenleiste aus, drücken Sie "Verbinden" und dann "Veröffentlichen". Um den Stream abzuspielen, drücken Sie "Play".

Für eine Handvoll Dollar
Was kann ein Server für 10 USD / Monat als Hardwareplattform für WebRTC-Streaming leisten? Mal sehen, was Digital Ocean in Bezug auf den Prozessor bietet
lscpu

und Erinnerung
free -h

Durch Ausführen von Auslastungstests auf dem Server können wir feststellen, dass die Serverleistungsfähigkeiten nicht so gering sind.
Als Beispiel werden wir ein Stream-Beispiel veröffentlichen und sehen, wie viele Benutzer in der Lage sein werden, diesen Stream gleichzeitig zu veröffentlichen, wobei 90% der Prozessorressourcen nicht überschritten werden:
Bei mehreren gleichzeitigen Veröffentlichungen bleibt die maximale Anzahl verarbeiteter Streams gleich. Wenn 7 Streams veröffentlicht wurden, können bis zu 10 Zuschauer jeden abonnieren.
Angenommen, wir müssen den Stream auf dem Server umcodieren, um die Auflösung zu verringern oder die FPS auszurichten. Dazu überprüfen wir die maximale Anzahl von Veröffentlichungen:
Auf diese Weise eignet sich der Server mit dem niedrigsten DO-Preis mit den Parametern 1 CPU-Kern, 2 GB RAM, 2 TB Datenverkehr nicht nur zum Testen von WebRTC-Streaming, sondern auch für kleine Projekte. Zum Beispiel ist es möglich,
- Bereitstellen eines Streams über WebRTC von einer IP-Kamera, um eine grundlegende interne Videoüberwachung sicherzustellen;
- ein Webinar für ein kleines Unternehmenspersonal organisieren;
- Stellen Sie Ihr eigenes Internetradio bereit (Audiostreams benötigen weniger Prozessorressourcen).
Außerdem kann dieser Server als Referenzplattform für die Skalierungsschätzung angesehen werden. Darauf werden wir weiter eingehen.
"Ich verdiene mehr!"
Die Regeln sind größtenteils recht einfach: Es gibt nicht zu viele Kerne und zu viel Speicher. Abhängig von der beabsichtigten Anzahl von Benutzern lauten die DO-Konfigurationsempfehlungen wie folgt:
Wenn eine weitere Erhöhung der Benutzeranzahl geplant ist, müssen wir den CDN bereitstellen, der 1 Edge-Server pro 2000 Benutzer projiziert. Angenommen, wir müssen ein HD-Video liefern, die vorgesehene Anzahl der Zuschauer beträgt 10000. In diesem Fall sind 2 Origin-Server für die Veröffentlichung und 5 Edge-Server für die Anzeige erforderlich.

Setup-Beispiel:
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 (hier ändern wir nur die Serveradresse im Parameter
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
CDN kann auch nützlich sein, wenn die Benutzer geografisch verteilt sind. Zum Beispiel sind unsere Zielgruppen in Europa und Amerika ansässig.

Setup-Beispiel:
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
Je größer die Anzahl der Zuschauer ist, desto vielfältiger sind die Wiedergabegeräte und die Kanäle zu diesen Geräten. Um verschiedenen Geräten eine gute Sendequalität zu bieten, muss das Video höchstwahrscheinlich transcodiert werden, was auf speziellen Transcoder-Servern angewendet werden kann.

Setup-Beispiel:
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
Wie wir im Test festgestellt haben, ist die Anzahl der Prozessorkerne für die Umcodierung von wesentlicher Bedeutung. Die am besten geeignete Konfiguration in der CPU-optimierten Konfigurationslinie ist die teuerste - 32 vCPU, 64 Gb RAM. Gleichzeitig können die Preise für CPU-Konfigurationen in ähnlicher Menge und mit größerem Speicher in anderen Zeilen deutlich höher sein. Leider kann man bei Transcodern kein Geld sparen: Da das Video Frame für Frame codiert wird, muss genügend Speicherplatz für alle Bilder und genügend Prozessoren für die Verarbeitung aller Streams vorhanden sein.
Während der CDN-Bereitstellung ist die gleichzeitige Erstellung mehrerer Server mit derselben Konfiguration hilfreich. Bei geografisch verteiltem CDN müssen Edge- und Transcoder-Server des gleichen Typs jedoch in verschiedenen Rechenzentren gehostet werden.
Fazit
Abschließend haben wir einen kleinen Server für WebRTC-Videostreaming mit geringer Latenz auf Digital Ocean bereitgestellt und getestet und festgestellt, dass ein Server mit minimaler Konfiguration nicht nur zum Testen, sondern auch für kleine Projekte geeignet ist. Wir haben die Skalierungsdaten in Abhängigkeit von der beabsichtigten Anzahl von Zuschauern erhalten und das Thema der CDN-Bereitstellung angesprochen, das als solches in einem separaten Artikel behandelt werden sollte. Bitte bleiben Sie bei uns, um fortzufahren.
Flashphoner WebCallServer-Image im DigitalOcean Marketplace - Image des Web Call Servers in DigitalOcean.
CDN für WebRTC-Streaming mit geringer Latenz - Web Call Server-basiertes Netzwerk für die Bereitstellung von Inhalten.