32C3 - Streaming CDN
Eckdaten
- nginx → HLS, icecast → webm, opus, mp3
- HTTPS support auf allen Edge-Relays
- 2x haproxy für Loadbalancing und Webseite
- Relive in HD
- fempeg als Media mirror
Fails
- missed
proxyignoreheaders Cache-Control;
on master servers - icecast soft limit for
max open files
was overwritten by init script - not enough bandwith calculated (fnord news show drops)
- Mail
Passwords in pad?
- disk space on media mirrors (fempeg)
- m3u8 gziped on chaching server
Hardware-Anforderungen
- 2 CPU-Cores (mit AES-NI Support)
- mind. 2GB Ram
- mind. 100GB Festplatte
- Netzwerk: 1x GBit Netzwerkinterface mit IPv4 und IPv6 Konnektivität am besten ohne Firewall, zur Not mit freischaltung für Ports: 22 (SSH), 80 (HTTP), 443 (HTTPS), 1935 (RTMP), 8000 (Icecast)
Installer-Image
Checkliste und Meilensteine
bis 01.12.2015
- [meise][✓ meise, 2015-11-28]
relay register wieder an den Start bringen - [florolf][✓ florolf, 2015-11-22]
Hetzner anschreiben - [✓ meise, 2015-12-09]
https Konfiguration im ansible finalisieren - [✓ florolf, 2015-12-01]
Install-Image auf Jessie aktualisieren- [✓ florolf, 2015-12-01]
Preseed-Skript entsprechend anpassen - [✓ derpeter, 2017-06-21]
ansible checken
- [✓ florolf, 2015-12-01]
nginx-rtmp, (icecast), etc. für Jessie bauen - [✓ derpeter, 2017-06-21]
Wie viel Platz hat relive das letzte jahr gebraucht? - [meise][✓ meise, 2015-11-28]
Box von atze anfragen - [florolf][✓ derpeter, 2017-06-21]
mal mit equi ueber netzwerk reden - [✓ derpeter, 2017-06-21]
Konzept für Erzeugung von WEBM und Subformate
bis 20.12.2015
- [✓ meise, 2015-12-26]
Zertifikate für alle geplanten relays besorgen - [✓ meise, 2015-12-26]
Grundinstallation der Relays vornehmen - [✓ meise, 2015-12-05]
lb1.het.c3voc.de auf jessie aktualisieren - [✓ meise, 2015-12-10]
webseite auf lb1.fem + lb1.het deployen - [✓ meise, 2015-12-07]
Plattenplatz auf den 1und1-Kisten erweitern für unsere Anforderungen - [✓ meise, 2015-12-26]
live.dus auf jessie neu installieren - [ischluff][✓ derpeter, 2017-06-21]
Encoding-Tests mit verschiedenen Bandbreiten - [ischluff][✓ derpeter, 2017-06-21]
CDN Monitoring-Skripte anpassen/überarbeiten - [✓ meise, 2015-12-10]
HAProxy multi process stats - [✓ meise, 2015-12-10]
lb monitoring client einbinden - [✓ derpeter, 2017-06-21]
HAProxy accesslogs noch ohne ip adressen - [✓ derpeter, 2017-06-21]
HAProxy: »SSLv3 support requested but unavailable.« oO
am 26.12.2015
- [✓ meise, 2015-12-27]
0/0 Einträge aus iptables-Regeln entfernen - [✓ meise, 2015-12-27]
icecast_relay_on_demand in group_vars/relays auf 0 setzen - [✓ derpeter, 2017-06-21]
nach TODO imm ansible suchen - [✓ derpeter, 2017-06-21]
passwörter auf den relays noch einmal durchwechseln z.B. icecast - [✓ meise, 2015-12-26]
usa in colo deployen: 10ge public, 1ge public, 1ge intern - [✓ meise, 2015-12-26]
fempeg in colo deployen: 10ge public, 1ge intern - [✓ meise, 2015-12-26]
router vm mit sicherheits patches aktualisieren - [✓ derpeter, 2017-06-21]
usa root passwort auf das keypass pw ändern - [✓ meise, 2015-12-26]
subtitles vm auf usa deployen. br-pbl auf 1ge public interface bereits vorhanden
am 27.12.2015
- [✓ meise, 2015-12-29]
fempeg zertifikat für mirror.32c3.c3voc.de erstellen und hinterlegen, dns record setzen und mirror zum mb hinzufügen, rsync von www-data aktivieren
Bandbreitenbedarf
Video
2x 1mbit H264 HQ 2x 1mbit WebM ---------------- ~ 5Mbit * 4 = 25Mbit pro edge relay
Audio
2x 128kbit Mp3 2x 96kbit Opus -------------- ~ 0.5 Mbit * 5 = 2,5Mbit
HD
2x 3Mbit H264 (geschätzt) ------------ ~ 6Mbit * 1 = 6Mbit
Icecast
2x 3Mbit Webm 2x 1mbit WebM 2x 128kbit Mp3 2x 96kbit Opus --------------- 6Mbit + 2Mbit + 0.5 * 5 = 43Mbit pro edge relay
Nginx
2x 3Mbit HD 2x 1mbit SD --------------- 6Mbit + 2Mbit * 5 = 40Mbit pro edge relay
Relay register Bandbreitenmessungen
ruby measure_bw.rb 31.172.30.138 195.54.164.164 46.4.3.195 141.24.40.53 217.160.107.68 74.208.155.193 5.9.196.94