O systemie

CDN Selektor to system, który pozwala realizować skalowalne i bezpieczne usługi udostępnienia treści multimedialnych (wideo, audio) oraz dokumentów poprzez sieć publiczną (Internet). 

Wysoki stopień niezawodności usług został osiągnięty poprzez zastosowanie innowacyjnych polityk zarządzania ruchem, kierujących użytkownika do najbliższego i najlepszego (pod względem topologii sieci i obciążenia) węzła dystrybucyjnego treści. Projektowany system charakteryzuje się skalowalnością horyzontalną we wszystkich warstwach architektury, zapewniając przy tym poprawę niezawodności i wydajności systemu poprzez jego rozbudowę o dodatkowe węzły funkcjonalne.

Korzyści

System umożliwia podmiotom gospodarczym i instytucjom publicznym na budowę własnych, bezpiecznych i wydajnych systemów dystrybucji treści, które pozwolą na:

  • Rozwój własnej platformy dystrybucyjnej w sieci Internet, uniezależnienie się od stron trzecich w kluczowym elemencie własnego biznesu.
  • Obniżenie kosztów dystrybucji.
  • Dywersyfikacja usług związanych z obsługą wideo i audio, możliwość kierowania ruchu do własnych węzłów systemu lub do zewnętrznych dostawców CDN.
  • Podniesienie jakości świadczonych usług.
  • Zwiększenie poziomu bezpieczeństwa dystrybuowanych treści.
Informatyk przed monitorem wyświetlającym transmisję wideo

Funkcjonalności

Głównym elementem systemu jest oprogramowanie, kierujące żądania odtworzenia treści multimedialnych i przekierowujące użytkowników do węzła brzegowego celem obsługi tego żądania.

Podczas podejmowania decyzji o tym, do którego węzła brzegowego (lub węzłów brzegowych) skierować widza, dokonywana jest analiza adresu IP klienta źródłowego, co pozwala na autoryzację odtwarzania np. w przypadku obostrzeń terytorialnych w ramach licencji dla publikowanej treści.

Nasz innowacyjny algorytm wyboru węzła bazuje na wielu czynnikach zachodzących w danym czasie, co w połączeniu z ciągłym monitorowaniem dostępności, wydajności i obciążenia poszczególnych węzłów brzegowych, pozwala na wybór optymalnego serwera dostarczającego treść. Dzięki integracji z protokołem BGP, ruch kierowany jest na węzły w sposób dynamiczny z wykorzystaniem mechanizmów równomiernej dystrybucji obciążenia (load-balancing).

Podstawową funkcjonalnością systemu jest kierowanie użytkowników na serwery brzegowe (lub do systemów innych operatorów) z uwzględnieniem przy wyborze serwerów:

  • zasad geoblokady (możliwa definicja dla każdego dystrybuowanego pliku niezależnie);
  • topologii sieci (na podstawie BGP);
  • danych z monitorowania serwerów, dotyczących wykorzystania jego zasobów (użycie pamięci, CPU, pasmo sieciowe, obciążenie systemu dyskowego);
  • danych pochodzących z podsystemu analitycznego, dotyczących np. skuteczności cache, faktycznej dostępności serwera dla użytkowników (wykrywanie konfliktów w BGP);
  • danych pochodzących z modułów diagnostycznych (np. wbudowanych w odtwarzacze wideo lub osadzonych na stronach WWW);
  • dostępności treści na konkretnym serwerze brzegowym (maksymalizuje pasmo wychodzące z serwera brzegowego, ogranicza dosył do niego nowych treści, najczęściej zwiększając wydajność serwera i zwiększając trwałość nośników typu SSD);
  • rodzaju treści dystrybuowanych przez serwer;
  • dodatkowych wymagań biznesowych klienta (np. nieprzekraczanie zakładanego wolumenu przesłanych danych w zadanym okresie);
  • automatycznego wyłączenia kierowania ruchu do serwera po wykryciu jego awarii;
  • automatycznego włączenia kierowania ruchu do serwera po wykryciu wznowienia przez niego działania.

Moduł składa się z następujących komponentów

Moduł rozkładu ruchu pomiędzy serwerami brzegowymi

Pozwala na wybór optymalnego węzła dystrybucyjnego w zależności od następujących danych:

  • dane o sieciach obsługiwanych przez węzeł pozyskane z BGP,
  • informacja o obciążeniu serwera (sieć, CPU, wielkość Cache, maksymalne obciążenia),
  • informacja o niedostępności serwera,
  • priorytet dla treści określonego typu,
  • priorytet na obsługę danych klas adresowych.

Moduł rozkładu kontentu

W czasie rzeczywistym analizuje popularność poszczególnych materiałów lub grupy materiałów. Na podstawie predykcji popularności jest wybierane miejsce na której grupie cache powinien się znaleźć materiał. Moduł pozwala na obniżenie ilości transferów pomiędzy poszczególnymi cache z jednoczesnym zwiększeniem poziomu HitRatio. Moduł powoduje, że dyski SSD mają minimalną ilość zapisów przez co ich wydajność jest znacznie większa. Dodatkowo moduł pozwala na bieżący monitoring popularności danych udostępnianych materiałów.

Moduł wyboru formatu dystrybucyjnego

Pozwala na wybór optymalnego formatu dystrybucyjnego w zależności od rodzaju użytej przeglądarki lub urządzenia. Moduł pozwala również na modyfikację serwowanej playlisty w przypadku formatów adaptacyjnych tak, żeby dla określonej grupy urządzeń / odbiorców usuwać poszczególne profile.

Moduł diagnostyki błędów odtwarzania

Zbiera na bieżąco informacje na temat błędów odtwarzacza. Zebrane informacje trafiają następnie do modułu analitycznego oraz do modułów rozkładu ruchu. W przypadku określonego poziomu błędu, system podejmuje decyzję o wyłączeniu węzła.

Moduł geoblokady z regionalizacją

Zaczytuje informację o GeoIP z komercyjnych i darmowych baz danych i na podstawie metadanych powiązanych z poszczególnymi materiałami lub grupami materiałów blokuje lub akceptuje żądanie. Blokada może być ustawiana w oparciu o parametry kraj lub sieć. Dodatkowo możliwe jest tworzenie dowolnych grup krajów i regionów, do których definiowane są dostępy.

Moduł dostępu warunkowego

Pozwala na dostęp do materiału uzależniony od dokonania płatności, określonego operatora oraz kraju pochodzenia. Moduł pozwala również blokować materiał po określonym czasie, blokować określone jakości. Moduł pozwala także na blokowania wydania materiału po otrzymaniu żądania z większej niż zadeklarowanej ilości adresów IP. Moduł pracuje w oparciu o tokeny jednorazowe.

Moduł asynchronicznej detekcji nadużyć

Pozwala na śledzenie przypadków nadużyć pobierania treści za pomocą anonimowych proxy, udostępnianie konta dla większej niż zadeklarowana liczba abonentów.

Grupa ludzi oglądających transmisję wideo

Urządzenie brzegowe delivery node

Węzeł Delivery Node odpowiada za dostarczenie treści audiowizualnej, VOD i „na żywo” do urządzenia użytkownika końcowego (widza) na podstawie danych przekazanych przez serwer kierujący.

Emisja internetowa odbywa się najczęściej z wykorzystaniem techniki chunked HTTP, wykorzystywanej przez protokoły HLS, DASH i Microsoft Smooth Streaming. Możliwe jest także dostarczanie treści tradycyjnym sposobem, progressive download, co zwykle stosowane jest w przypadku treści typu pre-roll i mid-roll. Serwer HTTP wykorzystuje trzy poziomy składowania danych (tiers) – pamięć, nośniki SSD i nośniki HDD, co pozwala na optymalizację wydajności osiąganej przy emisji, szczególnie dla treści typu prime. Oprogramowanie dynamicznie dostosowuje się do wolnych zasobów sprzętowych serwera oraz proaktywnie kasuje dane, aby zarówno maksymalizować współczynnik cache hit ratio, jak i optymalnie wykorzystać zasoby.

Cechy urządzenia brzegowego

  • transparentny cache, umożliwiający dystrybucję dowolnych plików (lub ich fragmentów) w oparciu o protokół http,
  • cache niezależny od serwera źródłowego,
  • obsługa protokołu HTTPS,
  • wysoka wydajność (ponad 90% teoretycznej przepustowości kart sieciowych; do 90Gb/s z jednego węzła),
  • dowolna pojemność węzła,
  • możliwość wykorzystania i mieszania różnego rodzaju nośników danych (dyski SATA/SAS/SSD/NVMe/RAM),
  • możliwość zdefiniowania polityk buforowania różnego rodzaju treści (optymalizacja wykorzystania dostępnych zasobów sprzętowych serwera),
  • pełna redundancja, umożliwiająca równoległe działanie dowolnej ilości serwerów brzegowych,
  • możliwość utrwalania w bazie danych każdego obsłużonego wydania treści (w celu późniejszego wykorzystania np. przez logikę biznesową działającą asynchronicznie lub systemy analityczne oparte o BigData),
  • lekkie technologicznie komponenty umożliwiające szybkie nanoszenie zmian (także w trybie ad-hoc),
  • obsługa dostępu warunkowego w przypadku materiałów nie posiadających DRM (weryfikacja możliwości wydania),
  • monitorowanie parametrów bieżących węzła w celu optymalnego jego wykorzystania w charakterze węzła brzegowego,
  • brak konieczności komunikacji z jakimikolwiek komponentem centralnym architektury systemu przy normalnej obsłudze zapytań (dotyczy przypadku wydawania treści znajdujących się w cache serwera brzegowego),
  • możliwe wykorzystanie jako źródeł treści więcej niż jednego origin-serwera (w tym także pomocniczych serwerów cache),
  • zabezpieczenie treści za pomocą mechanizmów tokenów, whitelisty, blacklisty,
  • obsługa dowolnego rodzaju treści, realizacja różnego rodzaju przekierowań, zależnie od rodzaju treści lub rodzaju klienta uzyskującego dostęp do zasobu,
  • weryfikacja dostępności treści przed skierowaniem do serwerów brzegowych (zapobiega kierowaniu do serwerów brzegowych zapytań, których nie mogą lub nie powinny obsłużyć),
  • wybór optymalnego formatu dla konkretnego klienta, w przypadku treści dystrybuowanych w wielu formatach,
  • możliwość tymczasowej blokady określonych strumieni dla treści wideo dystrybuowanych w oparciu o formaty adaptatywne,
  • dynamiczne generowanie różnych playlist w oparciu o zróżnicowane reguły biznesowe (np. niska jakość dostępna dla wszystkich),
  • możliwość generowania linków czasowych do udostępnianych treści (o określonym czasie życia) i weryfikowanych za pomocą mechanizmów generowania linków do udostępnianych treści ograniczonych co do ilości dostępów,
  • generowanie adresów zapasowych dla dystrybuowanych plików,
  • pełna redundancja routera,
  • skalowalność horyzontalna routera (możliwość równoległej, niezależnej pracy dowolnej ilości węzłów z routerem),
  • wysoka wydajność (do kilkudziesięciu tysięcy wywołań na sekundę na pojedynczym węźle),
  • lekkie technologicznie komponenty, umożliwiające szybkie nanoszenie zmian (także w trybie ad-hoc).

Węzeł analityczny  Analytics Node

Węzeł analityczno-raportujący jest opcjonalnym składnikiem platformy. Do jego funkcji należy bieżące monitorowanie platformy pod kątem obciążenia, generowanie raportów oraz statystyk dotyczących użytkowania systemu.