2

Stephen Rivas Jr o tym co dzieje się pod maską Netflix

Rozmawiamy z inżynierem pracującym ww Netflix, odpowiedzialnym za tworzenie systemu pozwalającego na dodawanie nowych filmów do katalogu, z uwzględnieniem wyzwań jakie niesie spełnienie różnych wymagań, dla różnych wersji językowych i różnych urządzeń.

Stephen Rivas Jr opowiada o zaskakującej liczbie wyzwań i trudności, jakie niesie dodawanie filmów do katalogu, na rynku globalnym. Gdy każda pozycja zawiera napisy, lektorów, grafiki i dziesiątki innych parametrów dla każdego z krajów i wielu urządzeń, na których dostępny jest Netflix.

Netflix jest gigantem dostarczającym wideo na żądanie. Przyszłością dla konsumpcji treści wideo, która zastąpi telewizję. Jak zaczęła się Twoja praca dla Netflix? Co szczególnie lubisz w Twojej pracy?

Zacząłem w 2014 roku, pierwotnie rozmawiałem z zespołem Acquisition UI, który pomaga z rejestracją nowych użytkowników, ale po kilku rozmowach znalazłem się w zespole Digital Supply Chain. Naprawdę cieszy mnie złożoność związana ze zbieraniem i dostarczaniem treści dla rosnącego katalogu filmów. Od kiedy rozwijamy się na rynku globalnym, sprawia mi przyjemność poznawanie nowych rzeczy dotyczących branży, w różnych krajach, ponieważ mają różne reguły, wymagania i preferencje dotyczące rozrywki. Ostatnio pracowałem nad aplikacją pomagającą zarządzać ocenami i dowiedziałem się wiele na temat krajów, które wypełniają tylko jedno pole z dnami dla danego filmu.

Jak działa zarządzanie treścią w Netflix? Jakie czynniki są brane pod uwagę?

Ha ha, o wiele więcej czynników jest brane pod uwagę, niż pierwotnie zakładałem, gdy zaczynałem pracę. Nie wiem dlaczego, ale z początku zdawało mi się, że „wystarczy wgrać obraz JPG, oraz plik MP4, dodać jakiś tekst i gotowe, film jest dostępny do obejrzenia w serwisie”. W pierwszym tygodniu pracy dowiedziałem się o 20 – 30 (obecnie mamy około 100) różnych aplikacjach i serwisach, które zbierają i przetrzymują i dystrybuują dane dotyczące katalogu. Wszystko poczynając od ocen, kontraktów, przez metadane takie jak tytuł, obsada i reżyser, zasoby wideo, ścieżka dźwiękowa i napisy w innych językach, grafika, streszczenia – i więcej – zostają rozpowszechniane na różne sposoby, dla różnych krajów, języków i urządzeń które wspieramy.

Jaki jest temat Twojego przemówienia na infoSHare?

Na infoShare będę mówił szerzej o Content Platform Engineering i o naszej roli w serwisie jakim jest Netlfix, podzielę się kilkoma ekscytującymi rzeczami, których się nauczyliśmy i problemami jakie musieliśmy rozwiązać podczas globalnego rozwoju. Nasze wewnętrzne UI przenosimy na technologię node.js i React w celu łatwiejszego rozwijania narzędzi, które ułatwiają użytkownikom tworzenie i utrzymywanie wszelkich elementów, które wchodzą w skład katalogowania treści na dużą skalę.

Czy masz jakąś wskazówkę dla młodych startupów i deweloperów chcących znaleźć właściwy projekt, aby się w niego zaangażować?

Sądzę, że kiedy zaczynasz, jest naprawdę istotne, aby się nauczyć grać w drużynie i dostarczać rzeczy wspólnie. Kiedy podejmujesz większe projekty i większe wyzwania, możliwość współpracowania z innymi jest nieoceniona – a to przy okazji zwykle oznacza, że inni będą z przyjemnością współpracować z Tobą i będą chcieli, abyś był zaangażowany w więcej rzeczy. Kiedy zaczynałem, byłem od początku skoncentrowany na zbudowaniu wielkiego, przełomowego projektu, zdałem sobie jednak sprawę, że bardziej istotni byli ludzie, z którymi budowałem te projekty.

Jaka jest Twoim zdaniem przyszłość mediów w kontekście wirtualnej rzeczywistości, rozszerzonej rzeczywistości i sztucznej inteligencji?

Jestem naprawdę ciekawy jak to się rozwinie – teraz, gdy już wiem ile wysiłku kosztuje stworzenie bardziej wszechstronnego katalogu dla cyfrowych treści czuję, że jest jeszcze wiele do zrobienia w tym temacie. Słyszałem od znajomych o zastosowaniach edukacyjnych. Wyobraź sobie zabieranie dzieci w miejsca o których chcemy je nauczyć w zamian przenoszenia ich tam za pomocą książki? To może być bardzo ekscytujące. Jest wiele rzeczy, w których te nowe technologie mogą sporo zmienić i otworzyć nowe możliwości dla branży.

 

Mówisz, że jest 100 elementów powiązanych z dodaniem nowego filmu do katalogu. Zakładam, że większość z nich jest niewidoczna z punktu widzenia zwykłego widza. W takim razie do czego służą? Kto ich używa i do czego?

Czasami złożoność „wszystkiego co konieczne, aby film mógł zostać wyświetlony” może wynikać po prostu z dostępności w różnych krajach, albo kiedy jest oglądany na różnych urządzeniach. Żaden pojedynczy użytkownik może nie widzieć wszystkich tych rzeczy na raz, ale większość z tych elementów służy wzbogaceniu oglądania i odkrywania dla wielu różnych typów widzów, ich lokalizacji oraz preferencji. Katalog ma wiele aspektów dla danego tytułu, ale używamy ich różnie dla różnych scenariuszy. Grafika to jeden z tych elementów, który występuje w wielu odmianach ( np. dla dużych i małych urządzeń, dla różnych układów strony, z elementami w różnych językach). Nie zobaczysz ich wszystkich na raz – ale użytkownik w Hiszpani, korzystający z iPhone’a najprawdopodobniej zobaczy inną grafikę, niż użytkownik w Japonii, na dużym telewizorze.

Czy ocena przypisana do filmu pochodzi ze średniej ocen użytkowników, czy to bardziej skomplikowane od zwykłej średniej?

Ocenę użytkowników właśnie zmieniliśmy z systemu 5 gwiazdkowego, na prostsze „Podoba mi się” oraz „To nie dla mnie”. Jest sporo skomplikowanych rzeczy, które wiążą się z ta funkcją. Mamy procent dopasowania, który wskazuje jak bardzo naszym zdaniem spodoba ci się dany tytuł. Jednocześnie użytkownicy mogą pokazać co im się nie podoba. Todd Yellin ma wideo na temat personalizacji i elementów z nią związanych, powinieneś je zobaczyć.

Czy to duże wyzwanie, aby skalować wgrywanie nowych tytułów, tagowanie, oceny, wraz ze wzrostem popularności serwisu i liczby rynków na których jest dostępny? Czy może ten parametr jest mniej więcej stały, a rośnie głównie zapotrzebowanie na serwery strumieniujące wideo do użytkowników?

My też musimy się trochę skalować i adaptować, ale w inny sposób, niż ta część serwisu, która jest widoczna dla użytkowników. Dla przykładu, aby wspierać wiele różnych języków, zbieramy napisy, lektorów i inne zasoby związane z tymi językami. W trakcie naszej ekspansji globalnej oznaczało to sporo pracy zarówno dla naszego zespołu, jak i partnerów, którzy korzystają z naszych wewnętrznych narzędzi. Poza tym, ponieważ wiele z naszych treści pochodzi od nas samych, kiedy pojawia się pomysł z drugiego końca linii produkcyjnej, aby pokazać użytkownikom nowy rodzaj grafiki albo inne metadane, musimy szybko znaleźć sposób na zbieranie tych danych, przechowywanie ich, oraz posłać je dalej, aby przetestować rozwiązania i spróbować nowych rzeczy. To mogą być dla nas bardzo duże projekty, jak i bardzo małe, jak na przykład funkcja pobierania – która z naszego punktu widzenia oznaczała możliwość dodania nowej flagi „do pobrania”, którą przetrzymujemy i przesyłamy do innych systemów.

Czy możesz opisać jak wygląda interfejs odpowiedzialny za przesyłanie nowych filmów? To część, której nigdy nie widzimy. Czy proces przesyłania i zarządzania jest skomplikowany i wymaga przeszkolenia?

Jest bardzo dużo szkoleń, które są w tym celu potrzebne – nasze zespoły robią tutaj świetną robotę. Pomagają nam ostatnio coraz bardziej i bardziej w zdefiniowaniu optymalnego workflow i elementów UI. Mam kilka zrzutów ekranu, którymi dzielę się w trakcie moich wystąpień. Interfejs przesyłania wygląda zwykle dość skomplikowanie, choć przypominają zazwyczaj układ tabeli jak w Excelu, który umożliwia użytkownikom znajdywanie, flirtowanie, udostępnianie i operowanie na jak największej liczbie komórek. Jeden z naszych projektów zawiera wiersze z ponad 50 różnymi typami obrazów dla każdego tytułu, a interakcje które można wykonać dla każdego z wierszy, aby przypisać grafikę do różnych wersji językowych, krajów, a także wykonać akcję wyślij/pobierz/publikuj/skasuj dla każdego z obrazów.

Jak zarządzacie napisami dla różnych krajów, zwłaszcza, że nie każdy film jest wszędzie dostępny? Czy dodanie nowego regionu jest trudne z punktu widzenia infrastruktury?

Jesteśmy coraz lepsi w kwestii infrastruktury – co oznacza głównie, że jeśli zrobimy coś dla jednego języka, w jednym kraju, będzie to funkcjonować identycznie dla pozostałych. W tym rozumieniu dodanie nowego regionu skupia się głównie na zebraniu, przesłaniu i przetworzeniu zasobów, ale może to również oznaczać nowe rodzaje danych, albo rzeczy, które są specyficzne dla danego regionu lub demografii. Jakiś czas temu, gdy zaczęliśmy działać w Japonii nie tylko musieliśmy pozyskać więcej zasobów, jak choćby napisów, ale także uchwycić dodatkowe metadane do pokazania w interfejsie klienta. Jak powiedziałeś, nie każdy film jest wszędzie dostępny i mój zespół zarządza aplikacją nazywaną Gatekeeper, która określa co jest wymagane dla danego tytułu aby był dostępny w danym kraju, bazując głównie na zestawach zasad, mających na celu upewnienie się, że wszyscy mają najlepsze możliwe doświadczenie z treścią.

Jak ważny jest UX i UI w narzędziu, które widzą wyłącznie pracownicy? Skąd czerpiesz wzorce?

Moim zdaniem jest bardzo istotny, dlatego pracujemy intensywnie nad jego poprawą przez ostatnie lata. Początkowo potrzebowaliśmy wyłącznie interfejsu, który pozwalał ukończyć proste rzeczy, a teraz pracujemy z użytkownikami, aby znaleźć coraz bardziej efektywne sposoby działania. W jednym z projektów mój zespół zredukował czasy i liczbę kliknięć koniecznych do wprowadzenia ocen dla jednego sezonu z 13 minut i 200 kliknięć, do około 15 sekund i 10 kliknięć. To jest obszar, w którym znaleźliśmy nowy, lepszy format, aby naprawdę pomóc zrobić więcej w krótszym czasie.

Czy możesz wyjaśnić czemu wybrałeś node.js i React do swoich projektów? Co jest szczególnego w tej technologii?

Aplikacja webowa, którą mieliśmy wcześniej po prostu nie współpracowała najlepiej z bazową platformą. Ograniczała produktywność. Mieliśmy wiele problemów, czas uruchamiania był bardzo długi, a część kodu powiązanego z interfejsem było jedynie dodatkiem, nie rozwiązującym podstawowych kwestii związanych z produktywnością. Zespół zajmujący się UI zauważył gwałtowne przyspieszenie po przesiadce na node.js i zdecydowaliśmy wypróbować go na kilku innych projektach – początki były trudne, ale obecnie jest nam dużo łatwiej na tym poziomie. React wyszedł mniej więcej w tym samym czasie i odkąd node pozwolił nam wykorzystać bardziej nowoczesne narzędzia, zaczęliśmy eksperymentować z nim również. To co zobaczyliśmy na początku bardzo nam się spodobało. Szerzej opowiem o tym podczas mojego wystąpienia.

Mówiłeś, że niektóre kraje wypełniają tylko jedno pole związane z filmem. Z czego to wynika? Jakie są inne różnice pomiędzy krajami?

Wiele krajów ma wspólne dane dla filmów, ale są tez różnice. Wspominałem wcześniej, że niektóre kraje dodają ostrzeżenia wiekowe, a jakiś czas temu dodaliśmy metadane związane z prawami autorskimi, które, o ile się nie mylę, są wykorzystywane tylko w jednym czy dwóch krajach. Od czasu do czasu trafiamy na takie rzeczy, dlatego ważne jest aby nasz serwis był elastyczny i umożliwiał skonfigurowanie takich rzeczy dla każdego kraju osobno, bez konieczności tworzenia nowego rozwiązania tylko dla tego jednego kraju.

Dziękuję za rozmowę

  • Irek Mcirek

    Autorze! Czy naprawdę, gdy z kimś sobie rozmawiasz w realu, to mówisz z nim o Netflix? Czy może mówisz z nim o Netflixie? Oraz korzystasz/nie korzystasz z Netflix, czy z Netflixa?! Dlaczego ty nie piszesz po polski?! Boże, ty to widzisz i nie grzmisz…

  • Michał Gumienny

    Jest może jakaś możliwość, aby wyłączyć wyświetlanie już obejrzanych materiałów? Dla przeglądarek są jakieś magiczne rozszerzenia, a dla aplikacji na Androida czy PS4 jest jakieś rozwiązanie?