Wchodzisz na netflix.com, wybierasz odcinek ulubionego serialu i włączasz play. Jeżeli myślisz, że Netflix po prostu uruchamia konkretny odcinek z serwera AWS, to jesteś w błędzie. Tak działają mniejsze serwisy, a Netflix to kobyła, która musiała poradzić sobie z ogromną liczbą użytkowników w inny sposób. W jaki? Tego dowiesz się z fragmentu książki, który przetłumaczyliśmy.

“Netflix jest ogromny. Działa na całym świecie, ma mnóstwo użytkowników, odtwarza wiele filmów, ale też zarabia kupę kasy” — tak brzmi początek rozdziału książki “Explain the Cloud Like I’m 10” autorstwa Todda Hoffa, który w ramach promocji opublikował fragment na swoim blogu. Tłumaczy w nim, w jaki sposób działa Netflix, po to, by na przykładzie tego popularnego serwisu pokazać, jak działa cloud computing.

Garść statystyk

Żeby zrozumieć z jak dużą masą użytkowników muszą sobie radzić serwery, z których korzysta Netflix, przytoczymy najważniejsze informacje na jego temat.

  • Netflix w połowie ubiegłego roku przebił liczbę 100 mln subskrybentów, a stan na pierwszy kwartał 2018 roku osiągnął wynik 125 mln subskrybentów.
  • Ponad połowa użytkowników Netflixa mieszka w Stanach Zjednoczonych. Bardzo ważnym rynkiem dla Netflixa jest także Meksyk, Brazylia i Argentyna.
  • Z Netflixa korzystają użytkownicy z prawie całego świata. Według danych subskrybenci oglądają seriale i filmy Netflixa z 200 krajów.
  • W 2017 roku Netflix każdego dnia odtwarzał 250 milionów godzin filmów. Co prawda to mniej niż YouTube (1 miliard godzin każdego dnia), ale za to więcej niż Facebook (110 milionów godzin każdego dnia).
  • Koszt pracy programisty na jednego użytkownika korzystającego z serwisu na koniec 2017 roku wyniósł 21,5 dolara.

Netflix osiągnął sukces, czemu dowodzą statystyki. W 2017 roku spółka osiągnęła dochód w wysokości 11,69 miliarda dolarów. Nie da się też ukryć, że za sukcesem działania tej platformy do streamingu filmów i seriali stoi… szybkość działania. Netflix świetnie poradził sobie z wyzwaniami stojącymi przed twórcami tego typu serwisów. I choć, zdaniem autora książki, nie jest najlepszym przykładem wyjaśniającym jak wykorzystać cloud computing, to przemawia za nim ilość informacji, które da się znaleźć na jego temat w internecie.

Jak działa Netflix

Netflix do obsługi swoich użytkowników i udostępnienia im dowolnych filmów z oferty wykorzystuje AWS (od Amazonu) oraz Open Connect. By dostarczyć użytkownikom to, czego oczekują, obie te chmury muszą ze sobą współpracować.

To co stoi za Netflixem możemy podzielić na trzy części: klient, backend oraz sieć dostarczania treści. Klient korzysta z Netflixa na dowolnym urządzeniu. Może to robić z poziomu smartfona, aplikacji mobilnej, przeglądarki internetowej czy aplikacji w Smart TV. Wszystko, co się dzieje zanim wciśniemy przycisk play odbywa się dzięki backendowi, który opiera się na AWS. Mowa o wyświetlaniu na stronie głównej najnowszych odcinków, ale też personalizacji układu dla każdego użytkownika.

Wszystko, co się dzieje po kliknięciu przycisku play działa dzięki Open Connectowi. To sieć dystrybucji treści przechowywanych w różnych miejscach na całym świecie. Po wybraniu dowolnego filmu, Open Connect dystrybuuje go, czyli z miejsca przeznaczonego dla tego filmu uruchamia go na urządzeniu, z którego właśnie korzystamy. O działaniu Open Connecta jeszcze w tym artykule powiemy nieraz.

Ważne jest to, że Netflix łącząc wszystkie te trzy części w jedną całość — osiąga swój cel, czyli szybko uruchamia dowolny film. Ale zanim dotarł do tego momentu, musiał sporo przejść, a pierwszym krokiem do obsługi wtedy setki tysięcy, a później milionów użytkowników, było stworzenie własnego data center.

Początki Netflixa

Netflix powstał w 1997 roku w Kalifornii i biznes zaczynał od wypożyczalni filmów DVD dostarczanych do domów klientów. Dziesięć lat później uruchomił serwis streamingowy, na potrzeby którego zbudował dwa centra danych, jeden obok drugiego. Ich zadaniem była oczywiście obsługa rosnącej liczby użytkowników. W tamtych czasach to był bardzo wymagający proces, a dziś możemy znacznie go sobie ułatwić — wykorzystując do tego właśnie cloud computing.

Za czasów Netflixa tworzenie własnego data center było czymś normalnym, ale absorbującym czas. Trzeba było dostosować miejsce do pomieszczenia serwerów, zamówić sprzęt, zamontować go i ustawić system chłodzenia. Kolejny problem był związany ze wzrostem. Kiedy skończyło się tworzyć jedno centrum danych, przychodziła wiadomość, że trzeba zbudować kolejną, by nowi użytkownicy także mogli swobodnie korzystać z zasobów serwisu. Netflix radził sobie z tym tworząc monolit obsługujący wszystkie serwery, ale liczba zainteresowanych rosła tak szybko, że trzeba było pomyśleć o innym rozwiązaniu, a były nim serwery AWS.

Przejście na AWS

Decyzja o przejściu na AWS była spowodowana tym, że przez trzy dni w sierpniu 2008 roku, Netflix przestał działać z powodu problemów z serwerami. Przestał działać, to znaczy też, że nie zarabiał, choć ponosił koszty. “Doświadczenie z budowania własnego data center dało Netflixowi nauczkę, która brzmiała “nie jesteśmy dobrzy w budowaniu centrum danych”. Netflix chciał skupić się na tym, w czym czuje się dobrze, czyli w dostarczaniu wideo. I właśnie dostarczanie wideo wyróżniało na rynku Netflixa, a nie to, że potrafi zbudować data center” — pisze autor wpisu.

Przejście Netflixa na AWS było odważnym krokiem, który szybko się opłacił. Twórcy Netflixa chcieli zażegnać wszystkim dotychczasowym problemom i tym, na które mogli napotkać w przyszłości, związanym z najważniejszym produktem, czyli dostarczaniem filmów użytkownikom dowolnych urządzeń. Zdaniem autora książki, tworząc własne centrum danych uniknięcie tych problemów byłoby niemożliwe.

Kolejna sprawa to czas i pieniądze, które musieliby poświęcić twórcy Netflixa na to, by zarządzać swoimi serwerami. Te prace nie przynosiłyby jednak większej wartości użytkownikom, a korzystanie z serwerów AWS tak. Mając własne serwery — duży przypływ subskrybentów powodował spowolnienie, czyli pogorszenie jakości głównego produktu Netflixa. Korzystając z AWS, czy zewnętrznej usługi cloud computingowej, ten problem teoretycznie znika, gdyż przepustowość zwiększa się zgodnie z napływem użytkowników. Przeniesienie tak dużej bazy filmów nie jest jednak łatwym procesem i zajął Netflixowi osiem lat.

Dzisiejszy Netflix jest oparty o setki tysięcy EC2, rozmieszczonych w aż trzech centrach danych AWS. Jeden działa w Północnej Wirginii, drugi Portland w stanie Oregon, a trzeci w Dublinie w Irlandii. Warto zaznaczyć, że wiele firm korzysta z jednego dużego centrum danych, ale nie Netflix, który zrobił wszystko, by każdy mógł w dowolnym momencie obejrzeć odcinek swojego ulubionego serialu. Posiadanie trzech centrum danych to sprytna strategia, która zmniejsza prawdopodobieństwo problemów serwerowych. Jeśli jedno centrum będzie miało problemy, drugie obsłuży jego użytkowników.

Włączamy film

Dowiedzieliśmy się już, w jaki sposób działał Netflix, który w 2007 roku postanowił uruchomić serwis streamingowy z filmami. Wiemy już, ile trudu kosztowało go sprostanie oczekiwaniom użytkowników, ale też poznaliśmy historię odważnego kroku, jakim było przejście w pełni na AWS, co zajęło Netflixowi osiem lat. Teraz przejdźmy do tego, co dzieje się po wciśnięciu przycisku “play” na dowolnie wybranym tytule filmu, czy serialu. Pierwsza czynność jaką wykonuje Netflix po włączeniu przez nas filmu to formatowanie. Netflix musi dopasować format filmu, by prawidłowo wyświetlał się na naszym urządzeniu, a trzeba powiedzieć, że poprawnie obsługuje aż 2,2 tys. różnych urządzeń.

Oprócz tego, że wyświetla film w odpowiednim formacie dla urządzenia, to przetwarza jakość obrazu zgodną z szybkością łącza internetowego, do którego mamy dostęp. Taki sam proces dotyczy ścieżki dźwiękowej oraz opcji językowej, którą wybraliśmy. Ta druga dotyczy także wyświetlanych napisów ułatwiających oglądanie. Żeby pokazać jak dużo pracy Netflix wykonuje po wciśnięciu przycisku “play”, autor książki posłużył się statystykami. Pierwszy sezon serialu The Crown został przygotowany w 1,200 plikach, choć ma tylko 10 odcinków. Netflix jeszcze więcej pracy wykonał przy konwersji serialu Stranger Things, na potrzeby którego przygotował 9,570 wersji filmu — a mówimy tylko o jednym sezonie!

Tak duży wybór wersji dotyczącej jednego odcinka serialu spowodował, że Netflix musiał opracować własny system dobierania odpowiedniego formatu. I podzielił go na trzy sposoby.

Jak pokazać film

Konwersja filmu na różne formaty dopasowane do 2,2 tys. rodzajów urządzeń, które obsługuje Netflix, to nie koniec wyzwań, przed którymi stanął w drodze do sukcesu. Sporym osiągnięciem było dopracowanie sposobu samego wyświetlania filmu użytkownikom. Dotychczas korzystał z trzech:

  • własnej sieci dystrybucji treści (CDN),
  • zewnętrznej sieci dystrybucji treści,
  • Open Connection.

Wszystkie filmy Netflixa przechowywane są na nośniku S3 od Amazonu (AWS) — nazwa S3 wzięła się od skrótu: simple storage service. Nie zawsze jednak tak było, o czym zaraz opowiemy.

Gdy Netflix startował w 2007 roku z serwisem streamingowym, za pomocą własnej sieci dystrybucji obsługiwał 36 milionów użytkowników z 50 krajów świata. Obługa tak dużej liczby użytkowników była sporym wyzwaniem. Postanowił więc stworzył własną sieć dystrybucji materiałów wideo, dlatego w pięciu miastach w całych Stanach Zjednoczonych stworzył małe centrum danych, z dostępem do wszystkich filmów. Dzięki temu użytkownicy ze Stanów mogli swobodnie oglądać filmy Netflixa, które dostarczał im komputer ulokowany najbliżej miejsca, z którego oglądali ulubione seriale. Własna sieć dystrybucji treści nie sprawdziła się, a użytkownicy Netflixa mogli odczuć problemy serwerowe.

Dlatego Netflix w 2009 roku postanowił przenieść się na zewnętrzną sieć dystrybucji treści. To był dobry krok, ponieważ w ten sposób mógł skupić się na dostarczaniu jeszcze lepszych seriali i filmów, a nie tracić go na problemy związane z własną siecią dystrybucji. W ciągu dwóch lat współpracował z takimi firmami jak Akamai, Limelight, czy Level 3 i był z niej zadowolony. Do czasu, gdy liczba użytkowników jeszcze bardziej zwiększyła się, a koszt używania zewnętrznego CDN-u mocno wzrósł — wtedy twórcy postanowili, że najlepszym rozwiązaniem dla Netflixa będzie powrót do korzeni, ale w zmienionej formie. Stworzyli Open Connect, który nie do końca można nazwać własną siecią dystrybucji.

W 2011 roku Netflix podjął decyzję o stworzeniu Open Connect, którego premiera nastąpiła rok później. Za stworzeniem nowej własnej sieci dystrybucji treści przemawiały takie argumenty, jak:

  • cena. Korzystanie z zewnętrznej sieci wiąże się z ogromnymi kosztami, tym bardziej, gdy z naszego serwisu korzysta tak duża grupa użytkowników jak z Netflixa. Dlatego bardziej opłacalne było stworzenie i utrzymywanie własnej sieci dystrybucji treści.
  • jakość. Dzięki kontrolowaniu każdego elementu związanego z dystrybucją filmu — Netflix może swoim użytkownikom zapewnić lepszą jakość dźwięku i obrazu.
  • skalowalność. Głównym celem Netflixa jest przyciągnięcie jeszcze większej liczby subskrybentów, a tym samym stały wzrost oglądanych materiałów. Stworzenie własnej sieci pozwala dostosować przepustowość do własnych potrzeb.

Jak działa Open Connect

Wspominaliśmy już wcześniej o tym, że Open Connect wykorzystuje setki tysięcy komputerów, za pomocą których Netflix udostępnia filmy subskrybentom w pobliżu. Działa to dokładniej tak, że subskrybenci z Londynu włączając dowolny film, oglądają go dzięki serwerowi umieszczonemu w Londynie. To właśnie dzięki temu, Netflix po dziś dzień zapewnia świetną jakość oraz dostępność seriali i filmów, które ma w ofercie.

Każde data center składa się z dziesiątek, a nawet setek OCA (Open Connect Applience), czyli dysków flash oraz dysków do przechowywania danych. Wykorzystują one system operacyjny FreeBSD oraz NGINX dla serwera www. Kiedy włączamy odcinek serialu albo film, to jest on odtwarzany z konkretnego OCA, w lokalizacji najbliższej komputera, z którego chcemy obejrzeć film. Na świecie działają setki tysięcy takich serwerów, z ponad tysiąca lokacji. W Polsce zostały rozmieszczone w Warszawie, co pokazuje poniższa mapa.

Wymieniając trzy sposoby wyświetlania/udostępniania filmów, wspomnieliśmy o tym, że tworzenie własnej sieci dystrybucji treści jest czasochłonne i drogie. Koszty takiego rozwiązania szybko rosną, w przypadku Netflixa, i to w dodatku każdego dnia, kiedy do grona subskrybentów dołączają nowi klienci. Dlatego Netflix musiał opracować autorski system, który pozwoliłby rozwiązać dwa problemy:

  • wysoka cena za usługi zewnętrznych sieci dystrybucji treści,
  • brak elastyczności i skalowalności.

Rozwiązaniem okazało się właśnie Open Connect, ale przy jego wyborze od razu pojawił się problem z miejscami, w których mogłyby stać serwery do dystrybucji. Dlatego Netflix nawiązał współpracę z dostawcami ISP, którzy zezwolili na umieszczenie tysięcy OCA w ich centrach danych. W ten sposób Netflix zmniejszył koszty związane z dystrybucją swoich treści, ale też ułatwił sobie skalowalność usługi, na której zarabia miliardy dolarów.

Premiera

Dowiedzieliśmy się już, w jaki sposób działa Netflix oraz co się dzieje po uruchomieniu przycisku play na dowolnym tytule filmu/serialu. Czas na wyjaśnienie, dlaczego Netflix ładuje filmy, zanim wybierzemy, który chcemy obejrzeć.

Netflix przechowuje swoje materiały na serwerach S3, a proces przenoszenia ich na każdy z dysków OCA, rozmieszczonych na całym świecie, nazywa proactive caching’iem. Ważnym słowem w tym określeniu jest “proaktywny”, ponieważ Netflix, opierając się na danych pobieranych od użytkowników, przewiduje, który odcinek jakiego serialu zostanie prawdopodobnie włączony o konkretnej godzinie w konkretnym regionie. Dzięki temu, wysuwa te propozycje na górną listę seriali i od razu ładuje najnowszy odcinek. Działa to na prostej zasadzie: jeśli w Polsce największą popularnością cieszy się serial Narcos, to o godzinie 17 większość z polskich subskrybentów na pewno zacznie oglądać najnowszy odcinek.

Każda lokacja zostaje objęta dyskiem OCA, do którego wcześniej trafia pożądany odcinek serialu. Dzięki temu, do OCA nie trafiają od razu najnowsze odcinki wszystkich seriali, tylko te, które zdobyły największą popularność w danym regionie. Powodem takiego zachowania jest też to, że OCA zamieszczone w ISPsach i IXPsach nie mają tak dużej pojemności, by od razu przyjąć wszystkie najnowsze odcinki. Najnowsze odcinki wszystkich seriali trafiają do data center w trzech wymienionych wcześniej miastach (Północna Wirginia, Portland i Dublin), a dopiero później, w godzinach mniejszego zainteresowania serwisem w danym regionie, trafiają do OCA.

Mamy nadzieję, że w prosty sposób wyjaśniliśmy Wam, w jaki sposób działa Netflix. Jak pewnie zauważyliście, sporo pracy włożył w to, żeby zawsze sprawnie działał. Jeszcze więcej na ten temat działania Netflixa dowiecie się z tekstu źródłowego, który polecamy przeczytać.

Zapraszamy do dyskusji
Nie ma więcej wpisów

Send this to a friend