Jak to działa?


Strona internetowa
Strona internetowa

Aplikacja jest napisana w Node.js - serwuje ona kontent strony, dane pobiera z bazy MySQL (która też jest na końcówkach, replikacja master-slave po VPN). Rozrzucona jest po kilku serwerach. Korzystamy z Cloudflare, ruch później trafia to na nginx jako load balancer.

Użyte technologie:

Karta sterująca
Sterowanie oświetleniem

Przesyłanie stanów kanałów realizowane jest przez technologię Socket.IO. Mamy kilka niezależnych serwerów, wybór najmniej obciążonego serwera jest realizowany przez autorski load balancer. Pomiędzy serwerami websocket wymiana danych występuje przez bazę Redis. Klienci sterujący oświetleniem łączą się albo bezpośrednio po protokole websocket lub poprzez API API. Jako końcówki każdy z nas ma różne rozwiązania od ESP8266, poprzez programowalne ledy, kończąc na Raspberry Pi).

Użyte technologie:

Karty graficzne w serwerze
Transmisja obrazu

Do dostarczenia strumienia do klienta używamy Nimble Streamer, który wykorzystuje protokół SLDP. Transmisje dostarczane są na serwer z kartami graficzymi Nvidia Quadro i na nim transkodowane do różnych strumieni jakościowych. Używamy również pomocniczo ffmpeg i OBS.

Użyte technologie:

ELK Kibana
Monitoring

Całość monitorujemy można powiedzieć, że 24h na dobę poprzez autorskie skrypty, które wysyłają powiadomienia do Nas. Do zbierania logów aplikacji wykorzystujemy stack ELK (Kibana, Elasticsearch, Filebeat). Monitoring dostępności zapewniamy poprzez LibreNMS, The Dude, Uptime Robot.

Użyte technologie:

Masz dodatkowe pytania? Chcesz dowiedzieć się czegoś więcej?

Zobacz również zakładkę "O autorach"

Dołącz do naszej społeczności!

Fanpage na Facebooku

Czat tekstowy i głosowy na Discordzie

Dołącz na Discord