Доставчикът на стрийминг услуги Netflix съхранява своите видеоклипове за оптимална доставка при различни скорости на интернет и устройства за възпроизвеждане в различни Резолюции, нива на качество и формати. Разработвах платформата "Reloaded" в продължение на около седем години. Междувременно обаче натоварването на Netflix нарасна десетократно благодарение на разширяването на дейността на повече пазари и значително повече съдържание. Според инженерния блог на Netflix това е довело до проблеми. Затова отговорните разработчици са разработили нова платформа за кодиране, наречена "Cosmos" създадена.
Както обяснява Франк Сан Мигел от името на екипа на Cosmos, старата архитектура на Reloaded е проектирана изключително за възможно най-добро мащабиране на аудио и видео съдържание. Монолитната архитектура обаче значително затрудняваше въвеждането на нови функции. Освен това екипът, отговарящ за кодирането, се разрасна значително през последните няколко години, което означаваше, че новите членове на екипа нямаха почти никакъв поглед върху остарялата архитектура на Reloaded. Отговорни за това бяха преди всичко логиката на приложението с кода на инфраструктурата.
Архитектурите на микроуслугите като модел за подражание
Поради сериозните проблеми екипът реши да направи изцяло нова разработка, вместо да преработва съществуващата архитектура. За модел беше избрана съвременната архитектура на микросървисите. В допълнение към действителните задачи по кодиране това позволява модулно добавяне на допълнителни услуги, включително инструмент за наблюдение и инструменти за конвейера за непрекъснато предоставяне. Това би трябвало да позволи разработването на нов код директно в производствената среда.Вноски могат да бъдат импортирани без допълнителна намеса.
Въпреки приликите обаче услугите на Cosmos не са микроуслуги. Данните на приложението и неговите зависимости също са отделени от други системи в инструмента за кодиране Netflix, както при микросървисите, но услугите използват ясно определени API за обмен на данни.
Много интензивната изчислителна работа, която се извършва заедно с кодирането, зарежда своите зависимости като контейнери Docker. В зависимост от размера на задачата, в Netflix това са няколко хиляди различни контейнера, които се съхраняват в изчисления в облак среда. Според разработчиците за особено големи файлове често са необходими няколко дни.
Разработката на Cosmos започна през 2018 г., като първоначалните тестове в средата на продукта започнаха през 2019 г. Действителното внедряване на системата, която след това ще замени изцяло платформата за кодиране Reloaded, ще се осъществи през текущата 2021 г.