Dostawca usług strumieniowych Netflix przechowuje swoje filmy w celu zapewnienia optymalnej dostawy przy różnych prędkościach Internetu i na różnych urządzeniach odtwarzających w różnych Rozdzielczość, poziomy jakości i formaty. Przez około siedem lat zajmowałem się kodowaniem platformy "Reloaded". W międzyczasie jednak obciążenie Netflixa wzrosło dziesięciokrotnie dzięki ekspansji na kolejne rynki i znacznie większej ilości treści. Według bloga inżynierów Netflixa, spowodowało to problemy. Odpowiedzialni za to programiści opracowali więc nową platformę kodowania o nazwie "Kosmos" stworzone.
Jak wyjaśnia Frank San Miguel w imieniu zespołu Cosmos, stara architektura Reloaded została zaprojektowana wyłącznie do skalowania treści audio i wideo tak dobrze, jak to tylko możliwe. Jednak monolityczna architektura znacznie utrudniała wprowadzanie nowych funkcji. Ponadto, zespół odpowiedzialny za kodowanie znacznie się powiększył w ciągu ostatnich kilku lat, co oznaczało, że zwłaszcza nowi członkowie nie mieli praktycznie żadnego wglądu w przestarzałą architekturę Reloaded. Odpowiedzialne za to było przede wszystkim połączenie logiki aplikacji z kodem infrastruktury.
Architektura mikroserwisów jako wzór do naśladowania
Ze względu na poważne problemy, zespół zdecydował się na całkowicie nowy projekt zamiast rewizji istniejącej architektury. Jako model wybrano nowoczesną architekturę mikroserwisów. Oprócz samych zadań związanych z kodowaniem, umożliwia to modułowe dodawanie kolejnych usług, w tym narzędzia do monitorowania i narzędzia dla potoku ciągłego dostarczania. Powinno to umożliwić tworzenie nowego kodu bezpośrednio w środowisku produkcyjnym.Składki mogą być importowane bez dodatkowych interwencji.
Pomimo podobieństw, usługi Cosmos nie są mikroserwisami. Dane aplikacji i jej zależności są również odseparowane od innych systemów w narzędziu kodującym Netflix, podobnie jak w mikroserwisach, ale usługi wykorzystują jasno zdefiniowane API do wymiany danych.
Wysokoobliczeniowa praca, która występuje obok kodowania, ładuje swoje zależności jako kontenery Docker. W zależności od wielkości zadania, w Netflixie jest to kilka tysięcy różnych kontenerów, które są przechowywane w cloud computing środowisko. W przypadku szczególnie dużych plików, jak twierdzą twórcy, uruchomienie programu zajmuje często kilka dni.
Prace rozwojowe nad Cosmosem rozpoczęły się w 2018 r., a wstępne testy w środowisku produktowym w 2019 r. Właściwy rollout systemu, który następnie całkowicie zastąpi platformę kodowania Reloaded, nastąpi w bieżącym roku 2021.