Streamingaanbieder Netflix slaat zijn video's op voor optimale levering bij verschillende internetsnelheden en afspeelapparaten in verschillende Resoluties, kwaliteitsniveaus en formaten. Ontwikkelde was coderingsplatform "Reloaded" voor ongeveer zeven jaar. Intussen is de belasting van Netflix echter vertienvoudigd dankzij een uitbreiding naar meer markten en aanzienlijk meer inhoud. Volgens de technische blog van Netflix heeft dit problemen veroorzaakt. De verantwoordelijke ontwikkelaars hebben daarom een nieuw coderingsplatform ontwikkeld, "Cosmos" gemaakt.
Zoals Frank San Miguel namens het Cosmos-team uitlegt, was de oude architectuur van Reloaded uitsluitend ontworpen om audio- en video-inhoud zo goed mogelijk te schalen. De monolithische architectuur maakte het echter veel moeilijker om nieuwe functies te introduceren. Bovendien is het team dat verantwoordelijk is voor de codering de afgelopen jaren sterk gegroeid, waardoor met name nieuwe leden vrijwel geen zicht hadden op de verouderde Reloaded-architectuur. Verantwoordelijk hiervoor was vooral dat van de toepassingslogica met de infrastructuurcode.
Microservices-architecturen als rolmodel
Vanwege de grote problemen besloot het team tot een volledig nieuwe ontwikkeling in plaats van een herziening van de bestaande architectuur. De moderne microservices-architectuur werd als model gekozen. Naast de eigenlijke codeertaken maakt dit de modulaire toevoeging van verdere diensten mogelijk, waaronder een tool voor monitoring en tools voor de continue leveringspijplijn. Dit moet het mogelijk maken nieuwe code direct in de productieomgeving te ontwikkelen.Bijdragen kunnen worden ingevoerd zonder extra ingrepen.
Ondanks de gelijkenissen zijn Cosmos diensten geen microservices. Toepassingsgegevens en hun afhankelijkheden zijn ook gescheiden van andere systemen in de Netflix-coderingstool, zoals bij microservices, maar de services gebruiken duidelijk gedefinieerde API's om gegevens uit te wisselen.
Het zeer rekenintensieve werk dat naast het coderen plaatsvindt, laadt zijn afhankelijkheden als Docker-containers. Afhankelijk van de grootte van de taak, zijn dit enkele duizenden verschillende containers op Netflix, die worden opgeslagen in een cloud computing omgeving. Een run duurt vaak enkele dagen voor bijzonder grote bestanden, aldus de ontwikkelaars.
De ontwikkeling van Cosmos is in 2018 begonnen, de eerste tests in de productomgeving beginnen in 2019. De daadwerkelijke uitrol van het systeem, dat dan het coderingsplatform Reloaded volledig zal vervangen, zal in het lopende jaar 2021 plaatsvinden.