= 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
[[https://c3voc.de/32c3/register|Relay register]]
[[https://nyx.n621.de/~florolf/fud/32c3-streams.jpg|Transcoding]]
== Fails
* missed ''proxy_ignore_headers 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
http://c3voc.de/share/32c3/relay/
== Checkliste und Meilensteine
=== bis 01.12.2015
* relay register wieder an den Start bringen
* Hetzner anschreiben
* https Konfiguration im ansible finalisieren
* Install-Image auf Jessie aktualisieren
* Preseed-Skript entsprechend anpassen
* ansible checken
* nginx-rtmp, (icecast), etc. für Jessie bauen
* Wie viel Platz hat relive das letzte jahr gebraucht?
* Box von atze anfragen
* mal mit equi ueber netzwerk reden
* Konzept für Erzeugung von WEBM und Subformate
=== bis 20.12.2015
* Zertifikate für alle geplanten relays besorgen
* Grundinstallation der Relays vornehmen
* lb1.het.c3voc.de auf jessie aktualisieren
* webseite auf lb1.fem + lb1.het deployen
* Plattenplatz auf den 1und1-Kisten erweitern für unsere Anforderungen
* live.dus auf jessie neu installieren
* Encoding-Tests mit verschiedenen Bandbreiten
* CDN Monitoring-Skripte anpassen/überarbeiten
* HAProxy multi process stats
* lb monitoring client einbinden
* HAProxy accesslogs noch ohne ip adressen
* HAProxy: »SSLv3 support requested but unavailable.« oO
=== am 26.12.2015
* 0/0 Einträge aus iptables-Regeln entfernen
* icecast_relay_on_demand in group_vars/relays auf 0 setzen
* nach TODO imm ansible suchen
* passwörter auf den relays noch einmal durchwechseln z.B. icecast
* usa in colo deployen: 10ge public, 1ge public, 1ge intern
* fempeg in colo deployen: 10ge public, 1ge intern
* router vm mit sicherheits patches aktualisieren
* usa root passwort auf das keypass pw ändern
* subtitles vm auf usa deployen. br-pbl auf 1ge public interface bereits vorhanden
=== am 27.12.2015
* 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
== Stats
=== Audio listeners
{{:32c3:cdn:32c3_music_listener.png?600|}}
=== Edges
{{:32c3:cdn:32c3_edge_relays.png?600|}}
{{:32c3:cdn:32c3_edge_relays_max_bw.png?600|}}
=== Relive
{{:32c3:cdn:32c3_relive_usage.png?600|}}
== Master
{{:32c3:cdn:32c3_master_rx.png?600|}}
{{:32c3:cdn:32c3_master_tx.png?600|}}
=== Viewer
{{:32c3:cdn:32c3_viewers_per_transport.png?600|}}
{{:32c3:cdn:32c3_viewers_per_quality.png?600|}}
{{:32c3:cdn:32c3_viewers_per_hall.png?600|}}
=== Media Köln
{{:32c3:cdn:32c3_media_koeln_if_eth1-week.png|}}
{{:32c3:cdn:32c3_media_koeln_diskstats_throughput-week.png?|}}
{{:32c3:cdn:32c3_media_koeln_diskstats_utilization-week.png?|}}
{{:32c3:cdn:32c3_media_koeln_if_eth1-week.png?|}}
{{:32c3:cdn:32c3_media_koeln_if_eth1-year.png?|}}
{{:32c3:cdn:32c3_media_koeln_memory-week.png?|}}