Streamingleverantören Netflix lagrar sina videor för optimal leverans vid olika internethastigheter och uppspelningsenheter i olika länder. Upplösningar, kvalitetsnivåer och format. Utvecklade kodade plattformen "Reloaded" i ungefär sju år. Under tiden har Netflix last dock tiodubblats tack vare en expansion till fler marknader och betydligt mer innehåll. Enligt Netflix tekniska blogg har detta orsakat problem. De ansvariga utvecklarna har därför utvecklat en ny kodningsplattform kallad "Cosmos" skapades.
Som Frank San Miguel förklarar för Cosmos-teamet var Reloadeds gamla arkitektur utformad enbart för att skala ljud- och videoinnehåll så bra som möjligt. Den monolitiska arkitekturen gjorde det dock mycket svårare att införa nya funktioner. Dessutom har det team som ansvarar för kodningen vuxit betydligt under de senaste åren, vilket innebar att särskilt nya medlemmar praktiskt taget inte hade någon överblick över den föråldrade Reloaded-arkitekturen. Ansvaret för detta var framför allt att applikationslogiken och infrastrukturkoden samordnades.
Arkitekturer för mikrotjänster som en förebild
På grund av de stora problemen bestämde sig teamet för en helt ny utveckling i stället för att se över den befintliga arkitekturen. Den moderna mikrotjänstarkitekturen valdes som modell. Förutom de faktiska kodningsuppgifterna gör detta det möjligt att modulärt lägga till ytterligare tjänster, inklusive ett verktyg för övervakning och verktyg för kontinuerlig leverans. Detta bör göra det möjligt att utveckla ny kod direkt i produktionsmiljön.Bidrag kan importeras utan ytterligare ingrepp.
Trots likheterna är Cosmos-tjänster inte mikrotjänster. Applikationsdata och dess beroenden är också separerade från andra system i Netflix kodningsverktyg, precis som i mikrotjänster, men tjänsterna använder tydligt definierade API:er för att utbyta data.
Det mycket beräkningsintensiva arbete som sker vid sidan av kodningen laddar sina beroenden som Docker-containrar. Beroende på uppgiftens storlek är det på Netflix flera tusen olika behållare som lagras i en molnbaserad databehandling miljö. Enligt utvecklarna tar en körning ofta flera dagar för särskilt stora filer.
Utvecklingen av Cosmos inleddes 2018 och de första testerna i produktmiljön påbörjas 2019. Den egentliga lanseringen av systemet, som då helt och hållet kommer att ersätta kodningsplattformen Reloaded, kommer att äga rum under innevarande år 2021.